Retrouvez cet article dans : Linux Magazine 89
Xorg contient maintenant une nouvelle disposition de touches pour les claviers français AZERTY. L’utilisation de cette disposition permet l’accès rapide à de nombreux symboles supplémentaires qui ne sont pas dessinés sur les touches de votre clavier. La nouvelle version supporte enfin des caractères Unicode qui n’étaient pas accessibles jusqu’à présent.
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épertoire /usr/share/keymaps/ qui permettent à Xorg d’associer chaque touche de votre clavier à un symbole Xorg. Ce symbole peut-être une lettre, comme « a », « b », « c »... ou un symbole spécial, comme « XF86AudioRaiseVolume », généralement associé à la touche de votre clavier multimédia qui permet d’augmenter le volume sonore. Par exemple, il est responsable du fait que lorsque vous maintenez enfoncées les touches Majuscule et « a », vous obtenez un « A ». Chaque type de clavier différent doit avoir la bonne disposition de clavier Xorg correctement installée, sinon vous ne pourrez pas utiliser votre clavier dans de bonnes conditions.
Un 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.

L’appel futÀ la demande générale, le symbole « æ » est revenu sur la touche [A] comme en fr-latin1, et le « œ » est passé sur la touche [O]. Il suffit de rajouter la touche [Maj] à la combinaison produite pour obtenir la majuscule du caractère. Les voyelles avec accent circonflexe se situent soit sur la touche elle-même, soit sur la touche immédiatement à droite et les voyelles avec tréma sont placées généralement en dessous de la voyelle. Parmi les nouveaux symboles, on note particulièrement le « ™ » sur la touche [8], le « ≠ » sur la touche [°], les « ≤ » et « ≥ » sur la touche [<], les différents tirets « — », « – » et « ‑ » sur les touches [4], [5] et [6] du pavé principal… (En parlant de trois petits points, le symbole « … » est rajouté sur la touche [?].) Le symbole «  » est définitivement installé sur la touche [e], avec son « ¢ » pour les centimes, le yen (¥) rejoint le dollar et la livre sterling, les guillemets français et anglais se stabilisent sur les touches [W] et [X].
Une grosse nouveauté est l’utilisation de [Maj] et [AltGr] avec le pavé numérique. On note l’insertion de tous les symboles mathématiques courants sous plusieurs formes selon la combinaison de touches effectuée. Prenons la touche [*], qui représente une multiplication en informatique. Avec [AltGr], le caractère affiché est [×], qui ressemble nettement plus à un signe « multiplier » que l’astérisque ! Avec [Maj], le caractère est « . », ce petit point qu’on utilise pour représenter les produits dès le lycée. Sur les touches chiffrées, on pourra produire des flèches pointant vers toutes les directions, simples ou doubles corps. Une amélioration que les comptables du libre apprécieront certainement : [AltGr]+[Suppr] du pavé numérique produit une virgule, très pratique pour écrire des nombres à virgule à la française, même en dehors d’Openoffice qui fait déjà ça automatiquement.
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 xkeyboard-config devrait être sortie et devrait contenir la nouvelle carte. Vous n’avez qu’à installer au minimum cette version et passer directement à la section suivante.
Si ce n’est pas encore le cas, voici comment vous pouvez installer les modifications sur la version 0.8 de xkeyboard-config :
Téléchargement de l’archive et des patchs : entendu et après quelques semaines de discussions, un consensus a été atteint et les responsables Freedesktop (Xorg) ont accepté la nouvelle carte.
Nommée « fr-oss », pour Open Source Software et pour ne plus lier le nom de la disposition à un jeu de caractères, la nouvelle carte pour les claviers français sous Xorg a pas mal évolué depuis fr-latin9.
$ 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=7083
Dé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.patch
Compilation 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 fichier /etc/X11/xorg.conf en tant que root et de faire en sorte que la section servant à configurer le clavier ressemble à ceci :
Section «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 oss
Pour 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 fichiers ~/.Xmodmap et celles-ci seront chargées automatiquement lors du chargement de X par Xinit (dans le cas où vous démarrez votre session avec Startx). Si vous utilisez un gestionnaire de sessions graphique (KDM, GDM, XDM…), peut-être que cela ne marchera pas automatiquement. Dans ce cas, il faut rajouter la ligne suivante dans votre fichier de démarrage ~/.xsession :
xmodmap ~/.Xmodmap
Voici un exemple de fichier .Xmodmap qui a servi avec la disposition fr-latin9 pour intervertir les symboles « euro » et « cent », placés malencontreusement sur la touche [E], avec les symboles « ê » et « ë », placés comme par hasard sur la touche [$]. Autant remettre l’« € » et le « ¢ » avec leurs camarades « $ » et « £ », non ?
keycode 26 = e E ecircumflex ediaeresis ecircumflex ediaeresis keycode 35 = dollar sterling EuroSign cent EuroSign cent
Les 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 Mode_Switch n’est pas présente sur nos claviers. Elle représente le [Alt] de droite. Nous, nous avons un [AltGr] à la place.
 Références :
- 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
La fameuse erreur de frappe
 Avez-vous déjà vu ce genre d’erreur :
$ ls -Rl / |Â more bash: Â more: command not found
C’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 .msi fourni et ensuite d’aller dans les préférences régionales pour changer la langue du clavier. La nouvelle disposition figurera dans la liste.
Vous pouvez également télécharger le source de la disposition, disponible sur le même site, et procéder à vos propres modifications en utilisant l’outil de Microsoft (disponible en téléchargement ici :
http://www.microsoft.com/globaldev/tools/msklc.mspx).
Retrouvez cet article dans : Linux Magazine 89

