Mon clavier d’ordinateur déroute souvent ceux qui passent par mon bureau, et a fortiori ceux qui essaient de l’utiliser. Il y a deux raisons à cela : d’abord il s’agit d’un clavier orthogonal, ou clavier matriciel, c’est-à-dire que les touches sont rangées dans un quadrillage au lieu d’avoir des rangées décalées comme sur l’immense majorité des claviers disponibles, ensuite les lettres ne sont pas placées dans l’ordre habituel qui commence par AZERTY. Ces deux particularités relèvent d’un même objectif : réduire les tensions musculaires pour dactylographier plus confortablement.
Présentation
Lettres et chiffres
Je m’inspire des avantages énoncés sur la page de présentation de la disposition BÉPO pour formuler mes principes d’ergonomie :
- favoriser les touches les plus facilement accessibles et en particulier sur la ligne de repos pour les lettres les plus fréquentes
- répartir les frappes entre les deux mains, donc entre les parties gauche et droite du clavier
- favoriser l’alternance entre les deux mains
- simplifier la frappe des enchainements de lettres à une seule main.
Je souhaite aussi prendre en compte que les doigts n’ont pas tous la même longueur, donc qu’il est plus facile pour le majeur et pour l’annulaire d’atteindre la rangée supérieure (l’index étant certes très mobile mais montera moins facilement du fait de l’inclinaison de la main). A contrario, la descente du majeur sur la ligne inférieure ralentit la frappe en relevant la position de la main.
Un mot en français se décompose en syllabes, et chaque syllabe est composée d’une ou plusieurs voyelles juxtaposées, souvent précédées (et parfois suivies) d’une ou plusieurs consonnes. Cette alternance entre voyelles et consonnes mène à une première règle de répartition des lettres, déjà respectée dans la disposition BÉPO : toutes les voyelles sont du même côté du clavier (ici à gauche), et les consonnes les plus fréquentes sont de l’autre côté. Ce choix est conforté par une analyse en composantes principales de la matrice des digrammes.
Enfin, j’ai essayé de conserver la proximité de lettres donnant lieu à des raccourcis clavier apparentés : Z et Y pour annuler et restaurer, C, X et V pour copier, couper et coller.
Diacritiques et ligatures
Le caractère É (avec accent aigu) est suffisamment fréquent en français pour mériter une touche plus accessible que sur la ligne des chiffres. On ne peut toutefois dédier une touche à chacune des lettres accentuées du français (15 répertoriées par Legifrance, sans compter la cédille). J’ai fait le choix sur mon clavier d’utiliser une touche morte pour l’accent grave (comme il en existe déjà une pour l’accent circonflexe et le tréma en disposition AZERTY). Cependant la figure ci-dessus représente une variante avec une touche supplémentaire pour È (accent grave) et les autres accents graves en AltGr sur les voyelles correspondantes : A, U.
De même, le C avec cédille est en AltGr sur la touche de C, comme les ligatures Œ sur O et Æ sur É.
D’autres diacritiques sont accessibles en AltGr(+Maj) sur la touche morte au bout de la rangée inférieure pour un usage dans d’autres langues : le caron (ˇ) et le macron (¯). La lettre allemande eszett (ß) est aussi en AltGr sur Z.
Ponctuation, espace et apostrophes
Pour la ponctuation, les signes les plus courants (apostrophe, virgule et point) ont été rendus directement accessibles, en haut à droite pour la première (avec l’auriculaire droit, où elle ne risque pas d’interférer avec B, P, Q et V), en bas à gauche pour les deux autres (sur annulaire et index), avec un réflexe pour l’espace dans la foulée. Le deux-points, toujours à encadrer d’espaces dans un texte en français, est placé sur la ligne inférieure pour le majeur gauche pour minimiser les enchainements avec A et E. Les points de suspension sont en AltGr sur le point.
Les ponctuations hautes (point-virgule, point d’interrogation et point d’exclamation) sont distribuées avec Maj sur la virgule, le deux-points et le point. Les versions culbutées utiles en espagnol sont placées en AltGr+Maj sur les touches correspondantes.
Les guillemets droits simples et doubles doivent être directement accessibles et se trouvent sur les deux premières touches de la ligne du haut. Les guillemets français («) et (») y sont respectivement accessibles via AltGr. Les parenthèses sont directement accessibles sur les deux touches suivantes.
Le trait d’union apparait en main droite sur la ligne du haut également (touche 8), en version sécable et insécable. Son usage est à distinguer de ceux des tirets moyen et long placés sur la touche qui suit le 0.
L’espace insécable, normalement associée au deux-points et aux guillemets français, est accessible sur la barre d’espace avec AltGr. L’espace fine insécable, associée aux ponctuations hautes, est de façon cohérente sur la barre d’espace avec Maj.
Autres symboles ASCII
Le jeu de caractères ASCII comprend 95 caractères imprimables dont les 10 chiffres, les 26 lettres de l’alphabet latin en version majuscule et minuscule, 11 signes de ponctuation, l’espace et un accent grave. Il reste 20 caractères dont
- quelques symboles mathématiques (chevrons pour la comparaison, signe égal, signe plus et barre oblique, ainsi que l’astérisque utilisé comme symbole de multiplication, répartis sur les touches de la ligne du haut de part et d’autre du trait d’union entre 4 et 0),
- les crochets et accolades en AltGr respectivement sur 2 et 3 puis sur 4 et 5,
- le croisillon (#) en AltGr sur H (comme hashtag),
- l’arobase (@) au bout de la deuxième ligne,
- le signe tilde (~) en AltGr sur N,
- l’éperluette (&) en AltGr sur T,
- le symbole pourcent (%) en AltGr sur P,
- la barre verticale (|) en AltGr sur Q,
- le dollar ($) en accès direct sur la touche suivante,
- le symbole souligné (_) en AltGr sur la virgule,
- le caret (^) en AltGr sur X.
Symboles supplémentaires
À cette disposition minimale, j’ai ajouté quelques symboles déjà présents sur les claviers en version standard en France :
- l’exposant 2 (²) pour les unités de surface notamment, accompagné de l’exposant 3 (³) pour les unités de volume, sur la dernière touche de la première ligne du haut ;
- le symbole degré (°) accompagné des symboles prime (′) et seconde (″) pour les angles en notation sexagésimale (mais aussi pour les dérivées de fonction) sur la touche de l’apostrophe typographique ;
- le symbole euro (€) en AltGr sur E, avec de même les symboles de livre sterling (£) sur L et yen (¥) sur Y, le symbole de monnaie (¤) étant mis en Maj avec le dollar ;
- le symbole micro (µ) en AltGr sur M ;
- le symbole de section (§) en AltGr+Maj sur P ;
J’ai aussi ajouté quelques symboles mathématiques pour l’écriture en ligne :
- les symboles d’inégalités larges (≤ et ≥) en AltGr+Maj avec les chevrons des inégalités strictes correspondantes ;
- le symboles de différence (≠) et d’approximation (≈) en AltGr (+Maj) avec l’égalité (touche 6) ;
- le symbole plus ou moins (±) en AltGr avec le symbole plus (touche 7) ;
- le symbole moins (−) en AltGr avec le trait d’union (touche 8) ;
- le symbole de division obélus (÷) en Maj avec la barre oblique (touche 9) ;
- la croix de multiplication (×) en AltGr avec l’astérisque (touche 0) ;
- le symbole de l’infini (∞) en AltGr sur W.
Enfin, on pourra trouver quelques signes typographiques supplémentaires :
- l’obèle simple ou double († et ‡) en AltGr(+Maj) au bout de la première ligne du haut ;
- le point médian (·) en AltGr avec le deux-points ;
- le symbole de copyright (©) en Maj.
Adaptations
Turc
Suite à une demande, voici une modification de la disposition précédente avec les diacritiques utiles pour la saisie du turc. Le tréma est toujours disponible en touche morte sur la dernière ligne, le C avec cédille reste en AltGr sur C, mais j’ai rajouté S avec cédille de même en AltGr sur S, le G avec brève (ğ) en AltGr sur G, le I minuscule sans point (ı) en AltGr sur I, tandis que la majuscule avec point (İ) est en AltGr+Maj.
Russe
Pour la saisie du russe, je suis parti d’une translittération un peu naïve, en remplaçant directement ABDEÈFGIJKLMNOPRSTUVYZ par АБДЕЭФГИЖКЛМНОПРСТУВЫЗ, puis j’ai remplacé C par Ц (tsé), H par Ш (cha), Q par Ч (tché), W par Ю (iou), X par Х (kha).
La lettre Ё (io) est évidemment placée en AltGr pour Е. La lettre Щ (chtcha) étant rare, je l’ai placée en AltGr sur Ш. Le signe mou (Ь) et le signe dur (Ъ) ont pris la touche de fin de la ligne du bas. Le yod ou « i court » (Й) a pris la place de l’apostrophe inutile. L’accent tonique remplace l’arobase sur la touche suivante. La lettre Я est placée en AltGr sur А.
Pour faciliter la transition entre У et Ю (notamment pour l’accusatif des adjectifs de la 1re déclinaison), j’ai déplacé Ю sur l’index (5e touche de la ligne intermédiaire), renvoyant Ы sur la deuxième touche de la ligne supérieure. La touche libérée au début de la ligne supérieure accueille alors la lettre rare Э, qui cède sa place au début de la ligne inférieure à Я en accès direct.
La lettre russe К étant beaucoup plus fréquente que son homologue en français, je l’ai replacée au bout de la ligne intermédiaire à la place de Ч, qui remplace alors Ц sur la ligne inférieure, cette dernière terminant la permutation circulaire deux touches plus loin.
Enfin, j’ai interverti les places de Ш/Щ et de Ж sur la ligne supérieure, pour rendre cette dernière plus accessible.
Le symbole du rouble (₽) est mis en AltGr sur Р.
TypeMatrix
La configuration sur un clavier orthogonal comme TypeMatrix est essentiellement la même, à ceci près que la dernière touche de la ligne intermédiaire n’existe pas, donc les caractères correspondants doivent être redistribués. Le dollar est placé en AltGr sur S. En outre, il y a un décalage dans l’encodage des touches de la ligne inférieure par rapport à un clavier PC standard.
J’en propose une version complétée avec davantage de symboles mathématiques.
Pour avoir encore plus de symboles mathématiques, j’utilise la touche Hyper (combinable avec AltGr et Maj) à droite de Alt pour accéder à un deuxième niveau, sur lesquels je reporte les chiffres à la façon d’un pavé numérique.
Installation
Je détaille ci-dessous une procédure possible pour les utilisateurs de Linux. Je ne l’ai testée que sur Debian, mais elle devrait fonctionner sur d’autres distributions sous réserve de quelques adaptations. Les utilisateurs de systèmes propriétaires peuvent éventuellement voir (sans garantie d’exhaustivité) :
- pour Windows, Portable Keyboard Layout (libre), SharpKeys, KeyTweak (gratuit) ou Microsoft Keyboard Layout Creator ;
- pour Mac OS X, Ukulele.
Procédure sous Linux (Debian Xfce)
- Récupérer une image du clavier que l’on souhaite, l’imprimer et l’afficher à proximité de l’écran (de préférence au dessus ou en dessous).
- Enregistrer le fichier weeh dans le répertoire
/usr/share/X11/xkb/symbols
- Dans un terminal en mode utilisateur (et pas en superutilisateur !) taper la commande qui correspond à votre clavier actuel, par exemple
setxkbmap fr
ousetxkbmap fr bepo
afin de pouvoir remettre immédiatement en état avec les deux touches ↑ et Entrée si un problème se pose. Ouvrir également un éditeur de fichier texte afin d’effectuer ses tests tranquillement. - Appliquer la nouvelle disposition avec
setxkbmap weeh
- Si cela vous convient, installer la nouvelle disposition dans le menu de configuration
/usr/share/X11/xkb/rules/evdev.lst
(en mode superutilisateur cette fois) en ajoutant la ligne suivante à la fin de la partie! layout
:
et les lignes suivantes (en tout cas celles qui vous intéressent) à la fin de la partieweeh Weeh
! variant
:
Modifier également le fichiersimple weeh: French
turc weeh: Turkish
ru weeh: Russian
math weeh: French (math)
symbol weeh: Symbols
double weeh: French (math, symbols)
tm weeh: French (TypeMatrix)
tmru weeh: Russian (TypeMatrix)
tmmath weeh: French (math, TypeMatrix)
tmdouble weeh: Double (French, math, TypeMatrix)
/usr/share/X11/xkb/rules/evdev.xml
entre les balises<layoutList>
en ajoutant la disposition ainsi que les variantes qui vous sont utiles :<layout>
<configItem>
<name>weeh</name>
<shortDescription>weeh</shortDescription>
<description>Weeh</description>
<languageList>
<iso639Id>fra</iso639Id>
</languageList>
</configItem>
<variantList>
<variant>
<configItem>
<name>simple</name>
<shortDescription>French layout</shortDescription>
<description>French</description>
</configItem>
</variant>
<variant>
<configItem>
<name>tmru</name>
<shortDescription>Russian TM</shortDescription>
<description>Russian (TypeMatrix)</description>
</configItem>
</variant>
</variantList>
</layout>
<variant>
<configItem>
<name>tmdouble</name>
<shortDescription>Double TM</shortDescription>
<description>French and symbol layers (TypeMatrix)</description>
</configItem>
</variant>
</variantList>
</layout>
- Pour qu’une disposition favorite soit prise en compte dès l’allumage de l’ordinateur (attention à bien vérifier au préalable l’utilisabilité de cette version pour tous les utilisateurs de l’ordinateur et le fait qu’elle permette de saisir à la fois les identifiants de connexion et les mots de passe), modifier le fichier
/etc/default/keyboard
en précisant la disposition et la version :XKBLAYOUT="weeh"
XKBVARIANT="tmdouble"
Évaluation
Accès direct
Les touches qui ne semblent demander aucune tension supplémentaire de la main sont les quatre touches de repos des doigts de chaque main sur la ligne intermédiaire, les touches des majeurs et annulaires sur la ligne supérieure, ainsi que les touches des index sur la ligne inférieure juste en dessous (vers l’extérieur de la main avec des rangées décalées). J’ai la sensation que le déplacement des doigts d’une ligne à l’autre induit moins de tension musculaire que le déplacement latéral.
Cette représentation est assez proche de celle obtenue par duels d’accessibilité sur Bepo.fr que j’ai consultée a posteriori.
Les quatorze touches ainsi définies rassemblent les dix lettres les plus fréquentes (E, S, A, I, T, N, R, U, L, O) ainsi que trois des cinq suivantes (C, P, É), rassemblant ainsi plus de 70 % des frappes (hors espace). L’agilité de l’index droit permet d’obtenir facilement les deux autres (D, M), qui correspondent à près de 10 % supplémentaires. Les lettres restantes occupent encore un peu plus de 8 % des frappes. Le reste comprend les signes de ponctuation, les chiffres et d’autres symboles moins courants.
Le majeur gauche peut paraitre ainsi sur-sollicité : les lettres A et E rassemblent à elles seules 20 % des frappes environ. Mais l’intérêt de cette juxtaposition tient dans l’étude des enchainements ci-dessous.
Enchainements
Il s’agit ici de minimiser la fréquence des enchainements utilisant deux fois le même doigt, ou deux doigts voisins renversant la courbure naturelle (par exemple avec un index ou un auriculaire sur une ligne au dessus de celle d’un majeur ou d’un annulaire). J’éprouve aussi une légère tension lors de l’alternance entre majeur et auriculaire.
Les cinq représentations ci-dessous illustrent les enchainements à éviter, avec un trait d’autant plus fort que la gêne occasionnée est plus importante. A contrario, une lettre déjà marquée comme difficile d’accès sera plus facilement enchainée depuis une touche voisine (typiquement entre D et F).
Il reste ensuite à évaluer les répétitions d’une même touche. L’auriculaire semble un peu moins habile sur cet aspect, et la main gauche un petit peu plus lente. Cette dernière remarque ne vaut vraisemblablement que pour les droitiers, mais elle va dans le sens du choix de placer les voyelles à gauche plutôt qu’à droite, car celles-ci sont beaucoup moins sujettes à répétition que les consonnes.
Les difficultés d’enchainements avec les touches en bord de clavier sont illustrées sur les figures suivantes.
Mesure d’ergonomie
Afin de mesurer la facilité d’accès des touches, j’ai comparé les temps mis pour effectuer 12 plusieurs frappes successives d’un même motif.
Les doigts de ma main droite ont à peu près tous la même vitesse de frappe en répétition (120 ms par frappe), en position de repos ou sur les autres touches associées. Seul l’auriculaire est un tout petit peu plus lent sur B, V et Q (un peu plus de 130 ms). Les doigts de la main gauche sont un peu plus lents en répétition (entre 150 ms et 200 ms de l’index à l’auriculaire), avec là aussi un temps légèrement rallongé pour l’auriculaire en dehors de la ligne de repos.
L’alternance des deux mains est nettement plus rapide : moins de 90 ms par frappe pour un motif comme « SI ».
Étant donnée une répartition des lettres sur les touches du clavier, on peut calculer une mesure d’ergonomie en calculant un score de position et un score d’enchainements. Le score de position est la moyenne des difficultés d’accès des touches pondérée par les fréquences des lettres correspondantes. De même, le score d’enchainement est la moyenne des évaluations des enchainements de touches pondérée par les fréquences des enchainements des lettres correspondantes.
Ces fréquences sont obtenues à partir d’un corpus à choisir. On peut utiliser celui effectué par Didier Müller, celui de Nicolas Chartier ou celui disponible sur Bepo.fr (sans source explicite).
Analyse en composantes principale de la matrice des digrammes
Comment maximiser l’alternance entre les deux mains ? À partir d’un tableau répertoriant le nombre d’occurrences de chaque enchainement de deux lettres (ou plus généralement de deux caractères, voire de deux codes clavier en tenant compte des touches mortes), on cherche une répartition de ces lettres, symboles ou codes en deux parties, de façon à maximiser la somme des coefficients reliant les deux parties ou, ce qui revient au même, minimiser la somme des coefficients entre éléments d’une même partie.
On peut interpréter ce tableau comme une matrice carrée M (de taille 26 si on ne prend en compte que l’alphabet) et chaque partie est représentée par un vecteur avec autant de composantes que d’éléments, valant 1 pour chaque élément de la partie, et 0 pour les autres. La somme de ces deux vecteurs est donc un vecteur U uniquement composé de 1, donc on peut noter ces deux vecteurs X et U−X.
La quantité à maximiser s’écrit alors matriciellement X⊤M(U − X) + (U − X)⊤MX = U⊤SX − X⊤SX où S = M + M⊤ est une matrice symétrique.
Comme il existe 226 = 67 108 864 vecteurs X possibles, un calcul exhaustif est tout à fait faisable. Cependant, on peut essayer de remplacer ce problème discret par un problème d’analyse en considérant des vecteurs X dont les composantes peuvent valoir n’importe quel réel dans [0, 1]. Pour minimiser cette fonction quadratique, on peut déterminer son point critique solution de l’équation U⊤S − 2X⊤S = 0. Pour peu que la matrice S soit inversible, ce qui presque certain, le seul point critique est donc 12U. En posant Z = X − 12U avec des composantes dans [−12, 12], notre quantité à minimiser s’écrit 12U⊤SU − Z⊤SZ. Une heuristique consiste alors à prendre le sommet le plus proche du vecteur propre de S avec la valeur propre la plus basse.
Le logiciel SageMath produit très rapidement des approximations de ces valeurs propres qui se répartissent entre environ − 800 000 et 1,5 × 106. Mais l’évaluation des vecteurs propres associés par le même logiciel n’est exploitable que pour les valeurs propres les plus petites en valeur absolue. J’ai alors utilisé la méthode des puissances sur une transformée de la matrice, explicitement sur M = 500 000 I − S, pour laquelle les vecteurs propres de la valeur propre dominante sont ceux de la valeur propre la plus basse de S. En une centaine d’itérations, on trouve un vecteur propre dont les composantes sont toutes de même signe sauf celles qui correspondent à A, E, I et O. Les voyelles U et Y doivent être trop souvent associées à ces quatre premières pour qu’il soit préférable de les basculer du côté des consonnes. Notons que les composantes les plus faibles en valeur absolue correspondent à K, Q, W, X, Y, B, F, G, H, J, U et Z.
Il est possible de ne considérer que les répartitions égalitaires en nombre d’éléments, auquel cas on se restreindra au sous-espace des vecteurs Z dont la somme des composantes est nulle. Il suffit alors de calculer la matrice de la restriction de la forme quadratique à cet espace grâce à une base orthonormée, puis de recommencer la méthode des puissances.