Dernières mises à jour : 04/11/08 lien vers billet sur les caractères étrangers, 31/03/08 oss déjà dans Debian Etch !, 18/10/2007 avec l'avènement de Ubuntu Gutsy + fr-oss.kmap.gz

Si vous êtes en disposition de clavier française de variante latin9, vous aurez ainsi facilement accès à ces caractères dont les combinaisons sont assez faciles à retenir :

  • É : Shift+AltGr+é
  • È : Shift+AltGr+è
  • Ç : Shift+AltGr+ç
  • À : Shift+AltGr+à
  • Ê : AltGr+d
  • œ : ² (touche au-dessus de la touche TAB)
  • Œ : Shift+²
  • « : AltGr+w
  • » : AltGr+x
  • © : AltGr+c
  • ® : AltGr+v

La disposition complète du clavier fr-latin9 est représentée sur l'image suivante capturée depuis l'outil de configuration du clavier de Gnome sous Ubuntu Gutsy :

keyboard layout latin9

(voir en grand)

Cette disposition est néanmoins déjà qualifiée de obsolète dans la dernière Ubuntu Gutsy ! Il existe en effet une mise à jour de cette disposition que certains appellent fr-oss, et dont quelques combinaisons diffèrent, par exemple :

  • Ê : AltGr+Shift+r
  • œ : AltGr+o
  • Œ : AltGr+Shift+o
  • ® : AltGr+Shift+c

Dans Ubuntu Gutsy cette disposition est simplement appelé latin9, ce qui montre que fr-oss est vouée à remplacer l'actuelle latin9 des Linux moins récents. La disposition complète est la suivante :

keyboard layout fr-oss

(voir en grand)

Pour savoir si vous êtes dans la même configuration, lisez la suite !

Qu'est-ce que la disposition du clavier ?

La disposition du clavier, c'est ce qui traduit les touches sur lesquelles vous appuyez en codes numériques de caractères, par exemple les codes ASCII pour les caractères latins non accentués. Rappelons que les ordinateurs ne traitent que des nombres, un caractère doit donc avoir un code numérique pour être manipulé par l'ordinateur. Aussi, lorsqu'il faut afficher un caractère à l'écran, l'ordinateur utilise ce qu'on appelle l'encodage pour traduire une suite de nombres en suite de lettres puisées dans les polices de caractères. Donc lorsque vous appuyez sur la touche « é », la disposition du clavier permet de produire le nombre qui correspond au « é » dans l'encodage de votre système, lequel est ensuite affiché à l'écran en récupérant dans la police le graphisme du caractère.

Pour savoir quelle est la disposition actuelle du clavier ou pour la modifier, vous pouvez bien sûr utiliser l'interface de configuration du clavier de votre environnement graphique. Néanmoins nous allons par la suite utiliser des lignes de commandes qui permettent d'accéder rapidement à la configuration du système qui conditionne la valeur par défaut utilisée par l'environnement. Pour connaître la disposition utilisée, il faut taper la commande suivante :

$ grep --context=3 XkbVariant /etc/X11/xorg.conf
   Option         "XkbRules" "xorg"
   Option         "XkbModel" "pc105"
   Option         "XkbLayout" "fr"
   Option         "XkbVariant" "latin9"
EndSection

Section "InputDevice"

La commande grep recherche une chaîne de caractères dans les lignes d'un texte, ici dans le fichier de configuration du serveur X /etc/X11/xorg.conf, en affichant 3 lignes avant et après la ligne trouvée (option --context=3). On voit dans mon cas que je suis en disposition française de variante latin9.

Pour savoir quelles sont les variantes disponibles, il faut localiser le fichier correspondant à latin9 :

$ locate latin9
/usr/share/man/man7/latin9.7.gz
/usr/share/keymaps/i386/azerty/fr-latin9.kmap.gz
/usr/share/texmf-tetex/tex/latex/base/latin9.def

Comme son nom l'indique, la commande locate recherche simplement des noms de fichiers dans le système. On a donc la liste des dispositions possibles pour son clavier avec la classique commande ls appliquée au répertoire du fichier fr-latin9.kmap.gz :

$ ls /usr/share/keymaps/i386/azerty/
azerty.kmap.gz      fr-latin0.kmap.gz  fr-x11.kmap.gz      wangbe.kmap.gz
be2-latin1.kmap.gz  fr-latin1.kmap.gz  mac-usb-be.kmap.gz  wo.kmap.gz
be-latin1.kmap.gz   fr-latin9.kmap.gz  mac-usb-fr.kmap.gz
fr.kmap.gz          fr-pc.kmap.gz      mac-usb-it.kmap.gz

