2013-03-26 21 views
5

Disclaimer: So che c'è un molto simile question su questo argomento.Linux: come ottenere un elenco di tutte le finestre visibili

Sto cercando di ottenere esattamente lo stesso risultato che NoozNooz42 ha descritto here. Tuttavia la risposta mdma non si adatta alle mie esigenze, perché sono interessato a fare lo stesso su linux. Preferibilmente con gnome, se è importante. Quindi usare JNA con libreria user32 non è un'opzione qui (o è?).

Qualsiasi suggerimento sarà ottimo, non ho trovato quasi nulla sull'argomento.

P.S. L'unica cosa che ho trovato è il comando wmctrl (potrei chiamarlo e analizzarlo in java alla fine) che elenca le finestre ma non mi dà alcuna informazione sull'ordine z.

Aggiornamento: Sarebbe perfetto se potessi ricevere una notifica/richiamata quando l'ordine z cambia.

risposta

6

Usa xprop, mostra le proprietà della finestra. Elenco delle finestre in ordine z è in proprietà _NET_CLIENT_LIST_STACKING della finestra principale:

xprop -root | grep '_NET_CLIENT_LIST_STACKING(WINDOW)' 

uscita dovrebbe essere simile a questo:

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

Successivamente è possibile ottenere maggiori informazioni su particolari finestre con:

xprop -id <id> 

o

xwininfo -id <id> 
+0

Ottima risposta, grazie! +1 per questo, tuttavia spero ancora di trovare una soluzione java pura –

+0

Si prega di consultare il mio aggiornamento sulla domanda. Sai qualcosa che mi avrebbe dato una notifica sul cambio di ordine z? –

+0

'xev -root' mostrerà tutte le modifiche nelle proprietà della finestra di root. Filtra solo dopo _NET_CLIENT_LIST_STACKING. –

Problemi correlati