Ça peut surprendre, mais il y a quelques années de cela j’ai testé toutes les keymaps fournies par un certain système propriétaire majoritaire sur les PCs, dont les différents AZERTY (français, belge, etc.), QWERTZ (suisse bilingue), QWERTY (Canadien bilingue et US international), idem sur notre chère distrib’ Debian.
Résultat des courses: les AZERTY sont les pires (impossible de taper facilement le [i]backslash [/i], sans même parler de taper À ou Ça, une touche dédiée à la lettre ù qui n’est quasiment présente que dans le mot où, et surtout, comble de l’horreur pour qui tape du code, il faut utiliser la touche Shift/Maj pour accéder aux chiffres!).
Le clavier Canadien bilingue n’est pas mal, mais le plus pratique selon mes tests c’est le clavier QWERTY avec une keymap US International.
C’est exactement la même que celle du QWERTY US standard, sauf que certaines touches (à savoir: ’ " ` ~ ^) sont « mortes », c’est à dire que par exemple pour taper É on tape ’ puis E, ou pour taper Ñ on tape ~ puis N.
Avantage pour qui programme (ou au moins tape dans un shell): les chiffres sont directement accessibles (sans avoir besoin d’un pavé numérique, pratique sur les portables!), et tous les caractères habituels (` ~ ! @ # $ % ^& * ( ) [ ] { } \ | etc.) sont faciles d’accès avec un shift.
Inconvénient (léger, on s’y habitue!) pour avoir le caractère correspondant à une des touches « mortes », il faut taper la touche en question puis espace.
Pour le mode console, la keymap US International se trouve à cet emplacement: /usr/share/keymaps/i386/qwerty/us-intl.iso15.kmap.gz ou us-intl.iso01.kmap.gz (je conseille plutôt la première qui permet de taper le caractère € avec Alt-droite puis 5). Vous pouvez soit remplacer /etc/console/boottime.kmap.gz avec, soit le charger plus tard d’une manière ou d’une autre (cf. loadkeys(1)).
Pour le serveur X, il faut choisir le keyboard-layout us(intl), par exemple en ajoutant dans le fichier /etc/X11/xorg.conf une section comme celle-ci:
Section "InputDevice"
Identifier "Generic Keyboard"
Driver "kbd"
Option "CoreKeyboard"
Option "XkbRules" "xorg"
#Option "XkbModel" "pc104"
Option "XkbModel" "latitude"
Option "XkbLayout" "us(intl)"
EndSection
(C’est la dernière ligne d’Option qui compte.)
Pour les codeurs/codeuses français-es qui d’un côté tapent du français et de l’autre tapent du code (avec des commentaires uniquement en anglais), il est relativement simple sous X d’affecter une combinaison de touche pour passer de la keymap US standard à la US International (et inversement), on obtient le meilleur des deux mondes!
Astuce dans l’astuce, il est même possible de le faire aussi en mode console moyennant l’édition de la keymap pour ajouter une combinaison qui génére le Keyboard Request et en éditant la ligne suivante du fichier /etc/inittab:
# Action on special keypress (ALT-UpArrow).
kb:12345:kbrequest:/bin/echo "Keyboard Request--edit /etc/inittab to let this work."
Les directives précises seront pour un prochain numéro…
PS: je n’ai pas trop essayé la keymap DVORAK, car si elle permet d’économiser les mouvements, le gain de vitesse n’est pas flagrant, alors que le QWERTY est un standard.