« AltGr symétrique » : différence entre les versions

De Disposition de clavier bépo
 
(17 versions intermédiaires par 6 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
Sur un [[clavier (informatique)|clavier]], la '''touche Alt Gr''' (pour ''Alternate Graphics'') est une [[touche de modification]] qui rend accessible différents signes. Ces signes étaient à l’origine des symboles graphiques, d’où le nom de la touche.
{{navigation|En savoir plus}}
C'est également un raccourci des combinaisons de touches [[Touche Ctrl|Ctrl]]+[[Touche Alt|Alt]].
{{attention|Attention, cette page n'a pas été retravaillée et résulte de différents copier/coller bruts en provenance des anciens wiki et de la liste de diffusion.}}


==Symétrie des modificateurs et problème du AltGr==
Sur un [[wp:clavier (informatique)|clavier]], la touche {{t|AltGr}} (pour ''Alternate Graphics'', mais souvent prononcé « alt grade » pour d'obscures raisons) est une [[Modificateur|touche de modification]] (un « modificateur ») qui rend accessibles différents signes. Ces signes étaient à l’origine des symboles graphiques, d’où le nom de la touche. C'est également un raccourci de la combinaison {{tt|Ctrl|Alt}}.
D'un point de vue ergonomique, il est préférable que les « modificateurs » de touches soit symétriques, car tout appui de deux touches en simultané devrait impliquer l'utilisation des deux mains pour éviter une contorsion du poignet.  


La touche Shift est naturellement symétrique et ne pose donc pas de problème. Ce n'est par contre pas le cas de la touche AltGr, puisque son homologue sur la partie gauche du clavier, la touche Alt, se comporte de façon totalement différente.
== Résumé du problème : ergonomie, exhaustivité ==


La touche AltGr est néanmoins nécessaire. Sur un clavier classique, elle est utilisée pour taper plus d'une quinzaine de symbole, on peut donc difficilement s'en passer sans devoir abandonner certains caractères spéciaux (souvent nécessaires aux programmeurs).  
D'un point de vue [[Ergonomie|ergonomique]], il est préférable que les [[modificateur]]s soient symétriques — c'est-à-dire présents sur les deux cotés du clavier et avec un comportement rigoureusement identique — car tout appui sur deux touches en simultané (combinaison) devrait impliquer l'utilisation des deux mains, afin d'éviter une contorsion du poignet. Seules quelques rares combinaisons sont biomécaniquement heureuses ({{tt|Alt|Tab}} par exemple). La touche {{t|Shift}} est depuis longtemps symétrique sur la très grande majorité des claviers disponibles et ne pose donc pas de problème ; de même pour la touche {{t|Ctrl}}. Ce n'est par contre pas le cas de la touche {{t|AltGr}}, puisque sur la partie gauche du clavier, on trouve en vis-à-vis la touche {{t|Alt}}, laquelle se comporte de façon totalement différente.


On notera que la solution qu'a adopté F. Leboutte pour sa disposition dvorak-fr est l'utilisation d'une touche morte universelle. En pratique, la touche morte accent grave se comporte comme modificateur pour tout les caractères particuliers. Par exemple un appui sur la touche accent grave suivi de C donnera Ç. Cette solution a l'avantage d'être ergonomique (si ce n'est la perte du vitesse inhérente due à l'utilisation d'une touche morte), mais elle n'est pas portable. Ajoutons que non content de ralentir la frappe par le doublement des appuis nécessaires, la touche morte choisie n’est pas un modèle d’accessibilité.  
Une première idée serait de supprimer la touche {{t|AltGr}}, de créer au passage un {{t|Alt}} symétrique, et de déporter ailleurs les symboles anciennement accessibles par {{t|AltGr}} ; mais on se rend vite compte que la touche {{t|AltGr}} répond à un besoin réel : sur un clavier classique, elle est tout de même utilisée pour taper plus d'une quinzaine de symboles ! On peut donc difficilement s'en passer sans devoir abandonner certains caractères spéciaux (souvent nécessaires aux programmeurs, mais pas seulement).  


==Le problème du AltGr==
On notera que la solution qu'a adopté F. Leboutte pour sa disposition [[Dvorak-fr]] est l'utilisation d'une [[touche morte]] universelle. En pratique, la touche morte « accent grave » est associée à tous les caractères particuliers. Par exemple, un appui sur la touche accent grave suivi de C donnera Ç. Cette solution a l'avantage d'être relativement simple et ergonomique (si ce n'est la perte du vitesse inhérente à l'utilisation d'une touche morte), mais elle présente un gros problème : elle n'est [[Implémentation selon le système d'exploitation|pas portable]]. Ajoutons que, non content de ralentir la frappe par le doublement des appuis nécessaires, la touche morte choisie n’est pas un modèle d’accessibilité.