Bien que je n'ai installé que la langue française, les possibilités sont nombreuses, les plus couramment employées pour la France étant latin1 et latin9. Avant les Linux employaient plutôt latin1 qui donne une touche AltGr peu pratique bien que nettement plus utile que sous Windows®[1] ;-) alors que latin9, plus récente, est mieux agencée. Le billet Latin 9 by default for the French-speaking person with a French keyboard[2], mentionne une troisième disposition qu'il nomme fr-oss, dont l'arrangement est encore mieux conçu que celui de latin9. Ceux qui n'auraient pas cette disposition sous la main pourront récupérer le fichier fr-oss.kmap.gz que j'ai extrait de la dernière Ubuntu. Il faudra bien sûr le placer dans ce répertoire des variantes et configurer le système comme indiqué par la suite. Vous n'aurez cependant pas accès à tous les caractères décoratifs, seulement ceux qui sont vraiment utiles !

NB: amis sous Debian Etch, pas la peine de vous précipiter, cette disposition oss est déjà en place dans le système, il suffit d'indiquer la variante oss dans le fichier /etc/X11/xorg.conf comme indiqué ci-après.

Évidemment pour changer de disposition de clavier, il suffit d'éditer le fichier /etc/X11/xorg.conf en s'inspirant de ce qu'on a vu plus haut :

$ sudo nano /etc/X11/xorg.conf

Il faudra ensuite redémarrer le serveur X de cette façon sous les Linux Debian et dérivés :

$ sudo /etc/init.d/gdm restart

Sous RedHat, et certainement Fedora, on peut presser simultanément Ctrl+Alt+Backspace pour arriver au même résultat. On peut aussi redémarrer le système à la place, mais pour une modification aussi légère, ça ferait vraiment mal au cœur !

NB: remplacez par sudo /etc/init.d/kdm restart si vous avez du KDE à la place de Gnome, par exemple sous Kubuntu ou Mandriva.

Et l'encodage du système ?

Normalement tout est configuré comme il faut à l'installation du système : quand on appuie sur « À », ça affiche bien « À » ! Cependant si vous héritez de fichiers textes provenant de systèmes qui n'ont pas le même encodage que le vôtre, les caractères risquent d'avoir une drôle d'allure par endroits. Typiquement Windows® en version française utilise l'encodage cp1252 au moins jusqu'à Windows® XP alors que les Linux récents sont tous en utf8[3].

Pour connaître votre encodage, vous pouvez essayer ceci :

$ env | grep LANG
LANG=fr_FR.UTF-8

La commande env retourne les variables d'environnement parmi lesquelles LANG indique :

  • la langue de l'interface, fr_FR (français de France)
  • l'encodage, UTF-8

Ainsi si vous souhaitez échanger des fichiers texte avec des applications Windows®, il vous faudra très certainement utiliser un éditeur[4] qui permet de choisir l'encodage et sélectionner celui de l'Europe de l'ouest iso8859-15, quasiment identique au cp1252. L'effet de ce changement est que lorsque vous tapez « À » sur votre clavier, le code numérique produit est converti par l'éditeur pour correspondre à celui de l'encodage iso8859-15 plutôt que utf8... Là où ça devient cocasse, c'est que la console Windows®[5] n'utilise pas cp1252 mais cp850 ! Qu'est-ce qu'on s'ennuierait sans les informaticiens...

Remarque

Les partitions Windows© FAT32 sont aussi en cp850. Si vous essayez d'écrire sur une telle partition de votre disque, il faut typiquement ajouter une option au montage de la partition pour dire d'utiliser un autre encodage que celui du système. C'est pourquoi, dans le fichier /etc/fstab qui indique les partitions à monter, on retrouve alors ce genre de ligne :

/dev/hda3   /e   vfat  rw,user,exec,umask=000,codepage=850,iocharset=utf8

L'option codepage=850 spécifie l'encodage de la partition alors que l'option iocharset=utf8 spécifie celui du système. Les fichiers sont alors lus et écrits de manière transparente avec chaque fois l'encodage qui convient.

Notes

[1] à moins que Vista n'ait progressé sur ce point, mais je n'ai toujours pas été contraint à y toucher ;-)

[2] « Latin 9 par défaut pour les francophones avec un clavier français »

[3] utf8 est un encodage de caractères suffisamment large pour couvrir les principaux caractères des langues européennes, du japonais et du chinois simplifié

[4] ou un outil de conversion d'encodage comme iconv

[5] « invite de commandes »