为什么我不能在Unity中使用wmctrl将窗口移动到左上角?

我一直在玩wmctrl以更好地控制我的窗户。 我遇到了一个奇怪的行为,其中Unity保留了两倍的空间。
看到这个屏幕截图:

在此处输入图像描述

我打开终端并使用top命令移动窗口。 它应该在左上角(X = 0 Y = 0)。 但由于某些原因,终端和Unity栏之间存在一些差距。

如果我正确理解了手册页,它可能与WA有关:65,24

任何人都可以帮我解决这个问题吗?

可能不是你想要的答案:

Unity和wmctrl组合的问题

不幸的是,Unity和wmctrl的组合有一些特点,你描述的行为就是其中之一。

看着你的输出

  • 你提到的65,24是Unity Launcher的宽度和面板的高度
  • 在线:

     0x03400005 0 0 24 65 1111 janw_VirtualBox unity-launcher 

    wmctrl -lG的输出中,您可以看到Launcher位于x=0, y=24 ,而启动器的大小为65 x 1111 。 ( 1111是屏幕的高度减去面板的高度)

严格地说,将活动窗口放在左上角的命令应该是:

 wmctrl -r :ACTIVE: -e 0,65,24,1500,550 

并不是:

 wmctrl -r :ACTIVE: -e 0,0,0,1500,550 

但是,这不会解决问题,它只是一个bug。 你仍然会描述你的诅咒。 使用xdotool (默认情况下未安装)的方式也会发生同样的情况:

 xdotool windowmove "$(xdotool getactivewindow)" 65 24 

要么

 xdotool windowmove "$(xdotool getactivewindow)" 0 0 

读取wmctrl -dG的输出

查看WA: 65,24 1792x1111中的1792x1111 WA: 65,24 1792x1111 ,您可以看到显示器分辨率为185765 + 1792 )x 11351111 + 24 )。
在这种情况下 ,它与DG: 1857x1135的值完全匹配,因为您只有一个视口(工作区): DG代表桌面的大小(所有视口)。

总结

如果设置窗口最大化, wmctrlxdotoolwmctrl xdotool工作。 您描述的效果不会发生。 然而, 移动窗口或调整窗口大小会从启动器和面板中留下几个像素,如本答案中所述。 :
“要移动/重新resize的窗口需要至少与Unity启动器和顶部面板相距几个px。”

除了你描述的内容之外,如果你开始玩wmctrlUnity会遇到另一个问题就是偏差 ,正如本文所述。