Nous allons voir dans cet article qu'il n'est franchement pas difficile de contrôler le clignotement de ce voyant, et de l'utiliser pour signaler la présence de nouveau courrier.[1] Pour l'utilisation des touches elles-mêmes, nous verrons peut-être ça dans un prochain article...

Cet article est consacré à un portable de type Acer Aspire 3104 WLMi sous Kubuntu 8.04 Hardy, mais peut également être valable pour d'autres modèles, et même des portables de certaines autres marques qui peuvent aussi être gérés avec les pilotes Acer.

Si vous avez installé Ubuntu Hardy sur un portable Acer, il y a de bonnes chances que le module acer_acpi ait été automatiquement chargé. Si c'est le cas, vous verrez dans le répertoire virtuel /proc un sous-répertoire /proc/acpi/acer contenant divers pseudo-fichiers, dont un fichier "mailled".

# ls -l /proc/acpi/acer/
total 0
-rw-r--r-- 1 root root 0 2008-06-13 08:43 brightness
-rw-r--r-- 1 root root 0 2008-06-13 08:43 interface
-rw-r--r-- 1 root root 0 2008-06-13 08:43 mailled
-rw-r--r-- 1 root root 0 2008-06-13 08:43 threeg
-rw-r--r-- 1 root root 0 2008-06-13 08:43 version
-rw-r--r-- 1 root root 0 2008-06-13 08:43 wireless

Si vous ne voyez pas ce répertoire, vérifiez avec la commande "lsmod" que le module "acer_acpi" est chargé, sinon tentez de le charger avec la commande "modprobe acer_acpi".

# lsmod | grep acer
acer_acpi              18112  0
led_class               6020  1 acer_acpi
wmi_acer                9644  1 acer_acpi

Si vous voyez le fichier /proc/acpi/acer/mailled, essayez donc (comme root) :

  • echo 1 > /proc/acpi/acer/mailled
  • echo 0 > /proc/acpi/acer/mailled

Amusant, n'est-ce pas ?

Nous avons quand même un petit problème : Seul root peut normalement écrire dans ce fichier (donc contrôler la LED), et nous voudrions bien pouvoir l'utiliser pour signaler la présence de courrier pour un utilisateur "ordinaire".

On pourrait envisager de "chmod 666 /proc/acpi/acer/mailled" pour autoriser n'importe quel utilisateur à contrôler la LED, ce qui ne pose pas de problème de sécurité, mais /proc est un système de fichiers virtuel, et ce réglage disparaîtrait au prochain reboot, ou à la prochaine suspension ou hibernation de la machine.

Le plus simple pour contourner ce problème est alors de contrôler la LED via un petit script "/usr/local/bin/mail-led" que l'on appellera à travers "sudo", tout en indiquant à sudo qu'il peut exécuter ce script en tant que root, depuis n'importe quel utilisateur et sans demander de mot de passe. Voici le contenu du script "/usr/local/bin/mail-led" que je vous propose :

# Sets Acer mail LED on or off
#
# Needs to be run as root, use sudo with an /etc/sudoers entry such as:
# ALL ALL=NOPASSWD: /usr/local/bin/mail-led
#
[ $# -eq 1 ] || exit 1
[ -w /proc/acpi/acer/mailled ] || exit 1

case $1 in
        0|no|NO|No|off|OFF|Off|false|FALSE|False)
                echo 0 > /proc/acpi/acer/mailled
                ;;
        1|yes|YES|Yes|on|ON|On|true|TRUE|True)
                echo 1 > /proc/acpi/acer/mailled
                ;;
        *)
                exit 1
                ;;
esac
exit 0

Après l'avoir sauvegardé, rendez-le exécutable pour n'importe quel utilisateur : "chmod 755 /usr/local/bin/mail-led", puis utilisez la commande "visudo" qui appellera votre éditeur de texte standard pour vous permettre de modifier le fichier "/etc/sudoers".
À la fin de ce fichier, rajoutez simplement la ligne :

ALL     ALL=NOPASSWD: /usr/local/bin/mail-led

...et sauvegardez.

Essayez alors, depuis un terminal "utilisateur ordinaire" :

  • sudo mail-led on
  • sudo mail-led off

Ça devrait fonctionner, sans vous demander de mot de passe.

Maintenant que nous pouvons contrôler la LED à l'aise Blaise, il n'y a plus qu'à utiliser l'un des nombreux petits logiciels "notificateurs de courrier" disponibles, pour peu que celui-ci permette d'exécuter une commande arbitraire (pour allumer la LED) quand il détecte du nouveau courrier, et une autre commande (pour éteindre) quand il n'en détecte plus.

Sous KDE, le package "kbiff" fera parfaitement l'affaire. Sous Gnome ou d'autres environnements, vous pouvez utiliser le package "mail-notification".[2] Vous n'avez plus qu'à configurer ce logiciel pour qu'il appelle "sudo mail-led on" pour signaler la présence de nouveau courrier, et, bien sûr "sudo mail-led off" quand il n'y en a plus.

Kbiff pour LED mail

Vous devrez également configurer dans ce logiciel les paramètres de votre serveur de courrier et de votre boîte-aux-lettres, puisque ce logiciel de notification est indépendant de votre "client mail" habituel. (Pour cette raison, il pourra y avoir un décalage entre le moment où vous lisez le courrier et le moment où la LED s'éteindra, puisqu'il faudra attendre que le logiciel de notification revérifie votre boîte pour qu'il se rende compte qu'il n'y a plus de nouveau courrier).

Moi, je trouve ce petit truc super-pratique ;-)

Notes

[1] Sur une machine ne disposant pas de LED "spéciale", il existe des outils permettant de contrôler le clignotement des LEDs habituelles du clavier (NumLock, etc...)

[2] Il existe aussi des packages spécialement "orientés gmail", comme chekckgmail, kcheckgmail ou kgmailnotifier...