如何让Conky留在桌面上


15

我有一个conky设置,我已经在许多台式机上使用过(这是conkyrc)。它可以在Ubuntu Unity,XFCE,Gnome和Openbox中正常运行,但不能在Lubuntu(LXDE)中运行。问题是我无法可靠地将其保留在Lubuntu LXDE桌面上。如果单击桌面或最小化所有窗口(显示桌面),则conky窗口会消失。

我已经尝试了配置文件中“ 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。

我如何才能自信地呆在桌面上。


1
Conky在Openbox中的表现似乎不太好。
乌里·埃雷拉

您是否尝试过“面板”模式?..顺便说一句,在Unity下conky也有类似的问题。您能告诉我您如何使用Compiz Config设置管理器来忽略conky窗口吗?
2013年

1
Sadi:以下conky设置通常适用于Unity: own_window yes own_window_transparent yes own_window_type normal own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager如果compiz(和怪异的阴影)存在问题,请使用Compiz Config设置管理器进行以下设置:*在“ Window Decoration”区域中,将“ Shadow windows”字段设置为any & !(name=Conky) 请注意,面板模式旨在让conky像面板一样工作。这意味着通常情况下,窗户不会覆盖它,而应仅将其停靠在屏幕的侧面。这不是我想要的。
aspersieman

Answers:


20

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

尝试:

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

这里得到它。

在XFCE中为我工作。我猜这对于lxde / openbox也很好。


5
这个答案如何被接受?在LXDE中,单击桌面会使conky消失。
Redsandro 2013年

我也不知道为什么会这样。问题(虽然不是标题)明确指出该问题仅存在于LXDE中,并且作者寻求帮助以解决该特定问题。标记为“答案”的答复无法回答问题。我在寻找完全相同的问题的答案时登陆了这里,但是使用运行LXDE的Debian(最新的稳定版)。
rbaleksandar

这没有帮助。它不断消失
nazar_art 2013年

对于带有Unity的简单Ubuntu来说,它own_window_type override工作得很好
MInner 2014年

2
不,不是。反正不适合我。它会停止消失的小部件,但随后屏幕刷新显示的字符出现了问题。一段时间后它们变得模糊,然后您就可以知道这是因为有字符覆盖字符。
user447607

8

此配置可在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设置为“ dock”对您来说效果不佳,请尝试“覆盖”和“正常”。


own_window_type dock并非始终是最佳的,因为conky窗口会像码头一样对待。
aspersieman 2013年

1
@aspersieman到目前为止,我发现它没有什么不同。这是唯一防止单击桌面或时关闭的设置super+windows+D
Anirudh Ramanathan 2013年

尝试own_window_type override在上述Sadi中描述的Compiz Config设置管理器中更改设置。
aspersieman 2013年

dock对我来说,它使其成为屏幕的永久部分,例如面板,即全屏窗口无法覆盖它
Karthik T 2014年

2

我本人对此进行了大量研究,似乎很少有解决方法,甚至更少能很好地工作:

  • 您可以将conky设置为扩展坞或面板窗口。
  • 您可以将其设置为普通窗口,而只是避免使用show desktop plugin / keybind。
  • 我什至尝试对conky使用-w参数,以使其绘制到伪造的Desktop / PCManFM窗口中,但这将导致您的桌面以conky更新=混乱的频率重绘。
  • 如果您可以不使用桌面图标而生活,则可以将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

首先创建一个启动脚本,pcmanfm --desktop-off然后启动conky就为我解决了。我可以不用pcmanfm的桌面功能:)谢谢!
codeman48

1

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

own_window_type normal

按照此线程:http : //ubuntuforums.org/showthread.php?t=2039399


