在 Linux 中将打开的窗口带至当前桌面

在 Linux 中将打开的窗口带至当前桌面

假设我在另一个虚拟桌面上打开了一个程序。有没有办法通过脚本将该程序带到当前桌面?

以下命令是我能得到的最接近的命令:

wmctrl -a program

这将切换到打开程序的桌面,并使其成为最前面的窗口。但是,我不想转到程序所在的桌面,而是想将程序带到当前桌面。还有这个命令:

wmctrl -R program

文档说这将完成我想要的操作,但它只是执行与前一个命令相同的操作。

答案1

事实证明,-R使用 Metacity(GNOME 的默认窗口管理器)时,切换工作正常,但使用 Compiz(我相信是 Ubuntu 目前的默认窗口管理器)时,切换工作不正常。您可以使用切换到 Metacity 来亲自检查这一点metacity --replace(使用compiz --replace切换回 Compiz)。

令人恼火的是,我一直没能弄清楚为什么这不适用于 Compiz,我仍然认为分享我迄今为止发现的内容会很好,即:

  • 对我来说,wmctrl -d列出的桌面几何尺寸 (DG) 为 7680x1200(我的分辨率为 1920x1200 并使用 4 个工作区)。

    wmctrl -e 0,1920,-1,-1,-1在这种情况下,可以使用(重力、左侧像素、顶部像素、窗口宽度、窗口高度——该值-1用于指示当前值不应修改)将窗口移动到第二个工作区。

    您还可以使用wnckpropxwininfo获取当前窗口的几何值。

  • 激活插件后Put,可以使用以下命令将当前活动/焦点窗口移动到第二个工作区(视口?):

    dbus-send --type=method_call --dest=org.freedesktop.compiz /org/freedesktop/compiz/put/allscreens/put_viewport_2_key org.freedesktop.compiz.activate

就是这样了,希望其他人可以对此事提供更多见解。

有关的

资源

相关内容