我正在尝试在 Openbox 中设置“终端作为桌面墙纸”,如此处所述
Openbox可以设置<layer>below</layer>
,使窗口作为桌面背景运行,不会被状态栏显示,不受“最小化窗口”的影响。因此,我实际上没有将无用的图像显示为墙纸,而是有一个终端。
我作为后台运行的实际终端是terminator
,我刚刚创建了一个符号链接terminator-wallpaper-1a
和terminator-wallpaper-1b
,它们只是终结器二进制文件的符号链接。只有名字不同,我才能分辨出来。
我有双显示器设置,我想在每台显示器上都有终结者壁纸。
openbox 窗口属性由以下设置devilspie
:
(if
(matches (application_name) "terminator-wallpaper")
(begin
(wintype "desktop")
)
)
然后,我在我的 openbox 配置中有这个,这样每个壁纸都会转到相应的显示器/桌面:
<application name="terminator-wallpaper-1a">
<focus>yes</focus>
<layer>below</layer>
<desktop>1</desktop>
<position>
<y>0</y>
<x>0</x>
<monitor>1</monitor>
</position>
<skip_taskbar>yes</skip_taskbar>
<maximized>true</maximized>
</application>
<application name="terminator-wallpaper-1b">
<focus>yes</focus>
<layer>below</layer>
<desktop>1</desktop>
<position>
<y>0</y>
<x>0</x>
<monitor>2</monitor>
</position>
<skip_taskbar>yes</skip_taskbar>
<maximized>true</maximized>
</application>
最后,这就是我开始整个事情的方式:
devilspie &
terminator-wallpaper-1a -b &
terminator-wallpaper-1b -b &
xdotool set_desktop 0
xdotool search --class 'Terminator-wallpaper-1a' windowunmap --sync windowmap windowsize %1 1920 1180
xdotool search --class 'Terminator-wallpaper-1b' windowunmap --sync windowmap windowsize %1 1920 1180
一切都很好,当我最小化所有其他窗口时,我实际上看到了我的终结者壁纸。但实际上只有其中一个是可用的。即,专注或活跃。另一个我无法输入。即使我用鼠标单击,光标仍然处于非活动状态,因此窗口永远不会成为焦点。
我怎样才能解决这个问题 ?
解决方案:
在与用户@intika 进行详尽的故障排除后,我们发现了问题。将以下代码段添加到<mouse>
openbox 配置文件中的部分修复了该问题:
<context name="Desktop">
<mousebind button="Left" action="Press">
<action name="Focus"/>
<action name="Raise"/>
</mousebind>
</context>
一次只能有一个窗口/应用程序获得焦点。
在您的 openbox 配置中,两个应用程序/壁纸都有焦点,但从技术上讲这是不可能的,因此 openbox 通过仅将焦点放在一个应用程序上来减轻您的配置(否则它不能这样做)。
有很多方法可以解决这个问题,它们围绕着实现一种将焦点切换到第一个或第二个屏幕桌面/应用程序/壁纸的方法而发展
可能的解决方案1:
您可以尝试将焦点值设置为 no 或一起删除焦点线,然后通过鼠标单击来测试切换焦点
可能的解决方案2:
使用鼠标位置设置焦点,这里是openbox wiki,首先删除两个壁纸应用程序的焦点条目,然后将以下内容添加到主要部分下的 openbox 配置中,
<focus></focus>
如链接文档中所述请注意,这也会影响您的其他窗口......
您也可以尝试
followMouse
在应用程序部分下使用,但我认为这不是由 openbox 处理的可能的解决方案2:
使用带有键盘快捷键的 xdotool 或切换焦点,实际上您可以为键盘快捷键分配一个类似下面的命令,此解决方案还要求您通过删除/编辑双重来修复您的配置
<focus>yes</focus>
与 xdotool 相同,wmctrl 也可以用于此问题:
笔记:
笔记2:
还有许多其他可能的解决方案,您可以评论答案,我会相应地对其进行编辑;)