Qing Liu (qliu@club-internet.fr), version 0.4, 24 août 2003
J'ai un clavier Internet Explorer Pro avec des "extra-touches": touches de navigation "précédent, suivant" etc, touches de fonctions "calcul, veille"... Autant que je sache, ces touches ne sont pas reconnues par les applications sous Linux. Le présent document explique comment exploiter ces touches.
$ showkey -sSi vous voulez programmer une touche ordinaire, par exemple la touche "windows", showkey tout court suffit. Vous voyez
0xe0 0x5f 0xe0 0xdfLe code à retenir est e05f (qui vient de 0xe0 et de 0x5f).
grep -rs loadkeys /etc/*ou
rgrep loadkeys /etc/* 2>/dev/nullUn petit "locate fr-latin1" permet de trouver où se cache le fichier fr-latin1.map. S'il est compressé, il faut le décompresser avant de l'éditer (et le recompresser avec gzip après l'édition, si on veut). Dans ce fichier on doit d'abord repérer un code non attribué. Par exemple, on voit qu'il n'y a aucune ligne contenant 90. On y ajoute alors une ligne "keycode 90 = KeyboardSignal":
...Maintenant il faut dire au système de transformer le scan code e05f en ascii code 90:
keycode 86 = less greater bar
alt keycode 86 = Meta_less
keycode 90 = KeyboardSignal
keycode 97 = Control
# /usr/bin/setcodekeys e05f 90(vérifier que le chemin de setkeycodes est le bon). Pour éviter de le refaire chaque fois, on peut inserrer cette ligne dans un script de démarrage, par exemple rc.local.
bzz::kbrequest:/sbin/apm -sIci bzz est pris au hasard. Il peut être n'importe quelle chaîne de moins de 4 caractères non utilisée dans inittab. man inittab pour plus de détail. Il n'y a plus qu'à taper
# telinit qpour prendre en compte la modification de /etc/inittab. Si tout se passe bien, l'appuie sur la touche "veille" provoque la mise en veille du système.
$ tar xvfz xbindkeys-1.5.5.tar.gz $ cd xbindkeys-1.5.5 $ ./configure && make && su -c 'make install'Des packages .deb et rpm sont également disponibles sur le site.
$ xbindkeys --defaults > ~/.xbindkeysrcpour créer un embryon de fichier de configuration. Éditer ce fichier pour voir si les raccourcis par défault vous conviennent. Personnellement, j'ai commenté (supprimé) le raccourci Ctrl-f:
# set directly keycode (here control + f with my keyboard) # "xterm &" # c:41 + m:0x4car il m'empêche d'utiliser normalement mon emacs ! C'est-à-dire que sous emacs, Ctrl-f ouvre un xterm au lieu de me proposer d'ouvrir un fichier. Pour créer vos propres raccourcis, rien de plus simple:
$ xbindkeys -k Press combination of keys or/and click under the window. You can use one of the two lines after "NoCommand" in $HOME/.xbindkeysrc to bind a key. "NoCommand" m:0x10 + c:236 Mod2 + NoSymbol(j'ai appuyé sur la touche "Courrier" de mon clavier Internet Explorer Pro). Le cas échéant, il faut amener le focus de la souris dans la petite fenêtre [XBindKeys] pour que la frappe des touches prennent effet. Maintenant, il suffit d'ajouter les lignes
"emacs -f rmail &" m:0x10 + c:236dans ~/.xbindkeys. Quand le daemon xbindkeys sera en action (voir ci-dessous), l'appuie de la touche "Courrier" lancera emacs avec l'option -f rmail (pour les ignares :), c'est le lecteur de courriels sous emacs). La touche "Calcul" donne
"NoCommand" m:0x10 + c:161 Mod2 + NoSymbolOn peut lui associer par exemple
"xcalc &" m:0x10 + c:161Si vous voulez créer des raccourcis pour plusieurs touches (ou combinaisons de touches), utilisez xbindkeys -mk au lieu de xbindkeys -k.
$ killall -1 xbindkeyspermet de faire prendre en compte les modifications.
ATTENTION: À mon avis, il vaut mieux éviter d'utiliser trop de raccourcis par XBindKeys. En effet, ces raccoucis priment sur ceux de vos applications et cela pourraient provoquer des confusions si on n'y prête pas suffisamment attention (cf. le coup de Ctrl-f/emacs ci-dessus).
Lineak pour LInux Easy Access Keyboard. Il a les mêmes vocations que XBindKeys. Je n'ai pas testé ce programme car je n'ai plus de clavier à touches spéciales. Consulter le site du programme.