Tout d'abord, accordons-nous pour dire que le fait d'avoir UneSeuleToucheAlt est anti-ergonomique. En effet, quand tu
== Examen détaillé du problème ==
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
''Par Thomas Tempé''.
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 :
Tout d'abord, accordons-nous pour dire que le fait d'avoir une seule touche Alt est anti-ergonomique. De façon générale, l'appui sur deux touches différentes pour réaliser une combinaison [Modificateur]+[Touche] n'est réellement confortable que si on a le choix du placement des mains. Comme la seconde [Touche] de la combinaison est fixée d'avance et peut se trouver n'importe où sur le clavier, il est pratique de pouvoir utiliser à loisir la main gauche ou la main droite pour le modificateur, selon la main qui accède à la touche de la combinaison.
* 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
Par ailleurs, on distinguera les modificateurs des [[touches mortes]] :
les claviers QWERTY US n'ont pas (47 touches). Ça ramène à 15 le
* un modificateur est utilisé en combinaison avec une ou plusieurs touches ; on garde appuyé le modificateur, et le caractère désiré est composé quand une autre touche est appuyée ;
nombre de symboles à supprimer sur ces claviers pour utiliser son clavier
* une touche morte agit comme une bascule temporaire : on appuie sur la touche morte, on relâche, puis on appuie sur une autre touche, qui compose un caractère différent de celui habituellement accessible.
sans Alt Gr.


Sauf à supprimer 13 voire 15 symboles, on n'arrivera pas à tout faire
=== Situation sur les claviers actuels ===
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
Sur le clavier AZERTY, deux modificateurs ne sont pas dédoublés de façon symétrique :
symboles est probablement d'avoir une touche morte : tu appuies
* Alt, qui n'est qu'à gauche du clavier ;
d'abord sur Alt Gr, tu le relâches, et tu appuies ensuite sur la
* AltGr, qui n'est qu'à droite.
deuxième touche. C'est la solution adoptée par Francis Leboutte.


