Home > Comandi Console, Dai forum, Debian, Gnome, KDE, Linux, Pacchetti, Trucchi, Ubuntu, ubuntu-it, wmectrl > Avviare una finestra ridotta a icona

Avviare una finestra ridotta a icona

03 luglio 2010

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.

Titolo di 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.

Lanciatore per Thunderbir minimizzato

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

  1. danialbi77
    06 luglio 2010 alle 0:29

    ah ma allora sono stato utile……mi fa piacere!

  2. Luca
    21 agosto 2010 alle 15:51

    Ciao, ma ho provato con chromium ma non funge!
    Mi aiuti per favore?

    • 21 agosto 2010 alle 16:14

      inizia a ridurre ad icona la finestra gia` aperta e verifica che funzioni

  3. Luca
    22 agosto 2010 alle 12:11

    Hai perfettamente ragione! FUNZIONAAAAAAAA sei fantastico grazie!
    La tua utility è strafigaaaaaaaaaaaaa xD

  4. 30 gennaio 2011 alle 11:44

    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…

    • 27 marzo 2011 alle 14:44

      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.

  5. Syd
    29 novembre 2011 alle 0:54

    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

  6. Syd
    29 novembre 2011 alle 12:14

    Dimenticavo sono sulla 11.10

  7. Syd
    12 dicembre 2011 alle 23:11

    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

Comment pages
  1. 17 giugno 2011 alle 18:18
I commenti sono chiusi.