C++ 在linux上使用桌面作为画布
C++ 在linux上使用桌面作为画布,c++,linux,user-interface,desktop,x11,C++,Linux,User Interface,Desktop,X11,我想知道是否有人能帮我。我有一个为linux克隆极客工具的计划。但我不知道你们是否可以用linux桌面作为画布来绘制文本等。我试着用谷歌搜索,但什么也没找到。我需要做的是基本上能够在桌面的某些部分上绘制文本,这样看起来就像它们是墙纸的一部分(来自c++)。或者可以创建无边界、透明的窗口,这些窗口可以点击并始终位于背景上。如果有人能告诉我从哪里开始,我会非常高兴。 提前感谢您的帮助:Linux几乎总是使用X11(Gnome/KDE是更高级的API)。在X11上,“桌面”称为“根窗口”。所以,在上
我想知道是否有人能帮我。我有一个为linux克隆极客工具的计划。但我不知道你们是否可以用linux桌面作为画布来绘制文本等。我试着用谷歌搜索,但什么也没找到。我需要做的是基本上能够在桌面的某些部分上绘制文本,这样看起来就像它们是墙纸的一部分(来自c++)。或者可以创建无边界、透明的窗口,这些窗口可以点击并始终位于背景上。如果有人能告诉我从哪里开始,我会非常高兴。
提前感谢您的帮助:Linux几乎总是使用X11(Gnome/KDE是更高级的API)。在X11上,“桌面”称为“根窗口”。所以,在上面画画。保持它不变,所以没有其他人写同样的东西,这是不正确的 没有“linux桌面”或“linux墙纸”这样的概念。你不在Windows世界了。Linux中的图形环境由多种系统驱动:GNOME、KDE、xfce等。它们中的每一个(以及它们的每个主要版本)都有自己访问桌面的方式
*“etc”不是一个图形环境,而是一个“等等”短语。我见过compiz解决方案能够实现类似的功能。Unfotunaly compiz不是一个很好的文档,但可能会让您开始使用它如果您想针对特定的桌面环境,请查看GNOME的gdesklets或KDE的plasma小部件。或者你可以像MSalters所说的“裸机”,直接绘制到根窗口(例如检查)或者可以提供帮助,而不是从头开始。KDE Plasma桌面支持所谓的活动,这些活动是用于不同桌面类型(C++)的模块。我认为这是一个很好的观点,有一个简单而完整的基础来做类似的事情。你已经接受了部分答案,但我希望你仍然会阅读这篇文章 按照惯例,桌面背景确实是根窗口。然而,在典型的现代桌面上有两个重要的机制:
- 根像素贴图设置(墙纸),它不是在根窗口的背景上绘制的
- 通过用另一个基本级别的窗口阻塞根窗口来丰富桌面背景(例如可单击的图标)
getroot.c
取自xpenguins,不依赖于其他xpenguins代码。
另外,从rootvis.c
的第144行开始,您将找到获取背景pixmap的代码
玩得开心 这是一个非常有趣的问题。我希望你能找到一个解决方案。我正在考虑在gnome上使用Desklet,但我一点也不喜欢它们,所以我认为我会使用“裸机”,因为它应该工作得更好,并且与所有基于x11的环境兼容。谢谢你的教程,我从学校回来后会去看看:]教程链接断了。这里有一个存档版本:它过去工作得很好,但许多现代桌面环境(Gnome、KDE)将“桌面”实现为一个位于根窗口正上方的窗口,因此实际的根窗口可能会被遮挡。在这种情况下,您可能需要研究更适合环境的东西。对不起,downvote,因为它在现代桌面系统上几乎总是失败的。断开的链接。请把这个修好。