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... :D

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