AltGr symétrique
Le problème du AltGr
Tout d'abord, accordons-nous pour dire que le fait d'avoir UneSeuleToucheAlt est anti-ergonomique. En effet, quand tu appuies en même temps sur deux touches diférentes, tu dois utiliser tes 2 mains pour éviter les contorsions.
Sur le clavier AZERTY, on a en fait 2 touches asymétriques : Alt, qui n'est qu'à gauche, et Alt Gr qui n'est qu'à droite. Alt Gr est un modificateur réservé au "sous-système clavier", alors que Alt est réservé aux applications : pas question d'y toucher.
Concrètement, sur un clavier AZERTY, on peut obtenir un symbole :
- en appuyant directement sur la touche (48 symboles)
- avec Shift (autant)
- avec Alt Gr (14 symboles écris sur les touches de mon clavier)
- avec Alt Gr + Shift
Les claviers AZERTY français ont une touche "> <" en bas à gauche que les claviers QWERTY US n'ont pas (47 touches). Ça ramène à 15 le nombre de symboles à supprimer sur ces claviers pour utiliser son clavier sans Alt Gr.
Sauf à supprimer 13 voire 15 symboles, on n'arrivera pas à tout faire tenir sur le clavier. Voyons ce que je n'utilise jamais : §, µ, ?, £, ²... on est loin du compte, et j'en connais déjà qui vont râler. On peut aussi décider que les symboles ^, `, ~, qui existent à la fois en touche morte et en non-morte, sera obtensible exclusivement avec touche morte. Ça ramène le compte à 8, pour mon usage personnel. Au-delà, c'est les programmeurs qui vont râler.
En termes d'ergonomie, la meilleure solution pour saisir plus de symboles est probablement d'avoir une touche morte : tu appuies d'abord sur Alt Gr, tu le relâches, et tu appuies ensuite sur la deuxième touche. C'est la solution adoptée par Francis Leboutte.
Francis redéfinit les caractère recombinants. Par exemple, accent grave mort + K donne $. Le problème de cette solution est que les caractères recombinants sont donnés une fois pour toutes dans la locale. C'est la langue française qui veut que apostrophe mort + c donne ç, même sur un clavier QWERTY. Il n'en sera pas de même en vietnamien.
La locale est l'ensemble de paramètres du système qui spécifie quelle langue tu utilises, le format de la date, de l'heure, des unités monétaires, l'encodage par défaut, ou l'ordre alphabétique des lettres (qui n'est pas le même selon les régions).
On ne peut pas modifier la locale, parce qu'il n'y a pas de manière simple de changer les caractères recombinants au sein d'une locale, que changer de locale quand on change de clavier est inadmissible, et parce qu'il est impensable de créer une nouvelle locale pour chaque clavier possible et imaginable. (Il y a déjà une locale différente pour chaque combinaison (pays, langue) possible.)
On peut alors se demander s'il est possible d'avoir un comportement similaire à celui des touches mortes sans passer par la locale. Il semblerait que c'est ce qu'a fait Francis Leboutte; mais pour ça, il a utilisé un driver clavier shareware, ce qui est loin de la solution "propre" à laquelle on aspire. Je ne connais pas super bien Windows, mais j'imagine que le système de locales est le même que sous GNU/Linux (duquel je m'inspire pour parler ici).
Sous XFree, le système XKB est particulièrement avancé, et permet de définir des modes. On doit pouvoir décider qu'un appui sur Alt Gr changera de mode pour le prochain appui de touche; je ne me suis pas penché plus sur la question.
Le problème, c'est qu'on ne peut pas compter sur ce genre de richesse fonctionnelle extrême. XKB est vraiment très poussé, et doit permettre, je crois, de saisir du japonais (hiraganas et katakanas) sans avoir recours à un InputServer.
Dans la console Linux, sauf erreur de ma part, ce genre de choses est impossible. Il doit en être de même dans la plupart des environnements (sauf peut-être la nouvelle console Hurd, qui utilise XKB).
Nous revoilà donc au point de départ.
- On a besoin de Alt Gr.
- On ne peut pas utiliser Alt Gr et conserver un clavier ergonomique
(sauf à retoucher à la disposition physique et au nombre des touches; mais c'est là le travail des concepteurs de claviers.) Toute solution -autant que je puisse dire- n'est que magouille.
Une autre voie pourrait être explorée : Que se passe-t-il si on
remplace une autre touche, par exemple sous la main gauche, par un
AltGr, mais en ne permettant de combinaisons qu'avec des touches se
trouvant sous la main droite ? On pourrait à cet effet résoudre le problème du CapsLock.
On trouvera largement de la place pour les 15 symboles les plus fréquemment utilisés sous la main droite.
C'est une proposition de solution, mais je ne sais pas à quel point elle est réaliste. Il faut noter que la plupart des claviers du monde changent simplement la disposition des lettres et caractères spéciaux, mais que les touches périphériques (espace, contrôle, etc...) changent très peu. De plus, rien ne dit qu'on trouvera un caps lock sur tous les claviers.
On peut aussi vouloir utiliser une autre touche, voire deux (une sous chaque mais) comme AltGr, par exemple le "<" et le "!" du clavier AZERTY. Mais encore une fois, on viole la distinction "touche de symbole/touche de contrôle".