目前我已经成功使用 wmctrl -r :SELECT: -t 2
但类似的东西 wmctrl -r -i 0x03e00003 -t 2
不起作用。我应该如何编写命令才能通过 ID 而不是通过鼠标选择要移动的窗口?
我使用的是 Linux Mint 13 和默认的 MATE DE 。
我也尝试过wmctrl -i -r 0x03e00003 -t 2
编辑1: wmctrl -i -r thewinIDInHexa -t 2
现在可以工作。它不起作用的原因是,当我第一次尝试 wmctrl 时,我使用了正确的 ID,但语法错误,第二次我使用了正确的形式,但错误的窗口 ID...问题是 ID 不是 -对于不存在的 ID,existent 和 wmctrl 不会输出任何消息。感谢你付出的努力。确认我实际上使用了正确的命令形式后,我不得不仔细检查 ID。再次感谢你
编辑2:由于我无法发表评论,我将在这里发布对@slm的回复:现在正确的ID是0x0380000f
wmctrl -v -i -r 0x0380000f -t 2
envir_utf8: 1
Using window: 0x0380000f
VLC 已移至工作区#2(第三个工作区)
对于实际上不存在的 ID,我们有几乎相同的东西:
wmctrl -v -i -r 0x03a00003 -t 2
envir_utf8: 1
Using window: 0x03a00003
答案1
也许您对开关感到困惑-t #
。窗口编号从 1 开始,但第一个窗口实际上编号为 0。请注意wmctrl -l
:
$ wmctrl -l
0x00c00028 -1 grinchy Top Expanded Edge Panel
0x0120001e 0 grinchy x-nautilus-desktop
0x06015fee 0 grinchy saml@grinchy:~
0x06000004 0 grinchy saml@grinchy:~
0x05a000d1 0 grinchy xorg - How can I get information about my virtual desktops via the command line? - Unix & Linux Stack Exchange - Google Chrome
第二列是桌面的编号。因此,当您使用时,-t 2
它实际上是将窗口放在-r 0x03e00003
第三个桌面上,而不是第二个桌面上。
例子
Evince PDF 窗口在桌面 #1 (0) 上启动:
$ wmctrl -l | grep 0x03a00003
0x03a00003 0 greeneggs.bubba.net Packt.Puppet.3.Beginners.Guide.pdf
将其移至桌面 #3 (2):
$ wmctrl -i -r 0x03a00003 -t 2
确认:
$ wmctrl -l | grep 0x03a00003
0x03a00003 2 greeneggs.bubba.net Packt.Puppet.3.Beginners.Guide.pdf
请注意它在哪个窗口上:
它位于桌面#3 上!