Retrouvez cet article dans : Linux Magazine 89
Qu’est-ce qu’une disposition de touches Xorg ?
C’est un ensemble de quelques fichiers textes situés dans l’arborescence en dessous du répertoireUn peu d’histoire
En France, nous utilisons généralement des claviers de type " AZERTY ", par référence aux premières lettres du clavier. En fait, cette désignation n’est pas suffisante, car les Belges, par exemple, utilisent également des claviers AZERTY qui ne sont pas pour autant complètement compatibles avec nos claviers français. La disposition de touches des claviers français que l’on trouve sous Xorg, qui est bien sûr héritée de XFree86, appelée " fr-latin1 ", apportait déjà de nombreuses améliorations par rapport à la disposition que l’on trouve toujours actuellement sous Windows. La majorité des touches lettrées produisent ainsi un caractère spécial lorsqu’on l’utilise en maintenant la touche [AltGr] enfoncée. Par exemple, [AltGr]+[a] produit le caractère " æ ", [AltGr]+[z] produit " " "… Ce genre de combinaison de touches facilite grandement la saisie de ces caractères et permet de répandre plus rapidement leur utilisation, ce qui produit des textes plus conformes à la typographie française. En effet, ce n’est pas correct d’utiliser les guillemets américains " " " dans un texte français, ni d’écrire œuf " oeuf " ou encore de ne pas accentuer les majuscules. Cela passait à l’époque de la machine à écrire parce qu’on n’avait pas le choix, mais cette époque est révolue depuis longtemps. Nous avons tous les outils nécessaires, il suffit de s’y mettre. Justement, cet article va nous aider dans ce sens. Le jeu de caractères (charset en anglais) Latin1, aussi appelé " ISO-8859-1 ", est limité à 256 caractères (contrainte technique) et lorsque l’euro devient la monnaie européenne, il faut rajouter ce symbole dans la liste des caractères. L’ISO sort alors l’ISO-8859-15 (Latin9), une légère modification du ISO-8859-1, en ajoutant notamment les caractères " " et " œ ". C’est à ce moment qu’est créée la disposition de clavier fr-latin9, qui est une refonte totale des touches accessibles par [AltGr], en tenant compte des changements apportés par le nouveau jeu de caractères Latin9. La disposition fr-latin9 est, en principe, celle que nous utilisons en ce moment. Les caractères spéciaux ont été placés plus intuitivement, les voyelles accentuées (circonflexe, tréma...) sont accessibles directement par [AltGr] en plus de la méthode habituelle par les touches mortes ([AltGr]+[i] donne " î ", [AltGr]+[Maj]+[i] donne " ï "), les majuscules accentuées comme le " É " apparaissent ([AltGr]+[Maj]+[é]), ainsi qu’une touche morte accent aigu ([AltGr]+[&]+[a] donne " á "), la touche [²] devient " œ "... bref, pour peu qu’on utilise régulièrement ces caractères pour faire l’effort d’apprendre ces combinaisons par cœur, c’est un vrai gain de temps lors de la frappe. Contrairement à ce qu’on pourrait croire, le clavier AZERTY n’est pas conçu pour la frappe rapide. Cette disposition remonte au XIXe siècle, et est dérivée du QWERTY anglais, spécifiquement étudié pour éviter les risques de blocage des machines à écrire mécaniques.Présentation de la nouvelle disposition
Durant le mois de septembre, le mainteneur de la disposition fr-latin9 a lancé un appel à la communauté Linux et Xorg pour la faire évoluer. Concrètement, le but était de corriger les éventuels problèmes de la version actuelle, de demander des suggestions aux utilisateurs, d’intégrer des caractères Unicode (puisque l’UTF-8 est le jeu de caractères par défaut dans de nombreuses distributions maintenant et qu’il permet d’utiliser un bien plus grand nombre de caractères, c’est-à -dire la quasi-totalité des alphabets du monde) et de rajouter des touches sur le pavé numérique.
Installer la disposition fr-oss
Cette nouvelle carte pour les claviers français a été intégrée dans le CVS de Freedesktop fin septembre et fera donc partie de la prochaine version de Xorg. À l’heure où vous lisez ces lignes, la version 0.9 de$ wget http://xlibs.freedesktop.org/xkbdesc/xkeyboard-config-0.8.tar.bz2 $ wget --no-check-certificate -O keypad.patch \ https://bugs.freedesktop.org/attachment.cgi?id=7053 $ wget --no-check-certificate -O translation.patch \ https://bugs.freedesktop.org/attachment.cgi?id=7054 $ wget --no-check-certificate -O keyboard.patch \ https://bugs.freedesktop.org/attachment.cgi?id=7083Décompression et patch
$ tar xvjf xkeyboard-config-0.8.tar.bz2 $ cd xkeyboard-config-0.8 $ mv symbols/fr symbols/fr.orig $ iconv -f iso-8859-15 -t utf8 symbols/fr.orig > symbols/fr $ patch -p1 < ../keypad.patch $ patch -p1 < ../keyboard.patch $ patch -p1 < ../translation.patchCompilation et installation
$ ./configure --with-xkb-base=/usr/share/X11/xkb $ make $ sudo make install
Activer la disposition fr-oss
Pour activer cette nouvelle disposition de clavier dans Xorg pour tous les utilisateurs de la machine (au niveau global), rien de plus simple. Il suffit d’ouvrir le fichierSection "InputDevice"
Identifier "Keyboard0" # permet d’identifier le périphérique
Driver "kbd"
# [...]
Option "XkbModel" "pc105"
Option "XkbLayout" "fr"
Option "XkbVariant" "oss"
EndSection
Ensuite, vous n’avez qu’à redémarrer le serveur X pour vérifier que les changements ont bien été pris en compte. Concrètement, il suffit de vous déconnecter de votre environnement graphique et votre gestionnaire de session démarrera un nouveau serveur X pour que vous vous reconnectiez.
Si vous n’êtes pas root de votre machine, si vous ne voulez activer fr-oss que pour un seul utilisateur ou bien si vous voulez simplement tester cette nouvelle carte avant de l’activer pour de bon, vous pouvez charger dynamiquement la disposition de touches en tapant la commande :
setxkbmap fr ossPour tester la nouvelle configuration de votre clavier, faites [AltGr]+[z], cela devrait afficher un " â ". Si cela ne vous plaît pas, vous pouvez revenir à tout moment à la disposition fr-latin9 (en supposant que vous utilisez celle-ci) :
setxkbmap fr latin9
Modifier des touches via Xmodmap
Si vous n’êtes pas pleinement satisfait de votre disposition, si vous voulez intervertir une touche ou deux, ou placer des caractères que vous utilisez souvent, vous pouvez utiliser Xmodmap pour modifier la carte du clavier. Il suffit de placer les directives voulues dans le fichiersxmodmap ~/.XmodmapVoici un exemple de fichier
keycode 26 = e E ecircumflex ediaeresis ecircumflex ediaeresis keycode 35 = dollar sterling EuroSign cent EuroSign centLes codes 26 et 35 sont les codes des touches [E] et [$] respectivement. Vous pouvez obtenir le code de n’importe quelle touche, y compris de la souris, en utilisant Xev, l’intercepteur d’événement de Xorg. Lancez Xev, mettez-vous dans la petite fenêtre qu’il vient d’ouvrir et tapez une touche. Tout un tas d’informations à propos de cette touche apparaîtront : lors de l’appui sur la touche, puis lors de la libération de celle-ci. Ce sont deux événements distincts pour Xorg. Par exemple, si je tape la touche A : Lors de l’appui :
 KeyPress event, serial 31, synthetic NO, window 0x4600001,