Francis redéfinit les caractère recombinants. Par exemple, accent
Alt Gr est un modificateur réservé au « sous-système clavier » tandis que Alt est typiquement réservé aux applications : pas question d'y toucher. C'est donc sur AltGr que se déporte le problème de la symétrie et l'accessibilité, auquel vient se greffer la contrainte d'exhaustivité des caractères.
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
Concrètement, sur un clavier AZERTY, on peut obtenir un symbole :
langue tu utilises, le format de la date, de l'heure, des unités
* en appuyant directement sur la touche (48 symboles) ;
monétaires, l'encodage par défaut, ou l'ordre alphabétique des lettres
* avec Shift (48 symboles) ;
(qui n'est pas le même selon les régions).
* avec Alt Gr (14 symboles écris sur les touches d'un clavier classique) ;
* avec Alt Gr + Shift.


On ne peut pas modifier la locale, parce qu'il n'y a pas de manière
Les claviers AZERTY français ont une touche supplémentaire [> <] en bas à gauche que les claviers QWERTY US n'ont pas (47 touches) et qui travaille avec AltGr. Tout ça ramène donc à 15 le nombre de symboles à supprimer sur un clavier classique si on souhaite se passer de Alt Gr. Comme on souhaite également conserver les symboles en question, il faut leur associer un autre moyen de composition.
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
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, seront obtenus uniquement avec une touche morte, ce qui libère de la place. Cela ramène le compte à 8, pour mon usage personnel. Au-delà, c'est les programmeurs qui vont râler.
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
=== Conflit avec la locale ===
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
En termes d'ergonomie, la meilleure solution pour saisir plus de symboles est probablement d'avoir une [[touche morte]]. C'est la solution adoptée par Francis Leboutte. Francis redéfinit les caractère recombinants. Par exemple, accent grave mort + K donne $.
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
Le problème de cette solution est qu'elle entre en conflit avec la [[locale]]. La locale est un ensemble de paramètres du système qui spécifie quelle langue est utilisée, le format de la date, de l'heure, des unités monétaires, l'[[encodage des caractères]] par défaut, ou encore l'ordre alphabétique des lettres (qui peut ne pas être le même selon les régions). Les caractères recombinants sont donnés une fois pour toutes dans la [[locale]] et dans notre cas, c'est la langue française qui veut que, pour la locale du français, apostrophe mort + c donne ç, et ce sur tout [[type de clavier]] (''ie''. même sur un clavier QWERTY). Il n'en sera pas de même en vietnamien, qui a évidemment une locale différente.
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.
Forcer une nouvelle logique de caractère recombinant pose dès lors problème, car elle joue contre la normalisation et la portabilité de la disposition de clavier ainsi créée. On ne peut pas raisonnablement modifier la locale :
* On a besoin de Alt Gr.
* déjà parce qu'il n'y a pas de manière simple de changer les caractères recombinants au sein d'une locale ;
* On ne peut pas utiliser Alt Gr et conserver un clavier ergonomique
* parce qu'ensuite, changer de locale quand on change de clavier ou d'ordinateur est inadmissible ;
(sauf à retoucher à la disposition physique et au nombre des touches;
* 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 !).
mais c'est là le travail des concepteurs de claviers.)
Toute solution -autant que je puisse dire- n'est que magouille.


=== Création d'une touche morte ===


Une autre voie pourrait être explorée : Que se passe-t-il si on
On peut alors se demander s'il est possible d'avoir un comportement ''similaire'' à celui des touches mortes sans passer par la locale et la destruction des caractères recombinants usuels. 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 changer de mode de composition pour le prochain appui de touche, selon l'action précédente ; je ne me suis pas penché plus sur la question.
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
Le problème, c'est qu'on ne peut pas toujours compter sur ce genre de richesse fonctionnelle extrême. XKB est vraiment très poussé, et doit même permettre, je crois, de saisir du japonais (hiraganas et katakanas) sans avoir recours à un ''InputServer'' externe. Mais il n'est actif que si le serveur X.Org l'est, ce qui peut ne pas être le cas. Par exemple, dans la console Linux (''tty''), 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). Souhaite t-on mettre les utilisateurs concernés de coté ?
fréquemment utilisés sous la main droite.


C'est une proposition de solution, mais je ne sais pas à quel point
=== Autres pistes ===
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
Nous revoilà donc au point de départ :
chaque mais) comme AltGr, par exemple le "<" et le "!" du clavier
* on a besoin de AltGr ;
AZERTY. Mais encore une fois, on viole la distinction "touche de
* on ne peut pas utiliser AltGr tout en conservant un clavier ergonomique, du point de vue de la symétrie des combinaisons (sauf à retoucher la disposition physique et le nombre des touches, mais c'est là le travail des concepteurs de claviers, et une voie fermée à court et moyen terme).
symbole/touche de contrôle".
Toute solution — autant que je puisse dire — n'est que magouille.


[[~Thomas Tempé]]
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]] et l'utiliser à cette fin. 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 CapsLock sur tous les claviers.


