Une petite astuce qui utilise l'ACPI et qui me permet de gagner 2
secondes de temps de cerveau humain disponible : comment faire pour
que mes applications de messagerie instantanée et d'IRC soient
automatiquement mises en suspension lorsque mon portable est en veille
(écran replié ?). C'est assez pénible de taper la commande idoine à
chaque pause café alors autant que le système le fasse pour moi !
Pour ce faire, il suffit (sous Debian GNU/Linux) de créer un
répertoire
/etc/acpi/local et d'y placer deux scripts
lid.sh.pre et
lid.sh.post (qui doivent être
exécutables) et qui seront exécutés à chaque mise en veille puis en
mode normal du portable.
Voici le script
lid.sh.post :
#!/bin/sh
users=$(ps auxw | grep emacs | grep -v root | awk '{print $1}' | sort | uniq)
for user in $users ; do
su $user -c "gnuclient -batch -eval '(erc-cmd-GAWAY \"\")(message \"Welcome back\")'"
done
users=$(ps auxw | grep gaim | grep -v root | awk '{print $1}' | sort | uniq)
for user in $users ; do
su $user -c "gaim-remote 'setstatus?status=available&message='"
done
Et le script
lid.sh.pre :
#!/bin/sh
users=$(ps auxw | grep emacs | grep -v root | awk '{print $1}' | sort | uniq)
for user in $users ; do
su $user -c "gnuclient -batch -eval '(erc-cmd-GAWAY \"Laptop suspended\")'"
done
users=$(ps auxw | grep gaim | grep -v root | awk '{print $1}' | sort | uniq)
for user in $users ; do
su $user -c "gaim-remote 'setstatus?status=away&message=Laptop suspended'"
done
Ces deux scripts envoient les commandes idoines aux programmes Emacs
et Gaim. Concernant Emacs, il utilise le programme
gnuclient, donc gnuserv doit être lancé dans le fichier
.emacs des utilisateurs:
(load-library "gnuserv")
(gnuserv-start)
Également, j'utilise la
gaim-remote pour envoyer l'ordre à
gaim. Ceci implique que
python-dbus soit installé.
Bien évidemment, on peut adapter ces scripts pour son propre client de
messagerie instantanée. Même, cette astuce peut être utilisée pour
exécuter des tâches coûteuses en temps machine lors des pauses café.