root 0x44, subw 0x0, time 4199053440, (92,79), root:(1095,484),
state 0x10, keycode 24 (keysym 0x61, a), same_screen YES,
XLookupString gives 1 bytes: (61) "a"
XmbLookupString gives 1 bytes: (61) "a"
XFilterEvent returns: False
Lors de la libération :
 KeyRelease event, serial 31, synthetic NO, window 0x4600001,
root 0x44, subw 0x0, time 4199053473, (92,79), root:(1095,484),
state 0x10, keycode 24 (keysym 0x61, a), same_screen YES,
XLookupString gives 1 bytes: (61) "a"
On note bien que le code de la touche [A] est 24Â : keycode 24.
Chaque ligne permet donc d’assigner une série de caractères à une touche. Dans l’ordre :
 keycode <code de la touche> = <touche> <touche+Maj> <touche+Mode_Switch> <touche+Maj+Mode_Switch> <touche+AltGr> <touche+AltGr+Maj>La touche
- ISO-8859-1 (Latin1)Â : http://en.wikipedia.org/wiki/ISO/IEC_8859-1
- ISO-8859-15 (Latin9)Â : http://en.wikipedia.org/wiki/ISO/IEC_8859-15
- Appel à évolution de la disposition fr-latin9 : http://linuxfr.org/2006/09/13/21322.html
$ ls -Rl / | more bash:  more: command not foundC’est une faute de frappe qui arrive fréquemment lorsqu’on utilise la disposition fr-latin9. Lorsque vous tapez l’espace qui suit le pipe " | ", votre pouce peut traîner sur la touche [AltGr]. Ceci peut vous amener à produire la combinaison de touches [AltGr]+[Espace], ce qui génère une espace insécable, qui est un caractère différent de l’espace normale. Bash ne le reconnaît donc pas, le prend comme un caractère ordinaire et croit que vous voulez lancer le programme "  more " (notez l’espace devant), programme qui n’existe pas, en principe. D’où l’erreur. Ce comportement a été remonté par de nombreux utilisateurs et a donc été supprimé dans la nouvelle version. Cependant, il est toujours possible de produire une espace insécable, pour cela il faut faire [AltGr]+[Maj]+[Espace], combinaison qui est beaucoup plus difficile à faire par mégarde ! Et sous Windows ? Si vous passez régulièrement de Linux à Windows, par exemple si vous utilisez encore Windows au travail, vous voudrez peut-être quand même profiter de ces évolutions fantastiques qui vous font gagner du temps lors de la frappe. Eh bien, ces dispositions ont été portées sous Windows grâce au Keyboard Layout Creator de Microsoft. Vous pouvez télécharger ces dispositions sur ce site : http://www.cameuh.net/projects/fr-latin9/ Il suffit d’installer le fichier .
Retrouvez cet article dans : Linux Magazine 89





Donnez votre avis
Vous devez avoir ouvert une session pour écrire un commentaire.