==AltGrSymétrique==
On peut aussi vouloir utiliser une autre touche, voire deux (une sous chaque main), 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. »
Page à fusionner avec [[SymetrieEtAltGr]]


Suite à la discussion de cet aprem, où on s'est demandé laquelle de 2
== Deux dispositions fr-dvorak-bépo ? ==
mauvaises solutions choisir, on a proposé de faire la chose suivante :


Comme ces deux propriétés sont mutuellement exclusives, on spécifie 2
Suite à la discussion précédente sur l'opportunité d'un choix entre deux (mauvaises) solutions, une nouvelle proposition est faite.
claviers, un "ergonomique" et un "propre".


Dvorak-Fr ergonomique : Alt devient AltGr gauche, CapsLock devient Alt, ² devient CapsLock.
Comme les deux choix présentent des propriétés mutuellement exclusives, on peut imaginer spécifier deux claviers, un « ergonomique » et un « propre » :
* fr-dvorak-bépo ergonomique : Alt devient AltGr gauche, CapsLock devient Alt, ² devient CapsLock ;
* fr-dvorak-bépo propre : on ne touche pas à Alt et CapsLock. Ils restent où ils sont, aussi mal fichus que sur n'importe quel clavier AZERTY.  


Dvorak-Fr propre : on ne touche pas à Alt et CapsLock. Ils restent où ils sont, aussi mal fichus que sur n'importe quel clavier Azerty.
Le Dvorak-Fr propre servira de référence, le ergonomique sera proposé par défaut (sauf sous Windows, où on sera probablement obligés de rester « propre »)


Le Dvorak-Fr propre servira de référence, le ergonomique sera proposé
:Idée pas conne.
par défaut (sauf sous Windows, où on sera probablement obligés de
:* L'emploi moins rare (et plus réfléchi) de touches mortes devrait faire augmenter la gamme des caractères possibles, et donc faire disparaître les cas où la touche "compose" est nécessaire. Il est clair que cette touche coûte très cher à la saisie, la faire disparaître serait révélateur d'une conception plus riche du ''keymap'' (on fait tendre le nombre d'exceptions vers 0).
rester "propre").  
::Entièrement d'accord avec ce point, ce qui supprimerait donc le débat sur un duo Alt/AltGr ''versus'' deux Alt. Une touche serait représenté ainsi :
[@______
| 2  4 |
| 1  3 |
-------@]
1: touche à vide
2: Shift + touche / Shift touche
3: Touche morte1 + touche / touche morte1 touche
4: Touche morte2 + touche / touche morte2 touche
::On aurait donc AltGr = Alt.
:D'ailleurs à ce sujet, je pense que les symboles utilisés en programmation (par exemple « { } [ ] » ) arriveront probablement en AltGr, et donc on pourrait mettre par exemple les [ et { en AltGr, et les } et ] associés en AltGr+Shift. Ceci bien évidemment sous réserve qu'il n'y ait pas de place ailleurs (par exemple en accès direct ou Shift, éventuellement à la place de )º =+ de l'AZERTY, à condition que les chiffres soit tassés à gauche).


----
=== Alt et AltGr symétriques ===


Idée pas conne
La notion de modificateur symétrique est portable pour sous Windows. J'ai testé hier avec les logiciels KeyTweak (modification de la bdd) et Autohotkey sous Windows XP et Vista (voir [[outils]]).


