Utilisateur:Kaze

De Disposition de clavier bépo

Je suis développeur, j'utilise quotidiennement l'anglais, le français et l'allemand (dans cet ordre), je ne suis donc pas forcément un bon client pour le Bépo.

J'utilise plusieurs layouts : qwerty-intl, dvorak-us, et même azerty quand je suis en clientèle. Sur mon poste perso j'utilise mes propres layouts qwerty et dvorak internationalisés. Je m'intéresse au Bépo autant pour la démarche de conception et d'optimisation que pour le layout lui-même, que j'adopterai peut-être quand il sera finalisé.

Je travaille (entre autres) pour TypeMatrix™, j'ai notamment contribué à la conception du 2030-USB. Je suis en train de faire un tutoriel d'apprentissage du clavier en XUL sous licence GPL, compatible avec les leçons de KTouch, et qui supporte le Bépo.


Modifications suggérées pour la disposition actuelle

Schéma

Le schéma ci-dessous n'est pas un schéma TypeMatrix, mais une représentation de l'affectation des touches selon les méthodes de dactylographie courantes - à chaque colonne correspond un doigt et un seul. Les touches qui sont représentées en pointillés sont les deux touches « Europe » :

  • {Ç} (alias Europe-1 ou <BKSL>) est disjointe du reste du clavier car sa position dépend du type de clavier : pc104, pc105, TypeMatrix…
  • {Ê} (alias Europe-2 ou <LSGT>) n'existe que sur les claviers de type pc105.
