S'il est un matériel que les distributions négligent de prendre en compte, c'est bien le clavier multimédia. Voici une méthode qui va vous permettre de le voir reconnu, sous pratiquement tous les bureaux graphiques, en utilisant le logiciel Xbindkeys.

Votre nouveau clavier trône sur votre bureau, flambant neuf. Comme tous les claviers modernes, il est équipé de touches de raccourcis multimédias ou bureautiques, qui peuvent par exemple lancer la lecture de musique, envoyer directement un courrier électronique, régler le volume ou encore éteindre le PC. Mais quelle déception quand vous pressez ces touches de raccourcis : rien ne se passe. Rien ? Pas tout à fait. En fait, le clavier envoie quand même un signal, un code, comme pour toutes les autres touches, mais le serveur graphique X ne sait pas quoi en faire, et ne réagit donc pas. La manœuvre, pour utiliser ces fameuses touches, va donc être d'en récupérer tous les signaux, puis à l'aide d'un petit programme, xbindkeys, que nous lancerons au démarrage de notre bureau, de les affecter à des commandes ou des lancements d'applications. L'intérêt d'utiliser xbindkeys est qu'il peut fonctionner avec tous les bureaux, et qu'il peut prendre en charge d'autres claviers que ceux listés dans le centre de contrôle Gnome. Pour ma part, xbindkeys me sert sous Gnome, IceWM et Fluxbox. Surtout, il permet d'attribuer des actions complexes à toutes les touches reconnues du clavier, et donc d'aller plus loin que les pilotes habituellement fournis.
Avant de démarrer, sachez que certaines touches pourront malheureusement ne jamais fonctionner avec les méthodes basées sur la récupération des codes clavier. Le cas se rencontre notamment avec les claviers USB dont certaines des touches envoient non des codes standards, mais du signal compris seulement par le pilote USB, sous Windows. Nous n'avons en revanche jamais rencontré de problèmes avec nos claviers PS/2.

Pour information, toutes les touches des Microsoft Natural Ergonomic Keyboard (PS/2) (Fig.1), Logitech Cordless Desktop Comfort (USB) (Fig.2) et Zippy Slim Media Keyboard WK-801 (PS/2) sont reconnues et configurables.
Première étape : la récupération des signaux des touches
Nous allons passer par l'utilitaire xev. Ce dernier n'est pas toujours installé par défaut. Sous Mandriva, il est inclus dans le paquet X11R6-Contrib, à installer soit par le gestionnaire graphique rpmdrake, soit tout simplement par la commande urpmi X11R6-Contrib. Ceci fait, ouvrez une console et tapez xev. Une nouvelle fenêtre apparaît, affichant un carré blanc. Cliquez dedans pour la sélectionner, puis enfoncez une touche spéciale. Si elle est bien reconnue par le serveur X, une ligne spéciale va apparaître dans la fenêtre du terminal, comme suit :
KeyRelease event, serial 27, synthetic NO, window 0x1200001, root 0x40, subw 0x0, time 10083588, (291,311), root:(292,335), state 0x0, keycode 174 (keysym 0x0, NoSymbol), same_screen YES, XLookupString gives 0 bytes: ""
Repérez le keycode (voir Fig. 3) et notez-le avec la touche qui lui est associée (ici, le keycode est le 174, qui correspond à la touche volume +).
Si une touche n'est pas détectée par xev, il reste une chance qu'elle envoie quand même un signal au noyau. Dans un terminal, passez en root, tapez la commande tail -f /var/log/messages, puis pressez la touche spéciale. Si tail affiche un message, notez-en le keycode, sinon abandonnez tout espoir. Faites [Ctrl]+[C] pour quitter tail.
Pour info, voici dans le tableau ci-dessous tous les codes touche de mon Logitech Cordless Desktop Comfort .

Deuxième étape : installez xbindkeys
Écrit par le Français Philippe Brochard, xbindkeys est présent dans les dépôts Contrib de Mandriva et s'installe donc facilement sous Mandriva si la source Contrib est définie sur votre machine. Il est aussi possible de récupérer les sources sur le site officiel et de les compiler, en les décompressant, puis en tapant make puis make install en root dans le répertoire des sources (pas d'étape ./configure). La bibliothèque TCL/TK doit être installée pour mener cette compilation jusqu'au bout.
Troisième étape : remplir un fichier .xbindkeysrc
À la racine de votre dossier home, créez avec votre éditeur de texte préféré un fichier nommé .xbindkeysrc. Puis remplissez ce fichier texte en entrant, pour chaque touche, un paragraphe selon la syntaxe suivante :
#Explication de la commande "commande &" c:keycode
Par exemple pour diminuer le son de 5 crans :
#volumedown "aumix -v -5" c:174
ou pour lancer la lecture/mettre en pause avec xmms :
#play|pause "xmms -t &" c:162
ou pour ouvrir une fenêtre d'explorateur sur votre dossier personnel :
#favorites "rox $HOME &" c:230
ou pour écrire un mail :
#mail "/usr/local/bin/sylpheed --compose &" c:236
Quasiment toutes les commandes Linux sont ainsi accessibles, avec leurs options. Sauf pour aumix, n'oubliez pas d'ajouter un & à la fin de chaque commande, afin que xbindkeys puisse reprendre la main une fois la commande lancée.
Vous pouvez aussi générer automatiquement un fichier .xbindkeysrc exemple avec la commande bindkeys --defaults > $HOME/.xbindkeysrc. Modifier ce fichier exemple vous sera peut-être plus facile et vous donnera des idées.

Fig. 3 : Le logiciel xev vous montre tous les signaux clavier et souris captés par le serveur X.
Quatrième étape : lancer xbindkeys
C'est tout simple : tapez simplement xbindkeys & en ligne de commande, et appréciez vos nouveaux accès rapides à vos applications préférées. Vous pouvez aussi lancer xbindkeys automatiquement lors du lancement de X, en le rajoutant dans les dossiers de démarrage de Gnome, KDE ou IceWM. Personnellement, comme je lance X par la commande startx, j'ai tout simplement rajouté une ligne xbindkeys & dans mon fichier .xinitrc.
Si jamais vous modifiez votre fichier .xbindkeysrc, relancez le programme avec la commande killall -HUP xbindkeys.
Conclusion
Xbindkeys et ses combinaisons sont suffisamment souples pour permettre des dizaines de configurations différentes : il peut prendre en compte les touches modifiantes comme [Ctrl] ou [Maj], ainsi que les boutons de souris, et mixer tout ça. Par contre, il est limité à ce que peuvent faire les commandes Linux. Nous n'avons jamais trouvé comment attribuer aux touches [page avant], [page arrière] les commandes correspondantes dans Mozilla ou Firefox, par exemple. Dans ce cas, nous utilisons les raccourcis déjà existants ([Alt]+[Flèche gauche/droite]), et réutilisons les touches pour d'autres commandes.
Site officiel de xbindkeys :
http://hocwp.free.fr/xbindkeys

