2013-03-26 21 views
5

Oświadczenie: Wiem, że istnieje bardzo podobny question na ten temat.Linux: jak uzyskać listę wszystkich widocznych okien?

Próbuję uzyskać dokładnie taki sam wynik, jaki NoozNooz42 opisał jako here. Jednak odpowiedź mdma nie pasuje do moich potrzeb, ponieważ jestem zainteresowany robieniem tego samego na Linuksie. Preferrably z gnome, jeśli to ma znaczenie. Zatem używanie JNA z biblioteką user32 nie jest tutaj opcją (lub jest to?).

Wszelkie sugestie będą wspaniałe, nie mogę znaleźć prawie nic na ten temat.

P.S. Jedyne, co znalazłem, to polecenie wmctrl (mogłem wywołać i ostatecznie przetworzyć to w java), które wyświetla okna, ale nie daje mi żadnych informacji o kolejności z.

Aktualizacja: Byłoby idealnie, gdybym mógł otrzymać powiadomienie/wywołanie zwrotne, gdy zmieni się kolejność z-Z.

Odpowiedz

6

Użyj xprop, pokazuje właściwości okna. Lista okien w Z-order jest w nieruchomości _NET_CLIENT_LIST_STACKING okna głównego:

xprop -root | grep '_NET_CLIENT_LIST_STACKING(WINDOW)' 

Wyjście powinno wyglądać tak:

_NET_CLIENT_LIST_STACKING(WINDOW): window id # 0x2000003, 0x4000004, 
0x1c00004, 0x1c00030, 0x1c00033, 0x2e00004 

Później można uzyskać więcej informacji na temat poszczególnych okien z:

xprop -id <id> 

lub

xwininfo -id <id> 
+0

Bardzo dobra odpowiedź, dziękuję! +1 za to, jednak wciąż mam nadzieję na czyste rozwiązanie java –

+0

Proszę zobaczyć moją aktualizację na pytanie. Czy wiesz o wszystkim, co dałoby mi powiadomienie o zmianie kolejności zamówień? –

+0

'xev -root' pokaże wszystkie zmiany w właściwościach okna głównego. Po prostu filtruj po _NET_CLIENT_LIST_STACKING. –

Powiązane problemy