╭─────╮ ╭─────┬─────┬─────┬─────┬─────╮ ╭─────┬─────┬─────┬─────┬─────╮ ╭─────┬─────╮
│ # ¶ │ │ 1  │ 2  │ 3  │ 4   │ 5   │ │ 6   │ 7   │ 8   │ 9   │ 0   │ │ ^   │ `   │
│ $ § │ │ " — │ « < │ » > │ ( [ │ ) ] │ │ @ ¬ │ + ± │ - - │ / ÷ │ * × │ │ =  │ %   │
╰─────╯ ├─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┤
        │ B   │ É   │ P   │ O   │ È   │ │ !   │ V   │ D   │ L   │ J   │ │ Z   │ W   │
        │   | │   ´ │   & │   œ │   ` │ │ ^   │     │     │     │     │ │     │     │
        ├─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┤ ├─────┼─────╯
        │ A   │ U   │ I   │ E   │ ;   │ │ C   │ T   │ S   │ R   │ N   │ │ M   │ ╭-----╮
        │   æ │   ù │   ¨ │   € │ ,   │ │     │     │     │     │     │ │     │ ¦ Ç   ¦
╭-----╮ ├─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┤ ╰─────╯ ¦     ¦
¦ Ê   ¦ │ X   │ Y   │ À   │ :   │ K   │ │ ?   │ Q   │ G   │ H   │ F   │         ╰-----╯
¦     ¦ │   \ │   { │   } │ . … │   ~ │ │ '   │     │     │     │     │
╰-----╯ ╰─────┴─────┴─────┴─────┴─────╯ ╰─────┴─────┴─────┴─────┴─────╯
                  ╭───────┬─────────────────────────┬───────╮
                  │  Alt  │ Espace insécable        │ AltGr │
                  │       │ Espace                _ │       │
                  ╰───────┴─────────────────────────┴───────╯

Je sais que ce n'est pas la représentation standard du Bépo, mais je crois qu'il est nécessaire de recourir à ce genre de schéma pour bien garder à l'esprit l'enchaînement des touches… surtout quand certains bépoïstes font des propositions qui ne tiennent pas compte des techniques de dactylographie, ou remettent en cause le simple fait d'associer chaque touche à un doigt et un seul.

Inversion ?/;

Objectif : une meilleure cohérence de la ponctuation

  • le point-virgule au-dessus de la virgule, les deux points au-dessus du point : c'est une amélioration adoptée par tous les layouts QWERTY/QWERTZ européens sur leur ancêtre américain ;
  • ./:/,/; sous la main gauche, !/? sous la main droite ; les ponctuations courantes restent avec les voyelles sous la main gauche, comme sur le Dvorak ;
  • selon le corpus de Thomas Tempé, les deux caractères « ? » et « ; » ont sensiblement la même fréquence en français, il n'y a donc pas de raison ergonomique de mettre « ? » en Maj+{,}.

Nota : cette inversion permettrait également de dupliquer « Ç » en AltGr+{,} – ce qui serait appréciable sur les claviers pc104 et certains claviers pc105 :

╠═══════╩╗───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬
║        ║ A Æ│ U Ù│ I ˙│ E ¤│ ;  ║ C  │ T Þ│
║  CAPS  ║ a æ│ u ù│ i ¨│ e €│ , ç║ c ©│ t þ│
╠══════╦═╝──┬─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴─══─┴

Inconvénient : ça complique l'accès au guillemet simple droit (rsqm), qui est utilisé par certains bépoïstes comme apostrophe courbe, et qui serait déplacé en Shift+AltGr+{5} ou Shift+AltGr+{À}.

Regrouper les guillemets sur {1-5}

Une autre modification pour la cohérence de la dispo :

  • les guillemets «» passent en AltGr+{2/3}, ceci afin de faciliter le XML/HTML et notamment les digrammes </ et />
  • les guillemets anglais “” remplacent ≤≥ en Shift+AltGr+{2/3}
  • le guillemet ouvrant allemand „ apparaît en Shift+AltGr+{1}
  • les guillemets simples anglais ‘’ sont déplacés ou dupliqués en Shift+AltGr+{4/5}

Peu d'impact sur le français mais nette amélioration pour l'anglais, l'allemand et la prog.

Ajout du signe ≠ en AltGr+{=}

Le caractère ¬ passerait en Shift+AltGr+[6], au seul motif qu'il n'est pas fréquent et qu'il ressemble à un tiret. Pas d'impact en utilisation courante.

Les chiffres en accès direct

Inutile de reprendre les pires défauts de l'AZERTY…

  • avoir les chiffres en accès direct faciliterait l'insertion d'espaces insécables avec les guillemets « » ;
  • on n'utilise que très rarement plusieurs caractères tels que "<>()_+-/* à la suite, contrairement aux chiffres ;
  • dans le cadre d'une utilisation professionnelle, et contrairement à une discussion type IRC, on a très souvent recours aux nombres pour exprimer des quantités, des montants ou des dates - et dans ce cadre-là, l'utilisation du ShiftLock est malpratique ;
  • l'utilisation du pavé numérique est fortement déconseilée à ceux qui utilisent la souris de la main droite (soit la quasi-totalité des utilisateurs), car cause de positionnement dyssymétrique ; mais si les chiffres ne sont pas en accès direct, difficile de s'en passer !

Ce point a déjà largement été débattu ; plutôt que de militer pour mettre les chiffres en accès direct, je propose d'utiliser la touche CapsLock de la façon suivante :

  • CapsLock On => chiffres en accès direct
  • CapsLock Off => chiffres sur la couche Maj

…et dans les deux cas, CapsLock ne sert plus à mettre quoi que ce soit en majuscules. Avec ça on peut se faire référencer par CapsOff.org. ;-)

Fichier xkb (version 0.6.6 modifiée)

Ce fichier implémente les suggestions ci-dessus et ajoute deux caractères :

  • le signe « ™ » en Maj+AltGr+{R}
  • le S long « ſ » en Maj+AltGr+{S}
 key <TLDE> { type[group1] = "FOUR_LEVEL"               , [ dollar         , numbersign  , section         , paragraph            ] }; // $ # § ¶ 
 key <AE01> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ quotedbl       , 1           , at              , doublelowquotemark   ] }; // " 1 @ „ 
 key <AE02> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ less           , 2           , guillemotleft   , leftdoublequotemark  ] }; // < 2 « “ 
 key <AE03> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ guillemotright , 3           , greater         , rightdoublequotemark ] }; // > 3 » ” 
 key <AE04> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenleft      , 4           , bracketleft     , leftsinglequotemark  ] }; // ( 4 [ ‘ 
 key <AE05> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenright     , 5           , bracketright    , rightsinglequotemark ] }; // ) 5 ] ’ 
 key <AE06> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ emdash         , 6           , endash          , notsign              ] }; // — 6 – ¬
 key <AE07> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ plus           , 7           , plusminus       , degree               ] }; // + 7 ± ° 
 key <AE08> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ minus          , 8           , notsign         , minutes              ] }; // - 8 – ′ 
 key <AE09> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ slash          , 9           , division        , seconds              ] }; // / 9 ÷ ″ 
 key <AE10> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ asterisk       , 0           , multiply        , VoidSymbol           ] }; // * 0 × 
 key <AE11> { type[group1] = "THREE_LEVEL"              , [ equal          , asciicircum , notequal                               ] }; // = ^ ≠ 
 key <AE12> { type[group1] = "THREE_LEVEL"              , [ percent        , grave       , U2030                                  ] }; // % ` ‰ 
 
 key <AD01> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ b              , B           , bar                 , brokenbar            , b               , B           ] }; // b B | ¦ 
 key <AD02> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ eacute         , Eacute      , dead_acute          , dead_doubleacute     , eacute          , Eacute      ] }; // é É ´ ” 
 key <AD03> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ p              , P           , ampersand           , VoidSymbol           , p               , P           ] }; // p P & 
 key <AD04> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ o              , O           , oe                  , OE                   , o               , O           ] }; // o O œ Œ 
 key <AD05> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ egrave         , Egrave      , dead_grave          , grave                , egrave          , Egrave      ] }; // è È ` ` 
 key <AD06> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ dead_circumflex, exclam      , dead_caron          , exclamdown           , dead_circumflex , exclam      ] }; // ^ ! ˇ ¡
 key <AD07> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ v              , V           , VoidSymbol          , VoidSymbol           , v               , V           ] }; // v V
 key <AD08> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ d              , D           , eth                 , ETH                  , d               , D           ] }; // d D ð Ð 
 key <AD09> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ l              , L           , UFE63               , VoidSymbol           , l               , L           ] }; // l L /
 key <AD10> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ j              , J           , U0133               , U0132                , j               , J           ] }; // j J ij IJ 
 key <AD11> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ z              , Z           , schwa               , SCHWA                , z               , Z           ] }; // z Z ə Ə 
 key <AD12> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ w              , W           , dead_breve          , VoidSymbol           , w               , W           ] }; // w W ˘
 
 key <AC01> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ a              , A           , ae                  , AE                   , a               , A           ] }; // a A æ Æ
 key <AC02> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ u              , U           , ugrave              , Ugrave               , u               , U           ] }; // u U ù Ù
 key <AC03> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ i              , I           , dead_diaeresis      , dead_abovedot        , i               , I           ] }; // i I ¨ ˙
 key <AC04> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ e              , E           , EuroSign            , UFDD1                , e               , E           ] }; // e E € ¤
 key <AC05> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ comma          , semicolon   , ccedilla            , Ccedilla             , comma           , semicolon   ] }; // , ; ç Ç
 key <AC06> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ c              , C           , copyright           , VoidSymbol           , c               , C           ] }; // c C ©
 key <AC07> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ t              , T           , thorn               , THORN                , t               , T           ] }; // t T þ Þ
 key <AC08> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ s              , S           , ssharp              , U017F                , s               , S           ] }; // s S ß ſ 
 key <AC09> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ r              , R           , registered          , trademark            , r               , R           ] }; // r R ®
 key <AC10> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ n              , N           , ntilde              , Ntilde               , n               , N           ] }; // n N ñ Ñ
 key <AC11> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ m              , M           , dead_macron         , masculine            , m               , M           ] }; // m M ¯ º
 key <BKSL> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ ccedilla       , Ccedilla    , dead_cedilla        , VoidSymbol           , ccedilla        , Ccedilla    ] }; // ç Ç ¸
 
 key <LSGT> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ ecircumflex    , Ecircumflex , slash               , VoidSymbol           , ecircumflex     , Ecircumflex ] }; // ê Ê /
 key <AB01> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ x              , X           , backslash           , VoidSymbol           , x               , X           ] }; // x X \
 key <AB02> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ y              , Y           , braceleft           , leftsinglequotemark  , y               , Y           ] }; // y Y { ‘
 key <AB03> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ agrave         , Agrave      , braceright          , rightsinglequotemark , agrave          , Agrave      ] }; // à À } ’
 key <AB04> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ period         , colon       , ellipsis            , periodcentered       , period          , colon       ] }; // . : … ·
 key <AB05> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ k              , K           , asciitilde          , dead_tilde           , k               , K           ] }; // k K ~ ~
 key <AB06> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ apostrophe     , question    , cent                , questiondown         , apostrophe      , question    ] }; // ' ? ¢ ¿
 key <AB07> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ q              , Q           , dead_abovering      , VoidSymbol           , q               , Q           ] }; // q Q °
 key <AB08> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ g              , G           , mu                  , VoidSymbol           , g               , G           ] }; // g G µ 
 key <AB09> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ h              , H           , dagger              , doubledagger         , h               , H           ] }; // h H † ‡
 key <AB10> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ f              , F           , dead_ogonek         , ordfeminine          , f               , F           ] }; // f F ? ª
 
 key <SPCE> { type[group1] = "FOUR_LEVEL"          , [ space, nobreakspace, underscore, U202F ] };
 include "level3(ralt_switch)"

