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

ton*_*sid 5 linux gnome ubuntu ubuntu-10.04

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

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

wmctrl -a program
Run Code Online (Sandbox Code Playgroud)

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

wmctrl -R program
Run Code Online (Sandbox Code Playgroud)

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

Bru*_*oij 3

事实证明,-R在使用 Metacity(GNOME 的默认窗口管理器)时该开关工作得很好,但在使用 Compiz(我相信现在是 Ubuntu 的默认窗口管理器)时效果不佳。metacity --replace您可以使用(使用compiz --replace切换回 Compiz)切换到 Metacity 来亲自检查这一点。

\n\n

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

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

    \n\n

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

    \n\n

    除其他外,您还可以使用wnckpropxwininfo来获取当前窗口的几何值。

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

    \n\n

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

  • \n
\n\n

差不多就这些了,希望其他人可以提供更多关于此事的见解。

\n\n

有关的

\n\n\n\n

资源

\n\n\n