我正在编写一个脚本,需要确定窗口放置在哪个视口中。
我的桌面是 2x2(4 个视口);它通常被认为是 4 个虚拟桌面,但在 compiz/unity 上,它实际上是一个视口,并且只有一个桌面,基于xdotool get_num_desktops
.
为了便于解释,请查看这些视口(不过不确定这些是否真的是它们的 ID):
0 1
2 3
将您的窗口置于视口 2,运行xwininfo -all
,然后单击您的窗口;您将获得其 ID,并看到“左上角”值都很小,就像位于视口 0 处一样,但这些值实际上是相对于视口 2 的。
此外,您找不到有关它在哪个视口的信息。
您可以通过以下方式找到更多信息:
wmctrl -d
显示有关我们所在视口的精确信息。
xdotool get_desktop_viewport
对于视口 2 和 3 将无法精确。
答案1
其实很简单,窗口视口位置信息是相对于当前视口的。
因此,只需键入xwininfo
并选择一个窗口即可。
现在,更改视口和类型xwininfo -id 0x...
(0x...是您为窗口收集的 ID),位置值将显示为当前视口限制之外,相对值基于当前视口,如下所示:
Absolute upper-left X: -1270
Absolute upper-left Y: 62
基于此可以确定窗口在哪里。
在本例中,我位于视口 1 上,窗口位于视口 0 上。