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

jan*_*anw 9 command-line window-manager unity xdotool wmctrl

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

在此处输入图片说明

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

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

有人可以帮我解决这个问题吗?

Jac*_*ijm 5

可能不是您要找的答案:

Unity 和 Unity 组合的问题 wmctrl

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

看着你的输出

  • 65,24你提到的,是宽度统一启动和高度的面板。
  • 在行中:

    0x03400005  0 0   24    65   1111  janw_VirtualBox unity-launcher
    
    Run Code Online (Sandbox Code Playgroud)

    在输出wmctrl -lG,你可以看到,发射被定位x=0, y=24,而发射器的尺寸65 x 1111。(1111是屏幕的高度减去面板的高度)

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

wmctrl -r :ACTIVE: -e 0,65,24,1500,550
Run Code Online (Sandbox Code Playgroud)

并不是:

wmctrl -r :ACTIVE: -e 0,0,0,1500,550
Run Code Online (Sandbox Code Playgroud)

但是,这并不能解决问题,它只是一个错误。仍然会有你描述的marge。顺便说一下,使用时也会发生同样的情况xdotool(默认情况下未安装):

xdotool windowmove "$(xdotool getactivewindow)"  65 24
Run Code Online (Sandbox Code Playgroud)

或者

xdotool windowmove "$(xdotool getactivewindow)"  0 0
Run Code Online (Sandbox Code Playgroud)

读取输出 wmctrl -dG

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

总结

无论wmctrlxdotool做工精细,如果你设置窗口最大化。你描述的效果不会发生。但是,如本答案中所述,移动调整窗口大小会在启动器和面板上留下几个像素
“要移动/重新调整大小的窗口需要距离 Unity 启动器和顶部面板至少有几个 px。”

除了你的描述,另外一个问题,你会遇到,如果你开始玩弄wmctrlUnity偏差,如在这一个