Ce qui me saoule dans le Bépo…

…c'est que des lettres sont placées hors des deux zones principales de frappe : je trouve que {Z}, {W} et {Ç} sont particulièrement inconfortables.

Le Bépo reste cohérent avec son objectif — le français et rien d'autre — dans la mesure où W et Z sont très rares en français ; c'est essentiellement pour le développement et pour d'autres langues (anglais / allemand) que la position de W et Z me gêne. Ce n'est donc pas une critique du Bépo, mais plutôt le constat qu'en l'état, il est peu adapté à mon utilisation.

Pour ceux que ça intéresse, je propose une piste pour remettre toutes les lettres dans les zones principale de frappe : utiliser une touche morte pour À/È/Ç. C'est pas simple, ça suppose de grosses modifs, à chacun de voir si le jeu en vaudrait la chandelle. (Mise à jour : je me suis rendu compte après coup que c'est exactement ce qu'a fait Francis Leboutte pour sa dispo Dvorak-fr… et il a raison !)

Pour les autres, je les laisse méditer sur une citation honteusement extraite du canal IRC (2008/05/08) :

(20:51:11) ***labnico a mal aux auriculaires, surtout le droit, depuis qu'il est en bépo

Variante « Bépo-intl »

Un aperçu de ce que j'utilise en ce moment :

