Dopo aver realizzato la versione iniziale dello script per sospendere Thunderbird quando lo schermo è bloccato ho deciso di migliorare tale tool in modo che fosse in grado di identificare anche è il display cui è agganciato il programma, così da evitare problemi in fase di riconoscimento.
Ecco quindi la versione aggiornata dello script.
Come l’altra volta create/modificate il file /usr/local/bin/sync_thunderbird_with_screensaver.sh e al suo interno incollate il seguente codice:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
#!/bin/sh # # Davide Airaghi # Simple tool to suspend/resume Mozilla Thunderbird # when the screen is locked/unlocked # LANG=en export LANG XCMD=$(which xscreensaver-command 2>/dev/null) TDISPLAY=$(ps eax|grep thunderbird|grep -v grep|sed -es/^.*DISPLAY=//|sed -es/\ .*$// | grep : | tail -n1) if [ "$XCMD" != "" ]; then export DISPLAY=$TDISPLAY ISLOCKED=$( ${XCMD} -time 2>/dev/null | grep -i locked ) if [ "$ISLOCKED" != "" ]; then pkill -STOP thunderbird 2>/dev/null >/dev/null else pkill -CONT thunderbird 2>/dev/null >/dev/null fi fi |
A questo punto non vi resta che modificare, se già non l’avete fatto la scorsa volta, il vostro crontab così da inserire una chiamata periodica a questo script, in modo che ogni X minuti esso verifichi lo stato dello screensaver e, di conseguenza, attivi/disattivi il client di posta.
Nel mio caso la riga inserita nella pianificazione degli script periodici è la seguente:
1 |
*/2 * * * * /usr/local/bin/sync_thunderbird_with_screensaver.sh 2>/dev/null >/dev/null |
Con tale riga viene effettuato un controllo dello stato dello screensaver ogni 2 minuti, voi ovviamente potete usare l’intervallo temporale che volete.