AltGr symétrique

De Disposition de clavier bépo

Sur un 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. C'est également un raccourci des combinaisons de touches Ctrl+Alt.

Symétrie des modificateurs et problème du AltGr

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.

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).

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é.

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".

~Thomas Tempé


AltGrSymétrique

Page à fusionner avec SymetrieEtAltGr

Suite à la discussion de cet aprem, où on s'est demandé laquelle de 2 mauvaises solutions choisir, on a proposé de faire la chose suivante :

Comme ces deux propriétés sont mutuellement exclusives, on spécifie 2 claviers, un "ergonomique" et un "propre".

Dvorak-Fr ergonomique : Alt devient AltGr gauche, CapsLock devient Alt, ² devient CapsLock.

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").


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 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)
* ² 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

Liens

Page provisoire pour la version 0.7, vous en occupez pas (Aurélien LPR)