NémOlivier, tu écris :
> Je ne comprend pas ton raisonnement… il faudrait un clavier physique qui place code la 105è touche comme étant une B1 ?? Qui ferait > ça ? En décalé, la B01 devrait coder Y, pas À, précisément.
Voici des explications plus détaillées.
L'idée est de changer l'interprétation des codes envoyés par le clavier.
1) situation initiale
=======
Si on regarde les fichiers de configuration du clavier du serveur d'affichage X.org sous Linux, on voit (dans /usr/share/X11/xkb/keycodes/xfree86 sur mon OpenSuse):
<AB01> = 52;
<AB02> = 53;
[…]
<LSGT> = 94;
C'est-à-dire que lorsque le clavier matériel envoie « on a appuyé sur la touche n°52 », le pilote traduit par « on a appuyé sur AB01 ». Même raisonnement pour la touche n°94 et LSGT (qui correspond à « < » sur un clavier azerty) et la touche n°53 et AB02.
-----
Si on regarde maintenant dans le fichier /usr/share/X11/xkb/symbols/fr, on y voit:
key <LSGT> { [ ecircumflex, Ecircumflex, slash ] }; // ê Ê /
key <AB01> { [ agrave, Agrave, backslash ] }; // à À \
key <AB02> { [ y, Y, braceleft, leftsinglequotemark ] }; // y Y { ‘
C'est-à-dire que lorsque le pilote de clavier envoie « on a appuyé sur AB01 », le gestionnaire de clavier traduit par « il faut générer le caractère agrave (c'est-à-dire “à”) ».
2) changement
======
On pourrait changer le fichier /usr/share/X11/xkb/keycodes/xfree86 en mettant cette fois
<AB01> = 94;
<AB02> = 52;
Dans ce cas, quand le clavier matériel enverra « on a appuyé sur la touche n°94 », le pilote traduira par « on a appuyé sur AB01 ». Même raisonnement avec AB02
Il est donc possible, en changeant les correspondances entre les numéros des touches du clavier et leurs codes, de réassigner les touches sans changer la disposition.
Ainsi, on passerait de
touche n°52 => AB01 => À
touche n°53 => AB02 => Y
à
touche n°94 => AB01 => À
touche n°52 => AB02 => Y
C'est plus clair comme ça ?
C'est plus clair (je me doutais d'un truc comme ça), merci ; mais beaucoup plus compliqué qu'avoir une variante du pilote :D D'autant que la variante du pilote permet de faire qq autres changements que la méthode en A permet, comme d'avoir une touche tiret…
NémOlivier.