>  - L'emploi moins rare (et plus réfléchi) de touches mortes devrait
J'ai d'abord essayé la proposition d'Aragorn c'est-à-dire :
>    faire augmenter la gamme des caractères possibles, et donc faire
>    disparaître les cas où la touche "compose" est nécessaire.  Il=
est
>    clair que cette touche coûte très cher à la saisie, la faire
>    disparaître serait révélateur d'une conception plus riche du=
keymap
>    (on fait tendre le nombre d'exceptions vers 0).
 
Entièrement d'accord avec ce point, ce qui supprimerait donc le débat sur 1
Alt et 1 AltGr ou bien 2 Alt.
Une touche serait représenté ainsi :
[@______
| 2  4 |
| 1  3 |
----------@]
        1: touche à vide
        2: Shift + touche / Shift touche
        3: Touche morte1 + touche / touche morte1 touche
        4: Touche morte2 + touche / touche morte2 touche
 
on aurait donc AltGr = Alt
----
 
D'ailleurs � ce sujet, je pense que les symbole utilis�s en
programmation (par exemple {}[] ) arriveront probablement en altgr, et
donc on pourrait mettre par exemple les [et { en altgr, et les } et ]
associ�s en altgr+shift. Ceci bien �videment sous r�serve qu'il n'y ait
pas de place ailleurs (par exemple en acces direct ou shift,
�ventuellement � la place de )� =+ de l'azerty, � condition que les
chiffres soit tass�s � gauche).
 
===Alt et Alt Gr symétriques===
La notion de modificateur symétrique est portable pour les os Microsoft. J'ai testé hier avec les logiciels KeyTweak (modification de la bdd) et Autohotkey sous Windows XP et Vista (voir [[outils]]).
 
