在从 wmctrl 获得的坐标中指定 X 窗口的几何形状

Ame*_*ina 10 xorg gnome-terminal

X文档我获悉WidthHeightXpositionYposition坐标必须在终端使用的字符时指定:

gnome-terminal --geometry=WidthxHeight+Xposition+Yposition

如果我使用从wmctrl -lG输出中获得的坐标作为输入坐标(不确定是否wmctrl使用像素、终端字符或几何单位不同的东西),我不会得到预期的结果。即输出的几何坐标wmctrl -lG和用户可以指定的几何坐标结果gnome-terminal --geometry是不同的。

有什么我做错了吗?有什么想法吗?

谢谢

Kee*_*ook 17

--geometry供选择gnome-terminal的人物是实际测量,而不是像素。例如,要获得只有 10 行高的 80 列终端,您可以gnome-terminal像这样启动:

gnome-terminal --geometry 80x10
Run Code Online (Sandbox Code Playgroud)

终端将按字体字符大小的增量调整大小,它使用WM_NORMAL_HINTS. 您可以使用xprop命令检查这些。例如,在这里我找到一个终端窗口 ID,并询问 xprop:

$ wmctrl -lG | tail -n1
0x06400021  0 592  314  580  338  myhostname kees@myhostname: ~
$ xprop -id 0x6400021
...
WM_NORMAL_HINTS(WM_SIZE_HINTS):
        program specified minimum size: 48 by 16
        program specified resize increment: 7 by 14
        program specified base size: 20 by 2
        window gravity: NorthWest
...
Run Code Online (Sandbox Code Playgroud)

在上述情况下,字体大小为 7 x 14 像素。因此,如果我想要一个 70 x 140 像素的终端,我可以运行gnome-terminal --geometry 10x10(尽管它会比基于窗口管理器装饰等的终端大 20 x 2 像素,如上面的“特定基本尺寸”所示)。