如何让conky留在桌面上

我有一个很常见的设置,我已经在很多桌面上使用过(这里是conkyrc )。 它在Ubuntu Unity,XFCE,Gnome和Openbox中运行良好,但不适用于Lubuntu(LXDE)。 问题是我无法让它可靠地保留在Lubuntu LXDE桌面上。 如果我点击桌面或者我最小化所有窗口(显示桌面),则可能会消失。

我已尝试配置文件中的所有变体“own_window”,“own_window_colour”,“own_window_transparent”和“own_window_type”,并用Google搜索了相当多的解决方案。 如果它编辑conkyrc文件并将own_window_type设置为“normal”,如果我最小化所有窗口,conky将消失。 如果我将其设置为“桌面”,如果我点击桌面上的任何位置,它就会消失。 如果我使用“覆盖”它根本不显示。 其他选项由于显而易见的原因而无法正常工作。

在另一个Ubuntu Unity安装上我遇到了类似的问题,但是通过使用Compiz Config Settings Manager来忽略我的conky窗口。 在我的上网本Lubuntu安装我没有安装compiz。

如何让我自信地留在我的桌面上。

似乎有时候将窗口类型设置为桌面是不够的。

尝试:

 own_window_type desktop own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager 

从这里得到它。

在XFCE中为我工作。 我猜它也适合lxde / openbox。

这个配置适用于Gnome和Cinnamon,是实现它的方法。

 own_window yes own_window_transparent yes own_window_type dock own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager own_window_argb_visual yes own_window_argb_value 100 gap_x 940 gap_y 20 

最后2个属性绝对将其定位在屏幕上,需要根据您的配置进行更改。 可以在Github上找到工作完整的配置文件。

编辑:从评论:如果设置为“停靠”的own_window_type不适合您,请尝试“覆盖”和“正常”。

以上对我不起作用。 在/etc/conky/conky.conf中将“own_window_type”设置为“normal”的工作原理是什么。

 own_window_type normal 

根据这个post: http : //ubuntuforums.org/showthread.php?t = 2039399

接受的答案不包括“显示桌面”。

您可以使用我在此答案中解释的hack 在按下Win+D for Show Desktop后显示conky:

 #!/usr/bin/env bash zenity --info --text "Remapping Conky..." & pid=$! sleep 0.3 kill $pid xdotool windowmap `xdotool search --classname 'conky'` 

使用conky与LXDE的问题在于PCManFM以不同于任何其他桌面的方式处理桌面。 LXDE本质上是Openbox,桌面由文件管理器(pcmanfm)分层,如果你删除pcmanfm而不是另一个文件管理器,你将不再拥有LXDE,你基本上拥有带LXDE面板的Openbox。 这有什么关系? 好吧,LXDE的桌面更像是一个窗口管理器的窗口,就像你打开几个窗口,然后点击其中一个窗口一样,它会使它成为焦点。 这正是Conky正在发生的事情。 当你点击桌面时,它会让桌面变得难以置信,正如我所解释的那样,它更像是一个窗口。 在我的情况下,这是修复:

 own_window_class Conky own_window yes own_window_type normal own_window_transparent yes own_window_hints undecorate,sticky,skip_taskbar,skip_pager,below 

现在,如果你使用面板插件来最小化所有窗口,它仍然会使conky最小化,但是这种修复在正常情况下不会消失。

我自己做了很多关于这方面的研究,似乎很少有解决方法,甚至更少的工作方式:

  • 您可以设置conky到dock或panel窗口。
  • 您可以将其设置为普通窗口,只是避免使用show desktop插件/ keybind。
  • 我甚至尝试将-w参数用于conky,以便将其绘制到虚假的桌面/ PCManFM窗口,但这会导致您的桌面重绘为常见的更新=凌乱。
  • 如果你可以没有桌面图标,你可以设置conky到桌面窗口,然后通过在终端输入pcmanfm --desktop-off简单地关闭PCManFM。
  • 你可以让feh或其他程序管理桌面

我不喜欢上述任何选项。 所以,像Redsandro一样,我确定的解决方法是将conky作为普通窗口(skip_pager,skip_taskbar,下面,当然未修饰)并编写一个简单的bash脚本并为其创建一个.desktop文件,以便我可以在我的面板中包含取代Show Desktop插件。 它使用wmctrl,因此您必须下载它。 此外,它不会最小化所有窗口,它只遮蔽它们。 但是根据我的需要,它就足够了:

 #!/bin/bash var=($(wmctrl -l | grep -o "0x[[:alnum:]]\+")) for v in ${var[@]} do wmctrl -i -r $v -b toggle,shaded done exit 0 

编辑:

更好:从12.04精确版和所有更高版本的Ubuntu(确认到16.04 xenial),你可以使用compiz – > Windows规则实现与devilspie(下面)相同的function。 我在那里使用了类匹配,它不言自明。 也可以使用我链接的Super + Home脚本。

