Faire clignoter la LED du ScrollLock lors de l'arrivée de nouveaux messages sous Kmail
Par OdyX, jeudi 20 septembre 2007 à 19:14 :: Linux :: #86 :: rss
Salut,
ça fait longtemps que je n'ai rien écrit et je reviens pour un truc débile comme ça vous me direz... Ben voilà, c'est la vie... 
Suite à un billet du TheGlu's blog trouvé par hasard sur le planet Ubuntu-fr, je voulais aussi ce superbe gadget sans un démon de plus sur ma machine et avec Kmail.
Sachant que Kmail n'offre pas de moyen de lancer une commande lorsqu'il n'y a plus de messages non-lus, le challenge était important...
Je met le code en vrac, peut-être que ça intéressera quelqu'un :
#!/bin/bash
# Numéro de la LED
ledno=3;
# temps allumé
slpOnTime=0.4s;
# temps éteint
slpOffTime=0.4s;
#Nombre de clignotements
clignoNb=3;
#Augmenter le nombre de clignotements
clignoIncrease=true;
# Gérer les espaces dans les fichiers
export IFS=$'\n';
#Fonction retournant le nombre de messages non-lus
function KmailUnreadMessages {
echo -n Check: ;
declare -i num; num=0;
total=0;
for folder in `dcop kmail KMailIface folderList`;
do
if [ $folder != /Local ] && [ $folder != /Local/trash ]
then
num=`dcop $(dcop kmail KMailIface getFolder $folder) unreadMessages`;
total=$(( total + num ));
fi
done
echo done: $total;
}
KmailUnreadMessages
while [ $total -ne 0 ]
do
echo Ticks $clignoNb times;
for i in `seq 1 $clignoNb`;
do
xset led $ledno;
sleep $slpOnTime;
xset -led $ledno;
sleep $slpOffTime;
done
if [ $clignoIncrease ]
then
clignoNb=$(( clignoNb + 1 ));
fi
xset led $ledno;
KmailUnreadMessages;
xset -led $ledno;
done
echo "Every message is read. STOP."
xset -led $ledno;
Il suffit ensuite de mettre ce petit programme comme exécutable à la notification de nouveaux messages et ça marche... Joli non ?
@+, Didier

Commentaires
1. Le mercredi 21 novembre 2007 à 15:21, par prentonmantoonsenva
Ajouter un commentaire
Les commentaires pour ce billet sont fermés.