Utilisateur:YDB/dskfr

De Disposition de clavier francophone et ergonomique bépo

Un DSK français, par YDB et Kazé. Pilote XKB disponible ici.

 ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━━┓
 │ ~   │ !   │ «   │ »   │ $   │ %   │ ^   │ &   │ *   │ (   │ )   │ {   │ }   ┃          ┃
 │ @ # │ 1 „ │ 2 “ │ 3 ” │ 4 € │ 5   │ 6   │ 7 | │ 8   │ 9   │ 0   │ [   │ ]   ┃ ⌫        ┃
 ┢━━━━━┷━━┱──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┺━━┳━━━━━━━┫
 ┃        ┃ "   │ ;   │ :   │ P   │ Y   │ F   │ G   │ C   │ R   │ L   │ ?   │ +   ┃       ┃
 ┃ ↹      ┃ ' æ │ , œ │ . … │     │     │     │     │   ç │     │     │ /   │ =   ┃       ┃
 ┣━━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓  ⏎   ┃
 ┃         ┃ A   │ O   │ E   │ U   │ I   │ D   │ H   │ T   │ N   │ S   │ ¨   │ _   ┃      ┃
 ┃ ⇬       ┃   à │     │   è │   ù │     │     │     │     │     │     │ ¤   │ -   ┃      ┃
 ┣━━━━━━┳━━┹──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┲━━┷━━━━━┻━━━━━━┫
 ┃      ┃ >   │ É   │ Q   │ K   │ J   │ X   │ B   │ M   │ W   │ V   │ Z   ┃               ┃
 ┃ ⇧    ┃ <   │   â │   ô │   ê │   û │   î │     │   µ │     │     │     ┃ ⇧             ┃
 ┣━━━━━━┻┳━━━━┷━━┳━━┷━━━━┱┴─────┴─────┴─────┴─────┴─────┴─┲━━━┷━━━┳━┷━━━━━╋━━━━━━━┳━━━━━━━┫
 ┃       ┃       ┃       ┃ ⍽ Espace insécable             ┃       ┃       ┃       ┃       ┃
 ┃ Ctrl  ┃ super ┃ Alt   ┃ ␣ Espace                     ` ┃ AltGr ┃ super ┃ menu  ┃ Ctrl  ┃
 ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛
Attention

Ceci n'est pas une tentative de fork du bépo.

Ce n'est qu’une adaptation du DSK standard au français, comme il en existe pour de nombreuses langues européennes. Le résultat sera forcément moins efficace pour le français que le Bépo : le layout de base étant optimisé pour l’anglais, le but n'est que d'obtenir une disposition ergonomique pour un usage mixte français/prog, sans y passer trop de temps.

Dvorak-ES

Le point de départ c'est le Dvorak-ES :

  • la ponctuation et la barre des chiffres sont celles des Qwerty européens (= mieux que la version US) ;
  • inversion H/R par rapport au DSK pour faciliter les trigrammes CH+voyelles ;
  • il est utilisable tel quel pour le français grâce aux accents morts ;
  • il est inclus dans Xorg (setxkbmap es -variant dvorak).
╭─────╮╭─────┬─────┬─────┬─────┬─────╮╭─────┬─────┬─────┬─────┬─────╮╭─────┬─────╮
│ ª   ││ !   │ "   │ ·   │ $   │ %   ││ &   │ /   │ (   │ )   │ =   ││ ?   │ ¿   │
│ º   ││ 1   │ 2   │ 3   │ 4   │ 5   ││ 6   │ 7   │ 8   │ 9   │ 0   ││ '   │ ¡   │
╰─────╯├─────┼─────┼─────┼─────┼─────┤├─────┼─────┼─────┼─────┼─────┤├─────┼─────┤
       │ :   │ ;   │ Ñ   │ P   │ Y   ││ F   │ G   │ C   │ H   │ L   ││ ^   │ *   │
       │ .   │ ,   │     │     │     ││     │     │     │     │     ││ `   │ +   │
       ├─────┼─────┼─────┼─────┼─────┤├─────┼─────┼─────┼─────┼─────┤├─────┼─────╯
       │ A   │ O   │ E   │ U   │ I   ││ D   │ R   │ T   │ N   │ S   ││ ¨   │╭-----╮
       │     │     │     │     │     ││     │     │     │     │     ││ ´   │¦ Ç   ¦