在浪费了几个小时之后,对于那些无法用上述所有内容进行排序的人(使用Ubuntu 16.04测试),这是我的小贡献:

快速解决方案

  1. 在〜/ .conky /中相应目录的conkyrc.txt中添加一个’own_window_type dock ‘行(不要让它在桌面点击时消失)
  2. 安装devilspie
  3. 使用’match’模式在devilspie中创建一个规则window_name’包含’ conky (没有资本c – 它很重要)。 实际上,通过提供的“获取”按钮,您可以使用任何有效的匹配模式。
  4. 作为动作,选择’ skip_tasklist ‘,’ unminimize ‘,如果你想在所有工作区上拥有它,也可以’ 坚持 ‘。
  5. 而已。

请检查“启动时运行devilspie”。

sideeffect:Conky Manager窗口在打开时会表现得类似,具体取决于匹配模式,但不应该是任何问题。

我的问题是这样的:

‘own_window_type override ‘创造了一个问题,即conky的更改项目不会替代,而是在较旧的值之上绘制 – 丑陋且在几秒钟内难以辨认。

‘own_window_type 桌面 ‘只是没有做到这一点。

‘own_window_type dock ‘与devilspie一起解决了原来的问题,但是不会用这个漂亮的小脚本来添加“显示桌面但保持活动窗口保持正常” – 像Windows Win + Home这样的热键。 编辑:最后提到的某种方式停止工作..我出去了: – |

希望我能帮助别人,竖起大拇指,我是新来的;-)

我的系统: UBUNTU Xenial Xerus 64位。

您可以尝试添加在启动时执行的脚本。

例如:

 #!/bin/bash conky ; 

(别忘了chmod + x吧;)

对于Unity,我的问题通过使用来解决

 own_window_type override 

对于带有LXDE的Lubuntu:

 own_window yes own_window_class Conky own_window_transparent yes own_window_type desktop double_buffer yes 

如果按下按钮最小化所有窗口(显示桌面)时,松散的窗口消失,请进入设置 – > LXsession的默认应用程序 – >运行应用程序 – >桌面,然后选择“feh”而不是“filemanager”

在Lubuntu 13.10为我工作。

我自己做了很多关于这方面的研究,似乎很少有变通方法,甚至更少的工作方法。

  • 您可以设置conky到dock或panel窗口。
  • 您可以将其设置为普通窗口,只是避免使用show desktop插件/ keybind。 我甚至使用-w参数让conky将其绘制到虚假的桌面/ PCManFM窗口,但这会导致您的桌面重绘为常见的更新=凌乱。 如果您不介意没有图标,只需在终端输入pcmanfm --desktop-off即可关闭PCManFM。

像Redsandro一样,解决这个问题的方法是编写一个简单的bash脚本并为其创建一个.desktop文件,这样我就可以在我的面板中包含Show Desktop插件。 它使用wmctrl,因此您必须下载它。 此外,它不会最小化所有窗口,它只遮蔽它们。 但是根据我的需要,它就足够了:

 #!/bin/bash var="($(wmctrl -l | grep -o "0x[[:alnum:]]\+"))" for v in ${var[@]} do wmctrl -i -r $v -b toggle,shaded done 

这适用于Lubuntu 14.10

 own_window yes own_window_hints undecorated,below,skip_taskbar background no own_window_transparent yes 

我知道这个post已经过时了,但是对于其他还在努力解决这个问题的人我只是想补充一点,格里姆斯的回答对我有用,但需要注意一点。

在/etc/conky/conky.conf中

 own_window_type normal 

并在.conkyrc或主题文件中:

 own_window_type desktop own_window_hints undecorate,sticky,skip_taskbar,skip_pager 

经过一些试验和错误,这是我可以开始工作的唯一组合(我使用康普顿的透明度)。 请注意,在own_window_hints中没有“下方”设置,因为尽管仍然有效,但在显示桌面几秒钟后,它会导致conky消失并重新出现(闪烁)。 至少那是我的经历。

HTH

Linux与Mate / Gnome2 GUI Ubuntish;)

 use_xft yes .............. ......... ..... .......... own_window_type dock 

将停靠在顶部屏幕上,不会影响任何桌面操作。

放置位置设置:

 gap_x ... gap_y ... 

取决于您的分辨率。

.conkyrc设置background=false并确保您没有使用-d标志自动启动Conky。 我尝试了我能找到的所有其他建议,有时他们会工作,有时也不会,即使他们工作也只是一段时间。

注意:如果您不小心将所有窗口最小化,请使用Super + D来恢复Conky。

我对此问题的解决方案是在bash脚本中添加这两行

conky -c /home/ajay/.conkycolors/conkyrc >/dev/null 2>&1 &
conky -c /home/ajay/.conkycolors/conkyrc >/dev/null 2>&1 &

在Unity中不要改变任何东西,只需粘贴在终端:

 gsettings set org.compiz.core:/org/compiz/profiles/unity/plugins/core/ hide-skip-taskbar-windows false