Avviare una finestra ridotta a icona
Mi rendo conto che lo scopo di wmectrl potrebbe non essere chiaro alla maggioranza e per questo ho voluto indicare degli esempi in cui si manifesta la sua utilità e il suo utilizzo.
Un primo caso può essere quello di avviare un’applicazione con la sua finestra già minimizzata ad icona anche se il programma normalmente non lo consente. Prenderò in esempio Thunderbird 3 ma è valido per qualsiasi altro programma.
Si inizia avviando Thunderbird normalmente e ciò che normalmente identifica un programma è il titolo della sua finestra, in questo caso Posta in arrivo – Cartelle locali – Mozilla Thunderbird.

Difatti eseguendo su un terminale:
wmectrl --list
5298 x-nautilus-desktop 5533 Gnomeradio - Senza nome 5496 Add New Post ‹ Ubuntu Trucchi — WordPress - Shiretoko 5527 Liferea 5297 Pannello di bordo espanso superiore 5297 Pannello di bordo espanso inferiore 26966 Posta in arrivo - Cartelle locali - Mozilla Thunderbird 5312 stjerm
Troveremo il titolo della finestra uguale all’immagine sopra.
Poiché il titolo della finestra può cambiare sulla base della cartella che viene aperta si raccomanda di non usare il titolo preciso ma una stringa univoca, come ad esempio Mozilla Thunderbird.
Eseguendo:
wmectrl --window="Mozilla Thunderbird" --minimized=true
La finestra aperta di Thunderbird verrà subito minimizzata. Per fare in modo che Thunderbird all’apertura subito venga minimizzato basterà avviarlo in questo modo:
thunderbird-3.0 & until wmectrl --window="Mozilla Thunderbird" --minimize=true 2> /dev/null do sleep 0.1 done
La prima riga avvia l’eseguibile di Thunderbird 3 in background mentre la seconda tenta la minimizzazione di Thunderbird come spiegato prima.
Se la finestra di Thunderbird non è ancora pronta perché il programma si sta ancora avviando, sarà restituito un messaggio di errore che indica l’impossibilità di trovare la finestra. Aggiungendo 2> /dev/null questo messaggio di errore sarà nascosto.
L’until si ripeterà fino a che wmectrl non riuscirà ad eseguire l’operazione e tra un tentativo e l’altro sarà messa una pausa di un decimo di secondo (sleep 0.1) per non stressare inutilmente la macchina di richieste e lasciare a Thunderbird il tempo di avviarsi.
Il gruppo di 5 righe sopra può essere inserito in uno script oppure composto tutto su una riga sola semplicemente separandole da ; in questo modo:
thunderbird-3.0 & until wmectrl --window="Mozilla Thunderbird" --minimize=true 2> /dev/null; do sleep 0.01; done
Qui si è andati a capo solo per questioni di spazio ma il comando può essere scritto tutto su una sola riga.
Infine per rendere tutto ciò più utile è possibile creare o modificare un lanciatore per avviare Thunderbird già avviato inserendo come comando:
bash -c "thunderbird-3.0 & until wmectrl --window=\"Mozilla Thunderbird\" --minimize=true 2> /dev/null; do sleep 0.01; done"
Naturalmente scritto tutto su una riga, qui riportato a capo solo per consentire la lettura nello spazio limitato.

Basterà un click sopra questo lanciatore per avviare Thunderbird già ridotto a icona.
Questo è uno dei tantissimi usi che sono possibili con wmectrl.
Da una richiesta del forum ubuntu-it.org: Avviare all’avvio un’applicazione ridotta ad icona











ah ma allora sono stato utile……mi fa piacere!
Ciao, ma ho provato con chromium ma non funge!
Mi aiuti per favore?
inizia a ridurre ad icona la finestra gia` aperta e verifica che funzioni
Hai perfettamente ragione! FUNZIONAAAAAAAA sei fantastico grazie!
La tua utility è strafigaaaaaaaaaaaaa xD
Ciao Muflone.
Ha senso nel tuo comando usare && al posto di & e non mettere “until”? Così wmectrl dovrebbe essere avviato solo quando thunderbird è caricato. Scusa l’ingenuità della domanda…
ciao
l’operatore && attende che il programma abbia terminato la sua esecuzione, quindi il ciclo non andrebbe avanti fino a quando il programma non verrebbe chiuso, risultando di fatto inutile.
Ciao!
Il comando:
thunderbird & until wmectrl –window=”Posta in arrivo – alessandro.########@gmail.com – Mozilla Thunderbird” –minimize=true 2> /dev/null; do sleep 0.01; done
da terminale funziona, mentre se inserito nelle applicazioni d’avvio non va. Mi puoi dare una mano?
Grazie mille, ottimo programma
Dimenticavo sono sulla 11.10
Ho risolto mettendo nel comando in applicazioni d’avvio:
bash -c “thunderbird & until wmectrl -N true –window=\”alessandro.########@gmail.com – Mozilla Thunderbird\” 2> /dev/null; do sleep 0.01; done”
Grazie ancora del programma