╭-----╮├─────┼─────┼─────┼─────┼─────┤├─────┼─────┼─────┼─────┼─────┤╰─────╯¦     ¦
¦ >   ¦│ _   │ Q   │ J   │ K   │ X   ││ B   │ M   │ W   │ V   │ Z   │       ╰-----╯
¦ <   ¦│ -   │     │     │     │     ││     │     │     │     │     │
╰-----╯╰─────┴─────┴─────┴─────┴─────╯╰─────┴─────┴─────┴─────┴─────╯
                 ╭───────┬────────────────────────┬───────╮
                 │  Alt  │ E.insécable            │ AltGr │
                 │       │ Espace                 │       │
                 ╰───────┴────────────────────────┴───────╯

Par contre :

  • osef du Ñ, du ·, de ¡¿, de ºª, etc. ;
  • la ponctuation ,;.: est mal placée (le point sur l’auriculaire, bobo) ;
  • il manque des caractères français (æ, œ, «», —, …) ;
  • le É n’est pas en direct, ce qui est pénalisant en français ;
  • l’inversion H/R n’est pas si pertinente que ça, voir plus bas ;
  • la couche AltGr est naze.

L'idée est donc de l’adapter au français. Ça n'en fera pas une disposition aussi optimisée pour le français que le Bépo, mais ça sera toujours beaucoup mieux que l’Azerty — et accessoirement ça devrait être très agréable pour la prog.

Inversion H/R ?

Avantages :

  • ça place une lettre très courante, R, sur la rangée de base ;
  • ça facilite les digrammes VR ;
  • sous Vim, ça place H et L côte-à-côte (= déplacements gauche/droite)

Inconvénients :

  • ça complique certains digrammes courants, comme FR et GR en français, ou TH, SH et surtout WH en anglais/prog ;
  • CH se fait vers l’extérieur et non plus vers l’intérieur, ce qui rend l’enchaînement des voyelles moins naturel ;
  • sous Vim, l’alternance annulaire/auriculaire est finalement moins agréable que index/auriculaire.

À l’usage, cette inversion H/R semble donc néfaste pour le français et l’anglais.

Inversion J/K ?

Avantages :

  • les digrammes JE et J', très courants en français, sont grandement facilités ;
  • [V] est plus accessible que [C], donc autant l'affecter au J qui est beaucoup plus fréquent en français.

Inconvénient :

  • risque de s'emmêler les pinceaux entre DSK et DSK-fr.

Quitte à accepter une inversion de lettres sur le DSK, l’inversion J/K parait donc bien plus pertinente que H/R.

Carte complète du DSK-fr

La disposition actuelle est très proche du Dvorak-US, seules quelques touches ont été déplacées :

  • les (;:) sont placés en Shift+(,.) comme il se doit, les chevrons (<>) sont déplacés en AltGr ;
  • les (-_) remplacent (\|), ces derniers sont déplacés en AltGr également ;
  • J et K sont inversés ;
  • la touche [W] est affectée à « É » ;
  • la touche [ù] est affectée à la touche morte (¤).

