首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >帮助Conky使用LXDE & PCManFM

帮助Conky使用LXDE & PCManFM
EN

Stack Overflow用户
提问于 2009-08-11 17:05:53
回答 7查看 8.7K关注 0票数 3

正如你们中的一些人可能知道的,Conky或PCManFM (桌面管理器方面)存在一个bug,使得Conky窗口在以下情况中消失:

  • 将"own_window_type覆盖“设置在.conkyrc (Nautilus的通常配置)中,完全没有显示Conky窗口。
  • 在own_window_type中设置“.conkyrc桌面”会显示Conky窗口,但是如果单击桌面,它就会消失。
  • 设置"own_window_type法线“在.conkyrc显示的康奇窗口,它不会消失时,点击桌面,,但.如果您使用LXPanel的“最小化所有窗口”插件(“显示桌面”等效),它将消失。如果使用键盘快捷方式,也会发生这种情况。

这有一些解决办法,例如停用PCManFM的桌面管理 (使用feh设置壁纸,并可能使用iDesk设置图标)或完全使用另一个文件管理器,但我注意到这些都是不合格的解决方案。我真的很喜欢PCManFM,我真的很喜欢Conky。一个人该怎么做?

因此,我在LXPanel来源中挖掘并找到了一段相关的代码,这些代码可能包含了我的修复程序。文件为src/plugins/wincmd.c。

我的想法是,当单击“最小化所有窗口”按钮时,所有windows (类)名称将被比作静态字符串"Conky“,如果匹配,则不会最小化该窗口。很简单,而且应该能用。但问题是,我已经有几年没有接触过任何C代码了,而且我还没有真正使用过Xlib。

到目前为止,我做了以下修改:

