![将窗口移动到所有桌面的命令](https://linux22.com/image/1540/%E5%B0%86%E7%AA%97%E5%8F%A3%E7%A7%BB%E5%8A%A8%E5%88%B0%E6%89%80%E6%9C%89%E6%A1%8C%E9%9D%A2%E7%9A%84%E5%91%BD%E4%BB%A4.png)
我希望能够使用可编写脚本的命令将现有窗口移动(固定)到所有桌面,而不是通过窗口菜单。
wmctrl -r <WIN> -t <DESK>
会将窗口移动到不同的桌面,但我还没有找到一种方法来使用它来使窗口显示在所有桌面上。 wmctrl -l
显示-1
为所有桌面上显示的窗口的桌面编号,但传递-1
到-t
不起作用。
未解决的 Fedora 错误报告似乎解决了这个问题:显然 -1 值由 内部使用wmctrl
,因此不能传递给-t
.该错误报告还提到,可以通过为目标窗口指定一些窗口管理器来固定窗口黏财产。但是,我正在运行 openbox,这种方法似乎对我不起作用。实际上,该错误报告中已发布了一个补丁;我还没有尝试过使用它。这是 2009 年的事情。我宁愿避免打补丁wmctrl
或做其他事情。
是否有另一种方法可以在 openbox 下编写此行为的脚本?
答案1
就像一位用户在评论中所说的那样,wmctrl
自 2005 年 10 月以来就没有被触及过。该功能很可能当时有效,但后来由于周围的软件包发生变化而被破坏。
这是wmctrl
变更日志
答案2
xdotool search --name xyz set_desktop_for_window 4294967295
答案3
从 wmctrl v1.07 开始,-t -2
对我有用。
答案4
FWIW,wmctrl ... -t ... 也不是 wmctrl ... -b Sticky ... 也不是 xdotool search --name ... set_desktop_for_window 4294967295 与 LXDE 和 Openbox 一起使用(在我的安装上 - Devuan Beowulf)。
尽管如此,使用 Devilspie 或在 Openbox 的 rc.xml 中设置适当的属性非常有效。 (注:我的意思是真正的devilspie,而不是devilspie2。根据我的经验,devilspie2有时会表现出错误,而devilspie则不会。)