¿Cómo determinar en qué ventana gráfica (compiz/unity) se coloca una ventana?

¿Cómo determinar en qué ventana gráfica (compiz/unity) se coloca una ventana?

Estoy escribiendo un script que requiere determinar en qué ventana gráfica se coloca una ventana.

Mi escritorio es 2x2 (4 ventanas gráficas); Por lo general, se piensa que son 4 escritorios virtuales, pero en compiz/unity, en realidad es una ventana gráfica y solo un escritorio, basado en xdotool get_num_desktops.

Sólo para facilitar la explicación, vea estas ventanas gráficas (aunque no estoy seguro si estas serán realmente sus ID):

0 1  
2 3  

Coloque su ventana en la ventana gráfica 2, ejecute xwininfo -ally haga clic en su ventana; Obtendrá su ID y verá que los valores "superior izquierdo" son todos pequeños, como estar en la ventana gráfica 0, pero en realidad son relativos a la ventana gráfica 2.

Además, no encuentra información sobre en qué ventana gráfica se encuentra.

Más información puedes encontrar con:
wmctrl -dque muestra información precisa sobre en qué ventana gráfica nos encontramos.
xdotool get_desktop_viewportno será preciso para las ventanas gráficas 2 y 3.

Respuesta1

En realidad, es muy simple: la información de posición de la ventana gráfica es relativa a la ventana gráfica actual.

Entonces, simplemente escriba xwininfoy seleccione una ventana.
Ahora, cambie la ventana gráfica y escriba xwininfo -id 0x...(0x... es la identificación que recopiló para la ventana), los valores de posición se mostrarán fuera de los límites de la ventana gráfica actual, con valores relativos basados ​​en la ventana gráfica actual como:

Absolute upper-left X:  -1270
Absolute upper-left Y:  62

En base a esto es posible determinar dónde está la ventana.
En este caso estaba en la ventana gráfica 1 y la ventana en la ventana gráfica 0.

información relacionada