como determinar em qual viewport (compiz / unity) uma janela é colocada?

1

Estou escrevendo um script que requer determinar em qual porta de visualização uma janela é colocada.

Minha área de trabalho é 2x2 (4 viewports), geralmente é pensada como sendo 4 desktops virtuais, mas no compiz / unity ela é na verdade uma viewport e apenas uma área de trabalho xdotool get_num_desktops .

Apenas para facilitar a explicação, veja estas viewports (não tenho certeza se estas seriam realmente suas identificações):
0 1
2 3

Então, basicamente: coloque sua janela na viewport 2, xwininfo -all , e clique na sua janela, você receberá sua ID e verá que os valores "upper-left" são pequenos, como estar na viewport 0, mas estes são realmente relativos à viewport 2.
Além disso, você não encontra nenhuma informação sobre qual viewport é.

Mais informações você pode encontrar com: wmctrl -d % que mostra informações precisas sobre qual porta de visualização nós somos.
xdotool get_desktop_viewport não será preciso para viewports 2 e 3.

    
por Aquarius Power 18.11.2014 / 22:00

1 resposta

0

Na verdade, é muito simples, as informações de posição da janela de visualização da janela são relativas à viewport atual.

Então, apenas digite xwininfo e selecione uma janela.
Agora, mude a viewport e digite xwininfo -id 0x... (0x ... é o id que você coletou para a janela), os valores de posição serão mostrados como 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 a janela está.
Neste caso eu estava na viewport 1 e na janela na viewport 0.

    
por 27.11.2014 / 16:52