J'ai d'abord essayé la proposition d'Aurélien c'est-à-dire :
* AltGr symétrique (Right Alt devient un Right AltGr)
* AltGr symétrique (Right Alt devient un Right AltGr)
* ² devient l'Alt
* ² devient l'Alt
Ligne 183 : Ligne 108 :
* pour un clavier 105 touches : en remplacant les deux touches Win droite et gauche par des Alt (la touche ² pouvant faire office de touche Win vu elle est utilisé dans certains logiciels aujourd'hui)
* pour un clavier 105 touches : en remplacant les deux touches Win droite et gauche par des Alt (la touche ² pouvant faire office de touche Win vu elle est utilisé dans certains logiciels aujourd'hui)


Il reste à vérifier la portabilité sous Mac…
Il reste à vérifier la portabilité sous Mac… -- A2
 
=== De la touche « Super » ===


===De la touche « Super »===
La touche Super est la touche sur laquelle il est souvent dessiné le logo windows. Ce que je dis ici s’applique aussi à la touche « menu ».
La touche Super est la touche sur laquelle il est souvent dessiné le logo windows. Ce que je dis ici s’applique aussi à la touche « menu ».
De plus en plus nous imaginons l’utiliser pour avoir un AltGr Symétrique sans ne rien perdre d’autre.
De plus en plus nous imaginons l’utiliser pour avoir un AltGr Symétrique sans ne rien perdre d’autre.
J’ajoute deux points :
J’ajoute deux points :
* Ces touches bougent beaucoup, elles ne sont pas placées sur tous les claviers, en particulier les portables ;
* Ces touches bougent beaucoup, elles ne sont pas placées sur tous les claviers, en particulier les portables ;
* sous linux, elle sert de plus en plus : nombre des effets de [http://compiz-fusion.org/ compiz-fusion]<ref>Des images partout sur [http://youtube.com/results?search_query=Compiz-fusion&search=Search youtube] et sur le [http://fusioncast.blogspot.com/ blog dédié.]</ref> se font à l’aide de ce modificateur.
* sous linux, elle sert de plus en plus : nombre des effets de [http://compiz-fusion.org/ compiz-fusion]<ref>Des images partout sur [http://youtube.com/results?search_query=Compiz-fusion&search=Search youtube] et sur le [http://fusioncast.blogspot.com/ blog dédié].</ref> se font à l’aide de ce modificateur.
Il est donc compliqué de faire reposer l’ergonomie du clavier sur une touche qu’on est pas certain de retrouver sous ses doigts, ou qui peut-être utilisée pour autre chose.
Il est donc compliqué de faire reposer l’ergonomie du clavier sur une touche qu’on est pas certain de retrouver sous ses doigts, ou qui peut-être utilisée pour autre chose.
[[Utilisateur:Nemolivier|Nemolivier]] 18 décembre 2007 à 09:59 (CET)


==Liens==
== Liens et références ==
Page provisoire pour la [[Version070|version 0.7]], vous en occupez pas (Aurélien LPR)
<references/>
 
[[Catégorie:Historique]]

Dernière version du 21 juin 2011 à 05:13

Attention

Attention, cette page n'a pas été retravaillée et résulte de différents copier/coller bruts en provenance des anciens wiki et de la liste de diffusion.

Sur un clavier, la touche clavier bépoAltGr (pour Alternate Graphics, mais souvent prononcé « alt grade » pour d'obscures raisons) est une touche de modification (un « modificateur ») qui rend accessibles différents signes. Ces signes étaient à l’origine des symboles graphiques, d’où le nom de la touche. C'est également un raccourci de la combinaison clavier bépoCtrl+clavier bépoAlt.

Résumé du problème : ergonomie, exhaustivité

D'un point de vue ergonomique, il est préférable que les modificateurs soient symétriques — c'est-à-dire présents sur les deux cotés du clavier et avec un comportement rigoureusement identique — car tout appui sur deux touches en simultané (combinaison) devrait impliquer l'utilisation des deux mains, afin d'éviter une contorsion du poignet. Seules quelques rares combinaisons sont biomécaniquement heureuses (clavier bépoAlt+clavier bépoTab par exemple). La touche clavier bépoMaj est depuis longtemps symétrique sur la très grande majorité des claviers disponibles et ne pose donc pas de problème ; de même pour la touche clavier bépoCtrl. Ce n'est par contre pas le cas de la touche clavier bépoAltGr, puisque sur la partie gauche du clavier, on trouve en vis-à-vis la touche clavier bépoAlt, laquelle se comporte de façon totalement différente.

Une première idée serait de supprimer la touche clavier bépoAltGr, de créer au passage un clavier bépoAlt symétrique, et de déporter ailleurs les symboles anciennement accessibles par clavier bépoAltGr ; mais on se rend vite compte que la touche clavier bépoAltGr répond à un besoin réel : sur un clavier classique, elle est tout de même utilisée pour taper plus d'une quinzaine de symboles ! On peut donc difficilement s'en passer sans devoir abandonner certains caractères spéciaux (souvent nécessaires aux programmeurs, mais pas seulement).

On notera que la solution qu'a adopté F. Leboutte pour sa disposition Dvorak-fr est l'utilisation d'une touche morte universelle. En pratique, la touche morte « accent grave » est associée à tous les caractères particuliers. Par exemple, un appui sur la touche accent grave suivi de C donnera Ç. Cette solution a l'avantage d'être relativement simple et ergonomique (si ce n'est la perte du vitesse inhérente à l'utilisation d'une touche morte), mais elle présente un gros problème : elle n'est pas portable. Ajoutons que, non content de ralentir la frappe par le doublement des appuis nécessaires, la touche morte choisie n’est pas un modèle d’accessibilité.

Examen détaillé du problème

Par Thomas Tempé.

Tout d'abord, accordons-nous pour dire que le fait d'avoir une seule touche Alt est anti-ergonomique. De façon générale, l'appui sur deux touches différentes pour réaliser une combinaison [Modificateur]+[Touche] n'est réellement confortable que si on a le choix du placement des mains. Comme la seconde [Touche] de la combinaison est fixée d'avance et peut se trouver n'importe où sur le clavier, il est pratique de pouvoir utiliser à loisir la main gauche ou la main droite pour le modificateur, selon la main qui accède à la touche de la combinaison.

Par ailleurs, on distinguera les modificateurs des touches mortes :

  • un modificateur est utilisé en combinaison avec une ou plusieurs touches ; on garde appuyé le modificateur, et le caractère désiré est composé quand une autre touche est appuyée ;
  • une touche morte agit comme une bascule temporaire : on appuie sur la touche morte, on relâche, puis on appuie sur une autre touche, qui compose un caractère différent de celui habituellement accessible.

Situation sur les claviers actuels

Sur le clavier AZERTY, deux modificateurs ne sont pas dédoublés de façon symétrique :

  • Alt, qui n'est qu'à gauche du clavier ;
  • AltGr, qui n'est qu'à droite.

Alt Gr est un modificateur réservé au « sous-système clavier » tandis que Alt est typiquement réservé aux applications : pas question d'y toucher. C'est donc sur AltGr que se déporte le problème de la symétrie et l'accessibilité, auquel vient se greffer la contrainte d'exhaustivité des caractères.

Concrètement, sur un clavier AZERTY, on peut obtenir un symbole :

  • en appuyant directement sur la touche (48 symboles) ;
  • avec Shift (48 symboles) ;
  • avec Alt Gr (14 symboles écris sur les touches d'un clavier classique) ;
  • avec Alt Gr + Shift.

Les claviers AZERTY français ont une touche supplémentaire [> <] en bas à gauche que les claviers QWERTY US n'ont pas (47 touches) et qui travaille avec AltGr. Tout ça ramène donc à 15 le nombre de symboles à supprimer sur un clavier classique si on souhaite se passer de Alt Gr. Comme on souhaite également conserver les symboles en question, il faut leur associer un autre moyen de composition.

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, seront obtenus uniquement avec une touche morte, ce qui libère de la place. Cela ramène le compte à 8, pour mon usage personnel. Au-delà, c'est les programmeurs qui vont râler.

Conflit avec la locale

En termes d'ergonomie, la meilleure solution pour saisir plus de symboles est probablement d'avoir une touche morte. 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 qu'elle entre en conflit avec la locale. La locale est un ensemble de paramètres du système qui spécifie quelle langue est utilisée, le format de la date, de l'heure, des unités monétaires, l'encodage des caractères par défaut, ou encore l'ordre alphabétique des lettres (qui peut ne pas être le même selon les régions). Les caractères recombinants sont donnés une fois pour toutes dans la locale et dans notre cas, c'est la langue française qui veut que, pour la locale du français, apostrophe mort + c donne ç, et ce sur tout type de clavier (ie. même sur un clavier QWERTY). Il n'en sera pas de même en vietnamien, qui a évidemment une locale différente.

Forcer une nouvelle logique de caractère recombinant pose dès lors problème, car elle joue contre la normalisation et la portabilité de la disposition de clavier ainsi créée. On ne peut pas raisonnablement modifier la locale :

  • déjà parce qu'il n'y a pas de manière simple de changer les caractères recombinants au sein d'une locale ;
  • parce qu'ensuite, changer de locale quand on change de clavier ou d'ordinateur 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 !).

Création d'une touche morte

On peut alors se demander s'il est possible d'avoir un comportement similaire à celui des touches mortes sans passer par la locale et la destruction des caractères recombinants usuels. 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 changer de mode de composition pour le prochain appui de touche, selon l'action précédente ; je ne me suis pas penché plus sur la question.

Le problème, c'est qu'on ne peut pas toujours compter sur ce genre de richesse fonctionnelle extrême. XKB est vraiment très poussé, et doit même permettre, je crois, de saisir du japonais (hiraganas et katakanas) sans avoir recours à un InputServer externe. Mais il n'est actif que si le serveur X.Org l'est, ce qui peut ne pas être le cas. Par exemple, dans la console Linux (tty), 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). Souhaite t-on mettre les utilisateurs concernés de coté ?

Autres pistes

Nous revoilà donc au point de départ :

  • on a besoin de AltGr ;
  • on ne peut pas utiliser AltGr tout en conservant un clavier ergonomique, du point de vue de la symétrie des combinaisons (sauf à retoucher la disposition physique et le nombre des touches, mais c'est là le travail des concepteurs de claviers, et une voie fermée à court et moyen terme).

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 et l'utiliser à cette fin. 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 CapsLock sur tous les claviers.

On peut aussi vouloir utiliser une autre touche, voire deux (une sous chaque main), 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. »

Deux dispositions fr-dvorak-bépo ?

Suite à la discussion précédente sur l'opportunité d'un choix entre deux (mauvaises) solutions, une nouvelle proposition est faite.

Comme les deux choix présentent des propriétés mutuellement exclusives, on peut imaginer spécifier deux claviers, un « ergonomique » et un « propre » :

  • fr-dvorak-bépo ergonomique : Alt devient AltGr gauche, CapsLock devient Alt, ² devient CapsLock ;
  • fr-dvorak-bépo propre : on ne touche pas à Alt et CapsLock. Ils restent où ils sont, aussi mal fichus que sur n'importe quel clavier AZERTY.

Le Dvorak-Fr propre servira de référence, le ergonomique sera proposé par défaut (sauf sous Windows, où on sera probablement obligés de rester « propre »)

Idée pas conne.
  • L'emploi moins rare (et plus réfléchi) de touches mortes devrait faire augmenter la gamme des caractères possibles, et donc faire disparaître les cas où la touche "compose" est nécessaire. Il est clair que cette touche coûte très cher à la saisie, la faire disparaître serait révélateur d'une conception plus riche du keymap (on fait tendre le nombre d'exceptions vers 0).
Entièrement d'accord avec ce point, ce qui supprimerait donc le débat sur un duo Alt/AltGr versus deux Alt. Une touche serait représenté ainsi :
[@______
| 2   4 |
| 1   3 |
-------@]

1: touche à vide
2: Shift + touche / Shift touche
3: Touche morte1 + touche / touche morte1 touche
4: Touche morte2 + touche / touche morte2 touche
On aurait donc AltGr = Alt.
D'ailleurs à ce sujet, je pense que les symboles utilisés en programmation (par exemple « { } [ ] » ) arriveront probablement en AltGr, et donc on pourrait mettre par exemple les [ et { en AltGr, et les } et ] associés en AltGr+Shift. Ceci bien évidemment sous réserve qu'il n'y ait pas de place ailleurs (par exemple en accès direct ou Shift, éventuellement à la place de )º =+ de l'AZERTY, à condition que les chiffres soit tassés à gauche).

Alt et AltGr symétriques

La notion de modificateur symétrique est portable pour sous Windows. J'ai testé hier avec les logiciels KeyTweak (modification de la bdd) et Autohotkey sous Windows XP et Vista (voir outils).

J'ai d'abord essayé la proposition d'Aragorn c'est-à-dire :

  • AltGr symétrique (Right Alt devient un Right AltGr)
  • ² devient l'Alt

Et me suis rendu compte que les raccourcis Alt+touche côté gauche sont un poil acrobatique, par contre le Alt+tab coule de source (on peut changer d'application avec un doigt !!)

D'où l'idée d'avoir un Alt symétrique, soit :

  • pour un clavier 102 touches : un deuxième Alt en haut sur la touche à côté de backspace (il faudrait alors replacer % et µ ailleurs sur le layout)
  • pour un clavier 105 touches : en remplacant les deux touches Win droite et gauche par des Alt (la touche ² pouvant faire office de touche Win vu elle est utilisé dans certains logiciels aujourd'hui)

Il reste à vérifier la portabilité sous Mac… -- A2

De la touche « Super »

La touche Super est la touche sur laquelle il est souvent dessiné le logo windows. Ce que je dis ici s’applique aussi à la touche « menu ». De plus en plus nous imaginons l’utiliser pour avoir un AltGr Symétrique sans ne rien perdre d’autre. J’ajoute deux points :

  • Ces touches bougent beaucoup, elles ne sont pas placées sur tous les claviers, en particulier les portables ;
  • sous linux, elle sert de plus en plus : nombre des effets de compiz-fusion[1] se font à l’aide de ce modificateur.

Il est donc compliqué de faire reposer l’ergonomie du clavier sur une touche qu’on est pas certain de retrouver sous ses doigts, ou qui peut-être utilisée pour autre chose.

Liens et références

  1. Des images partout sur youtube et sur le blog dédié.