代码语言:javascript
复制
19a20
> #include <string.h>
77a79,82
>             
>             /* Getting window's class name */
>             XClassHint class;
>             XGetClassHint(GDK_DISPLAY(), client_list[i], &class);
81c88
<             if (((task_desktop == -1) || (task_desktop == current_desktop))
---
>             if (((task_desktop == -1) || (task_desktop == current_desktop) || strcmp(class.res_name, "Conky") != 0)

这是正确的编译,但当我运行新的lxpanel并单击“最小化所有窗口”时,Conky仍然像以前一样消失。

如果有人能查看这个文件,看看我的更改是否有意义,我将非常感激。

谢谢!:)

EN

回答 7

Stack Overflow用户

发布于 2013-06-23 15:49:04

这还是不可能的afaik。我做了个奇怪的解决办法。只需在无法使用own_window_type normal快捷方式的情况下使用Win+D desktop模式,并在显示桌面上修复conky。

首先,我想,仅仅是重新映射这个不稳定的窗口就行了。但是我发现,只要桌面是聚焦的,就不会有任何东西被吸引过来。然后我想,杀了他再重新开始吧。但是在show desktop模式下,它将在后台创建。

所以为了恢复正常:

  • 桌面必须不聚焦。
  • 重新启动conky或重新映射窗口

安装xdotool;apt-get install xdotool

创建脚本,例如/usr/local/bin/conky-remap.sh

代码语言:javascript
复制
#!/usr/bin/env bash
zenity --info --text "Remapping Conky..." &
pid=$!
sleep 0.3
kill $pid
xdotool windowmap `xdotool search --classname 'conky'`

编辑~/.config/openbox/lxde-rc.xml (或发行版中的快捷方式)。

查找:

代码语言:javascript
复制
<keybind key="W-d">
  <action name="ToggleShowDesktop"/>
</keybind>

改为:

代码语言:javascript
复制
<keybind key="W-d">
  <action name="ToggleShowDesktop"/>
  <action name="Execute">
    <execute>conky-remap.sh</execute>
  </action>
</keybind>

激活新的键盘快捷方式配置:

openbox --reconfigure

按Win+D键。你会看到闪光灯,康奇回来了!

这一古怪的解决方案是在宇宙中唯一的解决方案,根据谷歌一周的经验,因此鼓励对其进行改进。

Explanation:

  • zenity --信息--文本"Remapping .“&
    • 我们需要创建一个随机窗口来分散桌面的焦点。康奇本身不起作用。:(
    • 我们还需要脚本来继续,所以使用&

  • pid=$!
    • 获取最后一个进程的pid

  • 睡眠0.3
    • 睡眠不足(缓慢的HTPC),窗口在创建之前就会被关闭。

  • 杀死$pid
    • 一旦窗口完成了它的功能,就立即关闭它。

  • xdotool窗口映射xdotool search --classname 'conky'
    • 现在,最后,我们可以提出(重新映射)康奇。

怪癖:

  • 桌面没有焦点,因此不能使用箭头导航桌面图标。
    • 我们能重新调整桌面的焦点吗?只要窗口没有被编程最小化,conky就会保持不变。

  • 300毫秒的延迟,以及一个对话框的闪光灯。
  • 第二次按Win+D返回(“未显示桌面”)
    • 我们需要一种方法来检测桌面是否已经处于显示桌面模式,在这种情况下,脚本应该是exit 0的。

票数 3
EN

Stack Overflow用户

发布于 2012-03-11 01:50:44

这是一个古老的“问题”,但当我搜索"Conky LXDE“时,它在Google点击量中出现得相当高,因为我无法让Conky在Lubuntu工作。但是,没有必要黑LXPanel

经过大量的搜索和错误的试验和跟踪,我在“PCLinuxOS-论坛”中找到了一个.conkyrc文件,该文件刚刚运行了™。事实证明,它是从Lubuntu 11.10上调整的一个极好的基础。

现在我在Linux 13 LTS "Maya“Xfce上使用相同的设置(基于Ubuntu12.04),它继续满足我(非常简单)的Conky需求。我的.conkyrc文件的当前形式是保存在吉斯特里,如果有人认为它可能对他们有帮助。(论坛的原始源链接被注释到rc文件中。)

票数 2
EN

Stack Overflow用户

发布于 2014-03-16 18:44:04

最简单的解决方案可以很好地与Openbox一起工作(也应该与其他WMs一起工作):

  1. 在您的.conkyrc文件中: own_window是own_window_type桌面own_window_class Conky “桌面”窗口类型防止在执行显示桌面时将conky最小化。此外,您的窗口将通过再次执行“显示桌面”来恢复。
  2. 在终端模拟器中安装xdotool包(它非常轻量级,不要担心),运行以下命令: xdotool search --class "Pcmanfm" behave %@ focus windowraise $(xdotool search --class "Conky") 当你聚焦一个桌面时,要确保你的小弟弟不会隐藏
  3. 如果一切正常,请按下终端中的Ctrl+C中断xdotool,并将上面的代码放在自动启动中。它可能不会马上启动,所以您必须创建一个包含以下内容的简单脚本(例如"show_conky.sh") #!/bin/sh sleep 5 xdotool search --class "Pcmanfm" behave %@ focus windowraise $(xdotool search --class "Conky") 最小所需的睡眠时间应该相应地定义到您的系统。当然,在执行"show_conky.sh“之前,康奇不会在第一次启动时就隐藏起来,您还可以创建另一个脚本,其中包含xdotool focus windowraise $(xdotool search --class "Conky")命令和适当的睡眠时间(或者尝试在”睡眠“和"xdotool的行为”命令中添加它"show_conky.sh")。
  4. 重新启动Xorg服务器。享受!:) 我个人建议您使用SpaceFM来管理桌面图标。它允许您为桌面区域设置边距,因此conky从不覆盖图标。Pcmanfm作为一个资源管理器看起来更友好,但您可以同时使用这两种方法: spacefm可以打开桌面上的目录和其他应用程序。它的桌面行为与pcmanfm相同,因此您应该简单地将上面代码中的"Pcmanfm“替换为"Spacefm”。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1261716

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档