Configuration des touches supplémentaires sur les claviers multimedia.

Par R. Suinot: rsuinux@gmx.fr
Mise à jour de cette documentation:
Warning: filemtime() [function.filemtime]: Unable to access /journal/clavier-multimedia.php in /mnt/133/sda/5/2/rsuinux/journal/clavier-multimedia.php on line 19
01/01/70.

Contenu


Définition du clavier

J'ai reçu en cadeau un clavier sans fils, de marque T'nB
Il dispose de 20 touches supplémentaires par rapport à un clavier standard, mais pas de pavé numérique. Par contre, la souris est intégrée au clavier.
La configuration sous linux ne pose pas de problème, mais je n'ai pas (encore) les touches 'inférieur' et 'supérieur' Pour les reste, a priori pas de problème.
clavier T'nB


Récupération des codes

Mes premiers tests pour récupérer les valeurs des touches suplémentaires, ont consisté en un seul programme: xev. Celui ci renvoi les info transmise par le serveur X, à l'application en cours. Et là, je n'ai eu aucune valeur!!!. La solution, comme toujours, est passée par http://www.google.fr et par /var/log/syslog! Dans ce dernier, nous trouvons des codes renvoyés par le clavier, mais dont le noyau ne sait quoi faire faute de les connaitre:

...
Sep  7 21:18:09 feline kernel: atkbd.c: Unknown key pressed (translated set 2, code 0xaf on isa0060/serio0).
Sep  7 21:18:09 feline kernel: atkbd.c: Use 'setkeycodes e02f ' to make it known.
Sep  7 21:18:10 feline kernel: atkbd.c: Unknown key released (translated set 2, code 0xaf on isa0060/serio0).
Sep  7 21:18:10 feline kernel: atkbd.c: Use 'setkeycodes e02f ' to make it known.
Sep  7 21:18:14 feline kernel: atkbd.c: Unknown key pressed (translated set 2, code 0xac on isa0060/serio0).
Sep  7 21:18:14 feline kernel: atkbd.c: Use 'setkeycodes e02c ' to make it known.
Sep  7 21:18:14 feline kernel: atkbd.c: Unknown key released (translated set 2, code 0xac on isa0060/serio0).
Sep  7 21:18:14 feline kernel: atkbd.c: Use 'setkeycodes e02c ' to make it known.
...
En plus, le noyau est assez aimable pour me dire ce que je doit faire (ligne 'Use 'setkeycodes e02c ...' par exemple)
Faisont donc un test:
# setkeycodes e02f 239
$ xev
...
KeyPress event, serial 24, synthetic NO, window 0x2800001,
root 0x47, subw 0x0, time 2360351, (895,610), root:(905,690),
state 0x0, keycode 244 (keysym 0x0, NoSymbol), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False

KeyRelease event, serial 27, synthetic NO, window 0x2800001,
root 0x47, subw 0x0, time 2360471, (895,610), root:(905,690),
state 0x0, keycode 244 (keysym 0x0, NoSymbol), same_screen YES,
XLookupString gives 0 bytes:
...
Nous voyons qu'une touche a été utilisée, de keycode 244. Cela ne correspond pas à la valeur que j'ai donnée (ici 239), mais je ne sais pas pourquoi. Si quelqu'un a une explication, je suis preneur!
Reste à l'utiliser...


Configurations

A présent que nous pouvons assigner une valeur aux touches, il nous faut l'activer au démarrage du système. Pour cela, il suffit de créer un script à palcer dans /etc/int.d/ (sous debian).Puis de demander gentillement de créer les liens correct avec update-rc.d (toujours sous debian). Le script que j'ai créé s'appel clavier-tnb et l'installation s'est effectué comme ceci:

# update-rc.d clavier-tnd start 20 2 3 4 5 .
Je demande seulement le script au demarrage, pas d'appel à l'arret.


Conclusion

Mise à part 3 touches mal configurées (les touches windows et la touche 'inférieur/supérieur'), la configuration des touches internet ne pose aucun soucis, et c'est même assez pratique!




S'il vous arrivait de vous servir de cette doc, envoyez moi un petit mot, merci!