如何确定窗口放置在哪个视口(compiz/unity)中?

如何确定窗口放置在哪个视口(compiz/unity)中?

我正在编写一个脚本,需要确定窗口放置在哪个视口中。

我的桌面是 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 上。

相关内容