╭─────╮ ╭─────┬─────┬─────┬─────┬─────╮ ╭─────┬─────┬─────┬─────┬─────╮ ╭─────┬─────╮
│ # ¶ │ │ 1  │ 2  │ 3  │ 4   │ 5   │ │ 6   │ 7   │ 8   │ 9   │ 0   │ │ ^   │ `   │
│ $ § │ │ " — │ < «> » │ (   │ )   │ │ @   │ + ± │ - - │ / ÷ │ * × │ │ =  │ %   │
╰─────╯ ├─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┤
        │ B   │ É   │ P   │ O   │ W   │ │ !   │ V   │ D   │ L   │ J   │ │ ˇ˙   │
        │   | │   ´ │   & │   œ │     │ │ `   │     │     │     │     │ │ ^¨   │
        ├─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┤ ├─────┼─────╯
        │ A   │ U   │ I   │ E   │ ;   │ │ C   │ T   │ S   │ R   │ N   │ │ M   │ ╭-----╮
        │   æ │   {} │   € │ ,   │ │     │     │     │     │     │ │     │ ¦ Ç   ¦
╭-----╮ ├─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┤ ╰─────╯ ¦     ¦
¦ Ê   ¦ │ X   │ Y   │ Z   │ :   │ K   │ │ ?   │ Q   │ G   │ H   │ F   │         ╰-----╯
¦     ¦ │   \ │   [] │ . … │   ~ │ │ '   │     │     │     │     │
╰-----╯ ╰─────┴─────┴─────┴─────┴─────╯ ╰─────┴─────┴─────┴─────┴─────╯
                  ╭───────┬─────────────────────────┬───────╮
                  │  Alt  │ Espace insécable        │ AltGr │
                  │       │ Espace                _ │       │
                  ╰───────┴─────────────────────────┴───────╯

C'est moins « élégant » qu'une dispo sans lettre hors des pavés principaux, mais en pratique ça résoud déjà l'essentiel des reproches que je fais au Bépo, sans trop casser la disposition existante.

Pour le bla-bla, voir la page Bépo international.