L’idée est de n’utiliser qu’une seule touche morte pour l’ensemble des caractères accentués supportés ; c’est possible ici parce que les 5 principales voyelles sont sur une même ligne, contrairement au Bépo :

 ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━━┓
 │ ~   │ ! ¡ │ « ‘ │ » ’ │ $ £ │ % ‰ │ ^   │ &   │ *   │ (   │ )   │ {   │ }   ┃          ┃
 │ @ # │ 1 „ │ 2 “ │ 3 ” │ 4 € │ 5 ¥ │ 6   │ 7 | │ 8   │ 9   │ 0   │ [   │ ]   ┃ ⌫        ┃
 ┢━━━━━┷━━┱──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┺━━┳━━━━━━━┫
 ┃        ┃ "   │ ;   │ : · │ P   │ Y   │ F ª │ G ¢ │ C   │ R ™ │ L   │ ? ¿ │ + ± ┃       ┃
 ┃ ↹      ┃ ' æ │ , œ │ . … │   < │   > │   ſ │   © │   ç │   ® │   ł │ / \ │ = ≠ ┃       ┃
 ┣━━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓  ⏎   ┃
 ┃         ┃ A   │ O   │ E   │ U   │ I   │ D   │ H   │ T   │ N   │ S   │ ¨ ˙ │ _ – ┃      ┃
 ┃ ⇬       ┃   à │   ò │   è │   ù │   ì │   ð │   † │   þ │   ñ │   § │ ¤ ` │ - — ┃      ┃
 ┣━━━━━━┳━━┹──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┲━━┷━━━━━┻━━━━━━┫
 ┃      ┃ >   │ É   │ Q   │ K   │ J   │ X   │ B   │ M º │ W   │ V   │ Z   ┃               ┃
 ┃ ⇧    ┃ <   │   â │   ô │   ê │   û │   î │   ß │   µ │   ŭ │     │     ┃ ⇧             ┃
 ┣━━━━━━┻┳━━━━┷━━┳━━┷━━━━┱┴─────┴─────┴─────┴─────┴─────┴─┲━━━┷━━━┳━┷━━━━━╋━━━━━━━┳━━━━━━━┫
 ┃       ┃       ┃       ┃ ⍽ Espace insécable             ┃       ┃       ┃       ┃       ┃
 ┃ Ctrl  ┃ super ┃ Alt   ┃ ␣ Espace                     ` ┃ AltGr ┃ super ┃ menu  ┃ Ctrl  ┃
 ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛

La couche AltGr permet de garder tous les symboles de programmation courants en AltGr + main gauche, afin de soulager les auriculaires pour la saisie de code. Le pavé numérique virtuel sous la main droite n’est utilisable confortablement qu’avec un AltGr supplémentaire (ex : Caps), mais son rôle est essentiellement de déplacer 0 et 1 sous l’index et de faciliter la saisie des sempiternels (0)(1) et [0][1] — ces touches étant faciles d’accès même sans AltGr gauche.

┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━━┓
│ ~   │ !   │ «   │ »   │ $   │ %   │ ^   │ &   │ *   │ (   │ )   │ {   │ }   ┃          ┃
│ @   │ 1   │ 2 ( │ 3 ) │ 4   │ 5   │ 6   │ 7 7 │ 8 8 │ 9 9 │ 0   │ [   │ ]   ┃ ⌫        ┃
┢━━━━━┷━━┱──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┺━━┳━━━━━━━┫
┃        ┃ "   │ ;   │ :   │ P   │ Y   │ F   │ G   │ C   │ R   │ L   │ ?   │ +   ┃       ┃
┃ ↹      ┃ ' - │ , < │ . > │   / │   \ │     │   4 │   5 │   6 │     │ /   │ =   ┃       ┃
┣━━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓  ⏎   ┃
┃         ┃ A   │ O   │ E   │ U   │ I   │ D   │ H   │ T   │ N   │ S   │ ¨   │ _   ┃      ┃
┃ ⇬       ┃   { │   [ │   ] │   } │   | │     │   1 │   2 │   3 │     │ ¤   │ -   ┃      ┃
┣━━━━━━┳━━┹──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┲━━┷━━━━━┻━━━━━━┫
┃      ┃ >   │ É   │ Q   │ K   │ J   │ X   │ B   │ M   │ W   │ V   │ Z   ┃               ┃
┃ ⇧    ┃ <   │     │     │     │     │     │     │   0 │   0 │   . │     ┃ ⇧             ┃
┣━━━━━━┻┳━━━━┷━━┳━━┷━━━━┱┴─────┴─────┴─────┴─────┴─────┴─┲━━━┷━━━┳━┷━━━━━╋━━━━━━━┳━━━━━━━┫
┃       ┃       ┃       ┃ ⍽ Espace insécable             ┃       ┃       ┃       ┃       ┃
┃ Ctrl  ┃ super ┃ Alt   ┃ ␣ Espace                     ` ┃ AltGr ┃ super ┃ menu  ┃ Ctrl  ┃
┗━━━━━━━┻━━━━━━━┻━━━━━━━┹────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛

La couche AltGr est prévue pour le XML et le C++ (accès rapide à {}()[] et digrammes </, />, -> facilités) mais est très aisément adaptable à d’autres langages de programmation, puisqu’elle est complètement indépendante de la disposition des lettres. Ceux qui n’ont pas l’usage de cette couche AltGr peuvent conserver deux touches Alt symétriques (voire les échanger avec Ctrl) ou utiliser la touche AltGr comme alternative à la touche morte (¤).

Quelques chiffres sur la touche morte

DSK-fr Bépo
à  7 449
è  4 160
ù  890
ç  1 306
 àèùç : 13 805
ê  3 445
î  695
ï  84
ë  7
 total : 18 036  m  45 521

Dans ce layout, il est nécessaire d'utiliser une touche morte pour tous les caractères accentués (sauf pour le É), ce qui peut sembler pénalisant. Il n’en est rien :

  • la touche morte (¤) du DSK-fr charge bien moins l’auriculaire droit que le M du Bépo (qui est placé sur la même touche), puisque le total des accents grave + circonflexe + tréma + cédille ne fait que 40% de la fréquence du seul M en français ;
  • la touche morte n’ajoute que 0,85% de frappes par rapport au Bépo ou à l’Azerty, ce qui n’est pas significatif en terme d’effort ou de vitesse de frappe.

Le tableau ci-contre est calculé à partir du Corpus de Thomas Tempé, qui compte 1 616 343 caractères.

Il faudrait passer ce DSK-fr dans le comparateur de layouts pour l’évaluer vis-à-vis de l'Azerty et du Bépo. Il est probable qu’il soit plus près du Bépo que de l’Azerty pour le français, et loin devant le Bépo pour l’anglais et la prog, ainsi que pour l’équilibre de la charge des doigts.

Quelques mots sur la rangée de base

Une grande différence entre le DSK et le Bépo, c’est que le DSK privilégie l’équilibre de la charge des doigts et les enchainements sur la seule accessibilité des touches.

Ainsi, les deux touches de repos (donc les plus accessibles qui soient) sont U et H, ce qui peut paraitre idiot au vu de leur fréquence, surtout en français. Mais ce placement est justifié :

  • U se combine avec A/O/E, donc son placement fait que AU, OU et EU se font vers l’intérieur ;
  • H se combine avec C/T/S/W, ce qui permet de faire CH, TH, SH et WH vers l’intérieur — hormis pour le CH, c’est évidemment plus appréciable pour l’anglais et la prog que pour le français.

Pour le reste, la home row du DSK ressemble beaucoup à celle du Bépo. La principale difficulté est que si le DSK contient peu ou prou les mêmes lettres que le Bépo, elles ne sont pas dans le même ordre… dyslexiques s’abstenir.

Quel intérêt pour le Bépo ?

Outre l’objectif de faire un layout polyvalent français/prog sans trop se casser le bol, le but est aussi de proposer quelques idées avant de démarrer le chantier du Bépo v2 : une seule touche morte pour les lettres diacritiquées du français, une couche AltGr entièrement libre pour la prog, ne plus placer systématiquement les lettres les plus fréquentes sous les index, etc.