我还需要LXDE上的“ own_window_hints未修饰,下方,粘性,skip_taskbar,skip_pager`。”
MotiejusJakštys13年

即使添加了@MotiejusJakštys的行,这也会导致OP中出现“最小化所有窗口(显示桌面)”的情况
Karthik T

1

接受的答案不代表“显示桌面”。

您可以使用我在此答案中解释的技巧按下Win+Dfor 之后显示conky Show Desktop

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

1

在LXDE中使用conky的问题在于PCManFM处理桌面的方式不同于其他任何桌面。LXDE本质上是带有文件管理器(pcmanfm)的桌面的Openbox,如果您删除了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在正常情况下消失。


1

编辑:

好:为12.04精确和Ubuntu的所有更高版本(已确认至16.04 xenial),可以实现相同的devilspie(下文),同时Compiz的 - >视窗规则。我在那里使用了课堂比赛,这很明显。也可以与我链接的Super + Home脚本一起使用。

对于那些无法通过以上所有方法解决问题的人(在Ubuntu 16.04上进行测试),浪费了几个小时之后,这是我的一点贡献:

快速解决方案

  1. 在〜/ .conky /中相应目录的conkyrc.txt中添加“ own_window_type dock ”行(不要让它在桌面单击时消失)
  2. 安装devilspie
  3. 创建与“匹配”模式window_name devilspie规则“包含” Conky的(没有大写的C -它很重要)。实际上,通过提供的“获取”按钮,您可以使用任何有效的匹配模式。
  4. 作为操作,请选择“ skip_tasklist ”,“ 最小化 ”,如果要在所有工作空间中使用它,也请选择“ stick ”。
  5. 而已。

一定要检查“启动时运行devilspie”。

副作用:Conky Manager窗口在打开时会表现出类似的行为,具体取决于匹配模式,不过应该没问题。

我的问题是这样的:

'own_window_type Override '产生了一个问题,即conky 的更改项不会替代,而是被绘制在较旧的值之上-丑陋,并且在几秒钟内变得难以辨认。

“ own_window_type 桌面 ”并没有解决问题。

“ own_window_type dock ”与devilspie一起解决了最初的问题,但是用这个漂亮的小脚本添加“显示桌面但保持活动窗口保持打开状态” 不能很好用-Windows Win + Home之类的热键。编辑:最后提到的以某种方式停止工作..我出局了:-|

希望我能帮助一个人,给我一个大拇指,我是新来的;-)

我的系统:UBUNTU Xenial Xerus 64位。


0

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

例如:

#!/bin/bash
conky ;

(不要忘了chmod + x它;)


感谢您的回答。不幸的是,我已经尝试过了,它并没有改变任何东西。我什至试图让它睡上几秒钟。还有其他建议吗?
aspersieman

对不起,老兄,没有其他建议。我已经以这种方式解决了我的问题,但是如果我没记错的话,我正在使用gnome。
user981916 2012年

别担心。谢谢您的帮助。
aspersieman,2012年

0

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

own_window_type override

正确!这确实允许您在单击桌面或尝试显示桌面(Ctrl + Super + D)时将小部件保留在桌面上。但是,在显示桌面之后,我现在看到了conky小部件的副本,其中旧的小部件具有固定的时间戳,而新的叠加层具有更改的时间戳。换句话说,它是一个分层的混乱!我是否忘记添加其他内容?
布莱德·霍恩

0

对于使用LXDE的Lubuntu:

own_window yes
own_window_class Conky
own_window_transparent yes
own_window_type desktop
double_buffer yes

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

在Lubuntu 13.10中为我工作。


0

我本人对此进行了大量研究,似乎很少有解决方法,甚至更少能很好地工作。

  • 您可以将conky设置为扩展坞或面板窗口。
  • 您可以将其设置为普通窗口,而避免使用show desktop plugin / keybind。我甚至对conky使用了-w参数来使其绘制到假的Desktop / PCManFM窗口中,但这会导致您的桌面以conky更新=混乱的频率重新绘制。如果您不介意没有图标,只需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

0

在Lubuntu 14.10中有效

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

0

我知道这个线程很旧,但是对于仍然在这个问题上挣扎的其他人,我只是想补充一下,grims的答案对我很有效,但有一点需要注意。

在/etc/conky/conky.conf中

own_window_type normal

并在.conkyrc或主题文件中:

own_window_type desktop
own_window_hints undecorate,sticky,skip_taskbar,skip_pager

经过反复试验,这是我可以使用的唯一组合(我使用compton来提高透明度)。请注意,own_window_hints中没有“以下”设置,因为尽管这仍然可以工作,但在显示桌面几秒钟后,conky会消失并重新出现(闪烁)。至少那是我的经验。

高温超导


0

具有Mate / Gnome2 GUI Ubuntish的Linux;)

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

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

放置到位置设置:

gap_x ...
gap_y ...  

根据您的分辨率。


0

设置background=false.conkyrc并确保你不将自动启动Conky的-d标志。我尝试了我能找到的所有其他建议,有时它们会起作用,有时却不会,即使他们起作用了,也只是一小会儿。

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


0

单击LXPanel的“全部显示Windows”也隐藏了Conky的窗口时,我在LXDE中遇到了相同的问题。我用wmctrl修复了它。

安装wmctrl

sudo apt install wmctrl

查找Conky窗口的名称

wmctrl -l
0x03200001 -1 Host conky (Host)

要恢复运行:

wmctrl -a 'conky (Host)'

我用Python编写了一个简单的脚本,该脚本每50毫秒取消隐藏Conky,并将其放置在LXDE启动时:

Bring_conky_back.py

#!/usr/bin/python

import time, os

while True:
    os.system("wmctrl -a 'conky (Host)'")
    time.sleep(0.05)

同样在.conkyrc中,可能需要以下行:

own_window = true,
own_window_type = 'normal',

它很棒。


-1

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

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


该问题包括3个不同的问题:1)在“桌面”模式下单击桌面时,conky消失; 2)在“正常”和“ conky”模式下将所有窗口最小化(使用“显示桌面”命令)时相同,3)不显示conky在“替代”模式下...该解决什么问题?它到底在做什么?
2013年

-1

在Unity中,不做任何更改,只需将其粘贴在终端中即可:

gsettings set org.compiz.core:/org/compiz/profiles/unity/plugins/core/ hide-skip-taskbar-windows false
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.