Pillole Linux: riesumare una finestra “fantasma”

Spread the love

Oggi mi sono trovato davanti un problema sconosciuto: ho aperto una finestra (nella fattispecie, l’applet Java di MirthConnect) e ho poi normalmente commutato su un’altra finestra da quel momento non vedevo più la finestra Java nell’elenco dei task che vengono visualizzati con ALT-TAB:

La finestra in foreground non c’è nell’elenco dei task.

Se minimizzo la finestra di Mirthconnect non riesco più a recuperarla… Come posso fare ad accedervi nuovamente? il Linux ci sono due bei strumenti:

  • wmctrl interact with a EWMH/NetWM compatible X Window Manager: consente di fare cose meravigliose per automatizzare il desktop tramite script bash, ma in questo caso voglio solo vedere l’elenco delle finestre attive:
$ wmctrl -l
0x05800008 0 jsbach Aggiornamenti software
0x03000002 0 jsbach XdndCollectionWindowImp
0x03000003 0 jsbach unity-launcher
0x03000004 0 jsbach unity-panel
0x03000005 0 jsbach unity-dash
0x03000006 0 jsbach Hud
0x0340000a 0 jsbach Scrivania
0x03402081 0 jsbach dati_effettivi
0x00e00001 0 jsbach command line - Maximize an application with known PID from CLI - Ask Ubuntu - Google Chrome
0x05200084 0 jsbach *analisi_errori.txt (~/Documenti/clienti/XYZ/anomalie/180927) - gedit
0x04e000b5 0 jsbach prod36.mirth.local - Mirth Connect Administrator - (3.5.2)
0x03600004 0 jsbach dati_180927.xml - /home/marcob/Documenti/clienti/XYZ/2018/ - Geany
0x05a0000a 0 jsbach Terminale
0x04c00007 0 jsbach Database - KeePassX
0x05e000b0 0 jsbach prod35.mirth.local - Mirth Connect Administrator - (3.5.2)

Come si può notare le finestre attive sono più di quelle mostrate con ALT-TAB; in particolare ho evidenziato le due finestra scomparse: mi serve accedere ad una di queste due (l’ultima)

C’è poi un secondo tool molto potente:

  • xdotool fake keyboard/mouse input, window management, and more:
    questa utility simula l’uso della tastiera e di movimenti del mouse prodotti con uno script bash! Nel mio caso mi serve solo per sapere quale finestra è associata al processo che vedo essere quello sotto il quale gira il client Mirtchconnect
$ ps ax | grep java
4201 ? Sl 6:24 /usr/local/java/jre1.8.0_73/bin/java -eccetera
6102 ? Sl 6:24 /usr/local/java/jre1.8.0_73/bin/java -eccetera

Quello che mi serve è agganciare è il processo 6102. Per vedere quale finestra è associata eseguo:

$ xdotool search --pid 6102 | tail -1
98566320

xdotool mi dice che il processo 6102 è legato alla finestra 98566320, in esadecimale 0x05e000b0.

Ora xdotool permette di ripristinare la finestra come se la selezionassimo con ALT-TAB!

$ xdotool windowactivate 5e000b0

Si può fare anche tutto con un solo comando

$ xdotool windowactivate xdotool search --pid 6102 | tail -1

L’effetto è quello di riportare in foreground la finestra fantasma e ricominciarci a lavorare. Con la linea di comando 🙂

La finestra “fantasma” è nuovamente disponibile.

Lascia un commento

Your email address will not be published.

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.