%20uma%20janela%20%C3%A9%20colocada%3F.png)
Estou escrevendo um script que exige determinar em qual janela de visualização uma janela é colocada.
Minha área de trabalho é 2x2 (4 viewports); geralmente é pensado como sendo 4 desktops virtuais, mas no compiz/unity, é na verdade uma janela de visualização e apenas um desktop, baseado em xdotool get_num_desktops
.
Apenas para facilitar a explicação, veja estas viewports (embora não tenha certeza se esses seriam realmente seus IDs):
0 1
2 3
Coloque sua janela na viewport 2, execute xwininfo -all
e clique na sua janela; você obterá seu ID e verá que os valores "superior esquerdo" são todos pequenos, como estar na janela de visualização 0, mas na verdade são relativos à janela de visualização 2.
Além disso, você não encontra informações sobre qual janela de visualização está.
Mais informações você pode encontrar em:
wmctrl -d
que mostra informações precisas sobre qual janela de visualização somos.
xdotool get_desktop_viewport
não será preciso para as viewports 2 e 3.
Responder1
Na verdade, é muito simples: as informações de posição da janela de visualização são relativas à janela de visualização atual.
Então, basta digitar xwininfo
e selecionar uma janela.
Agora, altere a viewport e o tipo xwininfo -id 0x...
(0x... é o ID que você coletou para a janela), os valores de posição serão exibidos fora dos limites atuais da viewport, com valores relativos baseados na viewport atual como:
Absolute upper-left X: -1270
Absolute upper-left Y: 62
Com base nisso é possível determinar onde está a janela.
Neste caso eu estava na viewport 1 e a janela na viewport 0.