« Utilisateur:Kaze/Bépo-intl » : différence entre les versions
m (→Fichier XKB) |
|||
(45 versions intermédiaires par 5 utilisateurs non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
Le Bépo ne me convenant pas pour la prog, l'anglais ou l'allemand, je teste quelques modifs. | Le Bépo ne me convenant pas pour la prog, l'anglais ou l'allemand, je teste quelques modifs. | ||
== Problème constaté == | == Problème constaté == | ||
* le W est très mal placé sur la disposition Bépo : ce n'est pas gênant pour le français, mais c'est rédhibitoire pour la prog ou l'allemand ; | * le W est très mal placé sur la disposition Bépo : ce n'est pas gênant pour le français, mais c'est rédhibitoire pour la prog, l'anglais ou l'allemand ; | ||
* le Z, très courant en allemand, est lui aussi mal placé sur la disposition courante ; | * le Z, très courant en allemand, est lui aussi mal placé sur la disposition courante ; | ||
* les digrammes </ et />, très courants de nos jours (HTML/XML), sont particulièrement pénibles — ce qui est d'autant plus regrettable qu'ils sont très faciles sur un clavier Qwerty standard. | * les digrammes </ et />, très courants de nos jours (HTML/XML), sont particulièrement pénibles — ce qui est d'autant plus regrettable qu'ils sont très faciles sur un clavier Qwerty standard. | ||
Ligne 19 : | Ligne 12 : | ||
== Vers un « Bépo-international » : ''Bépow!'' == | == Vers un « Bépo-international » : ''Bépow!'' == | ||
=== Principe === | === Principe === | ||
Pour rendre le Bépo plus polyvalent sans casser toute la disposition : | |||
* on remplace l'accent circonflexe mort par un accent grave mort, ce qui permet de caser W et Z sous la main gauche ; | * on remplace l'accent circonflexe mort par un accent grave mort, ce qui permet de caser W et Z sous la main gauche ; | ||
* l'accent circonflexe mort prend la place de « Ù » en AltGr+{U} ; | * l'accent circonflexe mort prend la place de « Ù » en AltGr+{U}, le hatchek passe en Shift+AltGr+{U} ; | ||
* | * plutôt que de laisser W et Z en double, les accents morts ^ˇ¨˙ sont dupliqués en [^] et [$]. | ||
<center> | |||
┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────╔════════╗ | |||
│ # │ 1 „│ 2 ”│ 3 ”│ 4 │ 5 ║ 6 │ 7 │ 8 │ 9 │ 0 │ ^ │ ` ║ ║ | |||
│ $ │ " —│ « <│ » >│ ( [│ ) ]║ @ │ + │ - │ / │ * │ = │ % ║ <-- ║ | |||
╔════╧══╗─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─╚══╦═════╣ | |||
║ |<- ║ B │ É │ P │ O │ {{B|W}} ║ ! │ V │ D │ L │ J │ {{R|ˇ}} │ {{R|˙}} ║ | ║ | |||
║ ->| ║ |│ │ &│ œ│ {{R|˘}}║ {{R|`}} │ │ │ │ │ {{R|^}} │ {{R|¨}} ║ <-' ║ | |||
╠═══════╩╗───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───╚╗ ║ | |||
║ ║ A │ U │ I │ E │ ; ║ C │ T │ S │ R │ N │ M │ Ç ║ ║ | |||
║ CAPS ║ æ│ {{R|^}}│ {{R|¨}}│ €│ , ║ │ │ │ │ │ │ ║ ║ | |||
╠══════╦═╝──┬─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴──┬─┴──╔═╧════╩════╣ | |||
║ ^ ║ Ê │ {{B|Z}} │ Y │ X │ : │ K ║ ? │ Q │ G │ H │ F ║ ^ ║ | |||
║ | ║ /│ \│ {│ }│ . …│ ~║ ' │ │ │ │ ║ | ║ | |||
╠══════╩╦═══╧══╦═╧═══╦╧════╧════╧════╧════╧════╧═╦══╧══╦═╧════╬═════╦═════╣ | |||
║ ║ ║ ║ Espace insécable ║ ║ ║ ║ ║ | |||
║ Ctrl ║ WinG ║ Alt ║ Espace _ ║AltGr║ WinD ║WinM ║Ctrl ║ | |||
╚═══════╩══════╩═════╩═══════════════════════════╩═════╩══════╩═════╩═════╝ | |||
</center> | |||
C'est le minimum pour utiliser le fr-dvorak-bépo en anglais ou en allemand. | |||
=== Fichier XKB === | |||
On peut se créer très facilement une telle variante Bépo-intl en ajoutant une section dans le fichier xkb : | |||
<pre class="xkb"><nowiki> | |||
// fr-dvorak-bepo-intl | |||
partial alphanumeric_keys | |||
xkb_symbols "bepo-intl" { | |||
include "fr(bepo)" | |||
// guillemets | |||
key <AE01> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ quotedbl , 1 , emdash , doublelowquotemark ] }; // " 1 — „ | |||
key <AE02> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ guillemotleft , 2 , less , leftdoublequotemark ] }; // « 2 < “ | |||
key <AE03> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ guillemotright , 3 , greater , rightdoublequotemark ] }; // » 3 > ” | |||
// accents morts : circonflexe et grave | |||
key <AD06> { type[group1] = "FOUR_LEVEL", [ dead_grave , exclam , VoidSymbol , exclamdown ] }; // ` ! ¡ | |||
key <AC02> { type[group1] = "FOUR_LEVEL", [ u , U , dead_circumflex , dead_caron ] }; // u U ^ | |||
// accents morts en double sous {W} et {Z} | |||
key <AD11> { type[group1] = "FOUR_LEVEL", [ dead_circumflex , dead_caron , schwa , SCHWA ] }; // ^ ˇ ə Ə | |||
key <AD12> { type[group1] = "FOUR_LEVEL", [ dead_diaeresis , dead_abovedot , dead_breve , VoidSymbol ] }; // ¨ ¨ ¨ | |||
// W et Z sous la main gauche | |||
key <AD05> { type[group1] = "FOUR_LEVEL", [ w , W , dead_breve , VoidSymbol ] }; // w W ˘ | |||
key <AB01> { type[group1] = "FOUR_LEVEL", [ z , Z , backslash , VoidSymbol ] }; // z Z \ | |||
}; | |||
</nowiki></pre> | |||
La disposition est alors activée comme suit : | |||
setxkbmap fr -variant bepo-intl | |||
=== Fichier xmodmap === | |||
Pour ceux qui préfèrent ce format, enregistrer le fichier suivant sous le nom bepow.map (par exemple) : | |||
<pre class="xkb"><nowiki> | |||
! accents morts : circonflexe et grave | |||
keycode 29 = dead_grave exclam VoidSymbol exclamdown VoidSymbol exclamdown | |||
keycode 39 = u U dead_circumflex dead_caron dead_circumflex dead_caron | |||
! accents morts en double sous {W} et {Z} | |||
keycode 34 = dead_circumflex dead_caron | |||
keycode 35 = dead_diaeresis dead_abovedot | |||
! W et Z sous la main gauche | |||
keycode 28 = w W dead_breve VoidSymbol dead_breve VoidSymbol | |||
keycode 54 = z Z braceright VoidSymbol braceright VoidSymbol | |||
</nowiki></pre> | |||
La disposition est alors activée comme suit : | |||
setxkbmap fr -variant bepo | |||
xmodmap bepow.map | |||
=== Avantages === | === Avantages === | ||
* bien meilleure compatibilité avec l'anglais, l'allemand et la prog ; | * bien meilleure compatibilité avec l'anglais, l'allemand et la prog ; | ||
* la | * meilleur équilibre de la charge des doigts en français (réduction de la charge de l'index gauche) ; | ||
* le digramme « où » est facilité ; | * le digramme « où » est facilité ; | ||
* deux places en AltGr+{W} et AltGr+{!}, et on pourrait aussi utiliser [^$] pour d'autres caractères ; | |||
* meilleure cohérence des diacritiques. | * meilleure cohérence des diacritiques. | ||
=== Inconvénient === | === Inconvénient === | ||
* légère perte d'efficacité pour le français puisque | * légère perte d'efficacité pour le français puisque « È » et « À » requièrent désormais une touche morte. | ||
Je pense que c'est très largement compensé par le gain de polyvalence… mais tout dépend évidemment de l'usage de chacun. | Je pense que c'est très largement compensé par le gain de polyvalence… mais tout dépend évidemment de l'usage de chacun. | ||
== Variante sans {Ç} ni {Ê} == | == Variante « développeur » == | ||
=== Principe === | |||
Sur la base de la version initiale : | |||
* on passe les crochets en AltGr+{U/I} ; | |||
* les crochets < > remplacent les guillemets « » : | |||
** ça facilite beaucoup les digrammes </ et /> ; | |||
** c'est plus cohérent : tous les guillemets typographiques passent en AltGr ; | |||
** ça ne gêne pas au quotidien, puisque les traitements de texte savent remplacer le guillemet droit (") par la version typographique correspondant à la langue du document — en ajoutant l'espace insécable si besoin est ; | |||
* il reste deux places libres supplémentaires en AltGr+{4-5}. | |||
<center> | |||
┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────╔════════╗ | |||
│ # │ 1 „│ 2 ”│ 3 ”│ 4 │ 5 ║ 6 │ 7 │ 8 │ 9 │ 0 │ ^ │ ` ║ ║ | |||
│ $ │ " —│ {{B|<}} {{B|«}}│ {{B|>}} {{B|»}}│ ( │ ) ║ @ │ + │ - │ / │ * │ = │ % ║ <-- ║ | |||
╔════╧══╗─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─╚══╦═════╣ | |||
║ |<- ║ B │ É │ P │ O │ {{B|W}} ║ ! │ V │ D │ L │ J │ {{R|ˇ}} │ {{R|˙}} ║ | ║ | |||
║ ->| ║ |│ {{R|´}}│ &│ œ│ ║ {{R|`}} │ │ │ │ │ {{R|^}} │ {{R|¨}} ║ <-' ║ | |||
╠═══════╩╗───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───╚╗ ║ | |||
║ ║ A │ U │ I │ E │ ; ║ C │ T │ S │ R │ N │ M │ Ç ║ ║ | |||
║ CAPS ║ æ│ {{B|[}}│ {{B|]}}│ €│ , ║ │ │ │ │ │ │ ║ ║ | |||
╠══════╦═╝──┬─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴──┬─┴──╔═╧════╩════╣ | |||
║ ^ ║ Ê │ {{B|Z}} │ Y │ X │ : │ K ║ ? │ Q │ G │ H │ F ║ ^ ║ | |||
║ | ║ /│ \│ {│ }│ . …│ ~║ ' │ │ │ │ ║ | ║ | |||
╠══════╩╦═══╧══╦═╧═══╦╧════╧════╧════╧════╧════╧═╦══╧══╦═╧════╬═════╦═════╣ | |||
║ ║ ║ ║ Espace insécable ║ ║ ║ ║ ║ | |||
║ Ctrl ║ WinG ║ Alt ║ Espace _ ║AltGr║ WinD ║WinM ║Ctrl ║ | |||
╚═══════╩══════╩═════╩═══════════════════════════╩═════╩══════╩═════╩═════╝ | |||
</center> | |||
=== Fichier XKB === | |||
<pre class="xkb"><nowiki> | |||
// fr-dvorak-bepo-intl-dev | |||
partial alphanumeric_keys | |||
xkb_symbols "bepo-intl-dev" { | |||
include "fr(bepo)" | |||
name[Group1]= "French (Bepow, ergonomic, Dvorak way)"; | |||
// chevrons et guillemets | |||
key <AE01> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ quotedbl , 1 , emdash , doublelowquotemark ] }; // " 1 — „ | |||
key <AE02> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ less , 2 , guillemotleft , leftdoublequotemark ] }; // < 2 « “ | |||
key <AE03> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ greater , 3 , guillemotright , rightdoublequotemark ] }; // > 3 » ” | |||
// accent grave mort | |||
key <AD06> { type[group1] = "FOUR_LEVEL", [ dead_grave , exclam , VoidSymbol , exclamdown ] }; // ` ! ¡ | |||
// crochets | |||
key <AC02> { type[group1] = "FOUR_LEVEL", [ u , U , bracketleft , VoidSymbol ] }; // u U [ | |||
key <AC03> { type[group1] = "FOUR_LEVEL", [ i , I , bracketright , VoidSymbol ] }; // u U [ | |||
// accents morts en double sous {W} et {Z} | |||
key <AD11> { type[group1] = "FOUR_LEVEL", [ dead_circumflex , dead_caron , schwa , SCHWA ] }; // ^ ˇ ə Ə | |||
key <AD12> { type[group1] = "FOUR_LEVEL", [ dead_diaeresis , dead_abovedot , dead_breve , VoidSymbol ] }; // ¨ ˇ ˘ | |||
// W et Z sous la main gauche | |||
key <AD05> { type[group1] = "FOUR_LEVEL", [ w , W , dead_breve , VoidSymbol ] }; // w W ˘ | |||
key <AB01> { type[group1] = "FOUR_LEVEL", [ z , Z , backslash , VoidSymbol ] }; // z Z \ | |||
}; | |||
</nowiki></pre> | |||
La disposition est alors activée comme suit : | |||
setxkbmap fr -variant bepo-intl-dev | |||
=== Avantages === | |||
* les crochets [] gagnent beaucoup en accessibilité (programmation, wiki…) ; | |||
* les accents circonflexe et tréma sont plus faciles à utiliser, non seulement pour le français, mais aussi pour l'allemand (umlauts). | |||
=== Inconvénients === | |||
Je cherche encore… Ce n'est pas parfait mais c'est une amélioration très nette pour la prog, l'anglais, l'allemand, ou l'édition de wikis, sans gros impact sur le français — voire même, je le trouve plus confortable pour le français, car j'ai horreur d'utiliser AltGr pour les caractères accentués (ù) ou les diacritiques morts : mon pouce n'est pas assez rapide pour lâcher AltGr à temps quand je tape vite. | |||
Bref, ça rend le bépo compatible avec mon utilisation. | |||
== Variante « traducteur », sans {Ç} ni {Ê} == | |||
=== Principe === | === Principe === | ||
* Ç passe en AltGr+{,} pour libérer une touche à droite et contribuer à alléger la charge de l'auriculaire ; | * Ç passe en AltGr+{,} pour libérer une touche à droite et contribuer à alléger la charge de l'auriculaire ; | ||
Ligne 64 : | Ligne 173 : | ||
** ça ne symétrise pas les modifieurs, mais ça reste bien plus agréable pour accéder à la couche AltGr de la moitié droite du clavier ; | ** ça ne symétrise pas les modifieurs, mais ça reste bien plus agréable pour accéder à la couche AltGr de la moitié droite du clavier ; | ||
** c'est applicable proprement sous toutes les plate-formes, contrairement au fait de redéfinir une touche Win ou Alt en AltGr : sous Windows™ et MacOS c'est une touche morte comme une autre, sous Linux cela correspond à ISO_Level3_Latch ; | ** c'est applicable proprement sous toutes les plate-formes, contrairement au fait de redéfinir une touche Win ou Alt en AltGr : sous Windows™ et MacOS c'est une touche morte comme une autre, sous Linux cela correspond à ISO_Level3_Latch ; | ||
* | ** Shift+{◻} pourrait être utilisé pour Compose (à vérifier) ; | ||
* les guillemets anglais de second niveau passent en Shift+AltGr+[4-5] ; | |||
│ # | * ¡¿ passent en AltGr+{!?}, c'est plus simple qu'en Shift+AltGr. | ||
│ $ | <center> | ||
┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────╔════════╗ | |||
│ # │ 1 {{B|„}}│ 2 {{B|”}}│ 3 {{B|”}}│ 4 {{B|‘}}│ 5 {{B|’}}║ 6 │ 7 │ 8 │ 9 │ 0 │ ^ │ ` ║ ║ | |||
│ $ │ " —│ « <│ » >│ ( [│ ) ]║ @ │ + │ - │ / │ * │ = │ % ║ <-- ║ | |||
╔════╧══╗─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─╚══╦═════╣ | |||
║ |<- ║ B │ É │ P │ O │ {{B|W}} ║ ! │ V │ D │ L │ J │ │ ║ | ║ | |||
║ ->| ║ |│ │ &│ œ│ ║ {{R|`}} {{B|¡}}│ │ │ │ │ │ ║ <-' ║ | |||
╠═══════╩╗───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───╚╗ ║ | |||
║ ║ A │ U │ I │ E │ ; ║ C │ T │ S │ R │ N │ M │ ║ ║ | |||
║ CAPS ║ æ│ {{R|^}}│ {{R|¨}}│ €│ , {{B|ç}}║ │ │ │ │ │ │ ║ ║ | |||
╠══════╦═╝──┬─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴──┬─┴──╔═╧════╩════╣ | |||
║ ^ ║ │ {{B|Z}} │ Y │ X │ : │ K ║ ? │ Q │ G │ H │ F ║ ^ ║ | |||
║ | ║ {{R|◻}} │ \│ {│ }│ . …│ ~║ ' {{B|¿}}│ │ │ │ ║ | ║ | |||
╠══════╩╦═══╧══╦═╧═══╦╧════╧════╧════╧════╧════╧═╦══╧══╦═╧════╬═════╦═════╣ | |||
║ ║ ║ ║ Espace insécable ║ ║ ║ ║ ║ | |||
║ Ctrl ║ WinG ║ Alt ║ Espace _ ║AltGr║ WinD ║WinM ║Ctrl ║ | |||
╚═══════╩══════╩═════╩═══════════════════════════╩═════╩══════╩═════╩═════╝ | |||
</center> | |||
=== Avantages === | === Avantages === | ||
* encore plus polyvalent pour les langues étrangères : | * encore plus polyvalent pour les langues étrangères : | ||
** les | ** les trois touches libres à droite peuvent contenir 6 symboles ou diacritiques morts, 12 avec AltGr ; | ||
** les caractères en AltGr + [main droite] sont accessibles via la touche AltGr morte ; | ** les caractères en AltGr + [main droite] sont accessibles via la touche AltGr morte ; | ||
* réduction (sensible ?) de la charge des auriculaires, « Ê » et « Ç » n'étant plus sur ces doigts-là. | * sur un clavier pc104, « Ç » est plus facile d'accès ; | ||
* réduction (sensible ?) de la charge des auriculaires en français, « Ê » et « Ç » n'étant plus sur ces doigts-là. | |||
=== Inconvénients === | === Inconvénients === | ||
Ligne 96 : | Ligne 210 : | ||
Par souci de cohérence, « Ç » pourrait être en AltGr+{C} plutôt qu'en AltGr+{,}, puisqu'on dispose désormais d'une touche AltGr morte (du moins, sur les claviers pc104) ; le principal défaut serait que les digrammes « aç » comporteraient une répétition de l'auriculaire gauche. | Par souci de cohérence, « Ç » pourrait être en AltGr+{C} plutôt qu'en AltGr+{,}, puisqu'on dispose désormais d'une touche AltGr morte (du moins, sur les claviers pc104) ; le principal défaut serait que les digrammes « aç » comporteraient une répétition de l'auriculaire gauche. | ||
=== | === Version Némolivier (chiffres en direct, « - » plus accessible) === | ||
Sur la même base de travail, la version de [[Utilisateur:Nemolivier|NémOlivier]], avec le xkb [[Utilisateur:Nemolivier#B.C3.A9po_.C2.AB.C2.A0intl.C2.A0.C2.BB|ici.]] | Sur la même base de travail, la version de [[Utilisateur:Nemolivier|NémOlivier]], avec le xkb [[Utilisateur:Nemolivier#B.C3.A9po_.C2.AB.C2.A0intl.C2.A0.C2.BB|ici.]] | ||
│ # | <pre> | ||
╭─────╮ ╭─────┬─────┬─────┬─────┬─────╮ ╭─────┬─────┬─────┬─────┬─────╮ ╭─────┬─────╮ | |||
│ # ¶ │ │ " „ │ < “ │ > ”│ ( │ ) │ │ [ │ ] ¼ │ / ½ │ * ¾ │ = ¬ │ │ ° │ ` │ | |||
│ $ – │ │ 1 @ │ 2 « │ 3 »│ 4 │ 5 │ │ 6 ^ │ 7 │ 8 ÷ │ 9 × │ 0 ≠ │ │ + ± │ % ‰ │ | |||
╰─────╯ ├─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┤ | |||
│ B │ É │ P § │ O Œ │ W │ │ ! ¡ │ V │ D │ L │ J │ │ K │comp.│ | |||
│ | │ ´ │ & │ │ ˘ │ │ ` ˇ │ │ │ / │ │ │ │' │ | |||
├─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┤ ├─────┼─────╯ | |||
│ A Æ │ U ˙ │ I ˇ │ E ¤ │ ; Ç │ │ C │ T │ S │ R ™ │ N º │ │ M │ ╭-----╮ | |||
│ │ ¨ │ ^ │ € │ , │ │ © │ þ │ ß │ ® │ ~ │ │ │ ¦ ç ¦ | |||
╭-----╮ ├─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┤ ╰─────╯ ¦Esc ¦ | |||
¦ Ê ¦ │ Z │ Y ‘ │ X ’ │ : │ — │ │ ? ¿ │ Q │ G │ H │ F │ ╰-----╯ | |||
¦ ¦ │ \ │ { │ } │ . … │ - ~ │ │ ’ ' │ ° │ µ │ │ │ | |||
╰-----╯ ╰─────┴─────┴─────┴─────┴─────╯ ╰─────┴─────┴─────┴─────┴─────╯ | |||
╭───────┬─────────────────────────┬───────╮ | |||
│ Alt │ │ AltGr │ | |||
│ │ _ │ │ | |||
╰───────┴─────────────────────────┴───────╯ | |||
</pre> | |||
== Des chiffres == | == Des chiffres == |
Dernière version du 1 juin 2016 à 11:28
Le Bépo ne me convenant pas pour la prog, l'anglais ou l'allemand, je teste quelques modifs.
Problème constaté
- le W est très mal placé sur la disposition Bépo : ce n'est pas gênant pour le français, mais c'est rédhibitoire pour la prog, l'anglais ou l'allemand ;
- le Z, très courant en allemand, est lui aussi mal placé sur la disposition courante ;
- les digrammes </ et />, très courants de nos jours (HTML/XML), sont particulièrement pénibles — ce qui est d'autant plus regrettable qu'ils sont très faciles sur un clavier Qwerty standard.
En l'état, je trouve le Bépo moins adapté à la prog que l'antique Qwerty ou même l'Azerty (moyennant une petite adaptation de la couche AltGr pour avoir les accolades et les crochets sous la main gauche).
Par ailleurs, je doute fortement qu'une disposition ergonomique limitée au français puisse susciter un engouement général. Développer une disposition de clavier c'est bien, mais c'est encore mieux si elle peut être largement utilisée.
Vers un « Bépo-international » : Bépow!
Principe
Pour rendre le Bépo plus polyvalent sans casser toute la disposition :
- on remplace l'accent circonflexe mort par un accent grave mort, ce qui permet de caser W et Z sous la main gauche ;
- l'accent circonflexe mort prend la place de « Ù » en AltGr+{U}, le hatchek passe en Shift+AltGr+{U} ;
- plutôt que de laisser W et Z en double, les accents morts ^ˇ¨˙ sont dupliqués en [^] et [$].
┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────╔════════╗ │ # │ 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 │ Ç ║ ║ ║ CAPS ║ æ│ ^│ ¨│ €│ , ║ │ │ │ │ │ │ ║ ║ ╠══════╦═╝──┬─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴──┬─┴──╔═╧════╩════╣ ║ ^ ║ Ê │ Z │ Y │ X │ : │ K ║ ? │ Q │ G │ H │ F ║ ^ ║ ║ | ║ /│ \│ {│ }│ . …│ ~║ ' │ │ │ │ ║ | ║ ╠══════╩╦═══╧══╦═╧═══╦╧════╧════╧════╧════╧════╧═╦══╧══╦═╧════╬═════╦═════╣ ║ ║ ║ ║ Espace insécable ║ ║ ║ ║ ║ ║ Ctrl ║ WinG ║ Alt ║ Espace _ ║AltGr║ WinD ║WinM ║Ctrl ║ ╚═══════╩══════╩═════╩═══════════════════════════╩═════╩══════╩═════╩═════╝
C'est le minimum pour utiliser le fr-dvorak-bépo en anglais ou en allemand.
Fichier XKB
On peut se créer très facilement une telle variante Bépo-intl en ajoutant une section dans le fichier xkb :
// fr-dvorak-bepo-intl partial alphanumeric_keys xkb_symbols "bepo-intl" { include "fr(bepo)" // guillemets key <AE01> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ quotedbl , 1 , emdash , doublelowquotemark ] }; // " 1 — „ key <AE02> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ guillemotleft , 2 , less , leftdoublequotemark ] }; // « 2 < “ key <AE03> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ guillemotright , 3 , greater , rightdoublequotemark ] }; // » 3 > ” // accents morts : circonflexe et grave key <AD06> { type[group1] = "FOUR_LEVEL", [ dead_grave , exclam , VoidSymbol , exclamdown ] }; // ` ! ¡ key <AC02> { type[group1] = "FOUR_LEVEL", [ u , U , dead_circumflex , dead_caron ] }; // u U ^ // accents morts en double sous {W} et {Z} key <AD11> { type[group1] = "FOUR_LEVEL", [ dead_circumflex , dead_caron , schwa , SCHWA ] }; // ^ ˇ ə Ə key <AD12> { type[group1] = "FOUR_LEVEL", [ dead_diaeresis , dead_abovedot , dead_breve , VoidSymbol ] }; // ¨ ¨ ¨ // W et Z sous la main gauche key <AD05> { type[group1] = "FOUR_LEVEL", [ w , W , dead_breve , VoidSymbol ] }; // w W ˘ key <AB01> { type[group1] = "FOUR_LEVEL", [ z , Z , backslash , VoidSymbol ] }; // z Z \ };
La disposition est alors activée comme suit :
setxkbmap fr -variant bepo-intl
Fichier xmodmap
Pour ceux qui préfèrent ce format, enregistrer le fichier suivant sous le nom bepow.map (par exemple) :
! accents morts : circonflexe et grave keycode 29 = dead_grave exclam VoidSymbol exclamdown VoidSymbol exclamdown keycode 39 = u U dead_circumflex dead_caron dead_circumflex dead_caron ! accents morts en double sous {W} et {Z} keycode 34 = dead_circumflex dead_caron keycode 35 = dead_diaeresis dead_abovedot ! W et Z sous la main gauche keycode 28 = w W dead_breve VoidSymbol dead_breve VoidSymbol keycode 54 = z Z braceright VoidSymbol braceright VoidSymbol
La disposition est alors activée comme suit :
setxkbmap fr -variant bepo xmodmap bepow.map
Avantages
- bien meilleure compatibilité avec l'anglais, l'allemand et la prog ;
- meilleur équilibre de la charge des doigts en français (réduction de la charge de l'index gauche) ;
- le digramme « où » est facilité ;
- deux places en AltGr+{W} et AltGr+{!}, et on pourrait aussi utiliser [^$] pour d'autres caractères ;
- meilleure cohérence des diacritiques.
Inconvénient
- légère perte d'efficacité pour le français puisque « È » et « À » requièrent désormais une touche morte.
Je pense que c'est très largement compensé par le gain de polyvalence… mais tout dépend évidemment de l'usage de chacun.
Variante « développeur »
Principe
Sur la base de la version initiale :
- on passe les crochets en AltGr+{U/I} ;
- les crochets < > remplacent les guillemets « » :
- ça facilite beaucoup les digrammes </ et /> ;
- c'est plus cohérent : tous les guillemets typographiques passent en AltGr ;
- ça ne gêne pas au quotidien, puisque les traitements de texte savent remplacer le guillemet droit (") par la version typographique correspondant à la langue du document — en ajoutant l'espace insécable si besoin est ;
- il reste deux places libres supplémentaires en AltGr+{4-5}.
┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────╔════════╗ │ # │ 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 │ Ç ║ ║ ║ CAPS ║ æ│ [│ ]│ €│ , ║ │ │ │ │ │ │ ║ ║ ╠══════╦═╝──┬─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴──┬─┴──╔═╧════╩════╣ ║ ^ ║ Ê │ Z │ Y │ X │ : │ K ║ ? │ Q │ G │ H │ F ║ ^ ║ ║ | ║ /│ \│ {│ }│ . …│ ~║ ' │ │ │ │ ║ | ║ ╠══════╩╦═══╧══╦═╧═══╦╧════╧════╧════╧════╧════╧═╦══╧══╦═╧════╬═════╦═════╣ ║ ║ ║ ║ Espace insécable ║ ║ ║ ║ ║ ║ Ctrl ║ WinG ║ Alt ║ Espace _ ║AltGr║ WinD ║WinM ║Ctrl ║ ╚═══════╩══════╩═════╩═══════════════════════════╩═════╩══════╩═════╩═════╝
Fichier XKB
// fr-dvorak-bepo-intl-dev partial alphanumeric_keys xkb_symbols "bepo-intl-dev" { include "fr(bepo)" name[Group1]= "French (Bepow, ergonomic, Dvorak way)"; // chevrons et guillemets key <AE01> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ quotedbl , 1 , emdash , doublelowquotemark ] }; // " 1 — „ key <AE02> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ less , 2 , guillemotleft , leftdoublequotemark ] }; // < 2 « “ key <AE03> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ greater , 3 , guillemotright , rightdoublequotemark ] }; // > 3 » ” // accent grave mort key <AD06> { type[group1] = "FOUR_LEVEL", [ dead_grave , exclam , VoidSymbol , exclamdown ] }; // ` ! ¡ // crochets key <AC02> { type[group1] = "FOUR_LEVEL", [ u , U , bracketleft , VoidSymbol ] }; // u U [ key <AC03> { type[group1] = "FOUR_LEVEL", [ i , I , bracketright , VoidSymbol ] }; // u U [ // accents morts en double sous {W} et {Z} key <AD11> { type[group1] = "FOUR_LEVEL", [ dead_circumflex , dead_caron , schwa , SCHWA ] }; // ^ ˇ ə Ə key <AD12> { type[group1] = "FOUR_LEVEL", [ dead_diaeresis , dead_abovedot , dead_breve , VoidSymbol ] }; // ¨ ˇ ˘ // W et Z sous la main gauche key <AD05> { type[group1] = "FOUR_LEVEL", [ w , W , dead_breve , VoidSymbol ] }; // w W ˘ key <AB01> { type[group1] = "FOUR_LEVEL", [ z , Z , backslash , VoidSymbol ] }; // z Z \ };
La disposition est alors activée comme suit :
setxkbmap fr -variant bepo-intl-dev
Avantages
- les crochets [] gagnent beaucoup en accessibilité (programmation, wiki…) ;
- les accents circonflexe et tréma sont plus faciles à utiliser, non seulement pour le français, mais aussi pour l'allemand (umlauts).
Inconvénients
Je cherche encore… Ce n'est pas parfait mais c'est une amélioration très nette pour la prog, l'anglais, l'allemand, ou l'édition de wikis, sans gros impact sur le français — voire même, je le trouve plus confortable pour le français, car j'ai horreur d'utiliser AltGr pour les caractères accentués (ù) ou les diacritiques morts : mon pouce n'est pas assez rapide pour lâcher AltGr à temps quand je tape vite.
Bref, ça rend le bépo compatible avec mon utilisation.
Variante « traducteur », sans {Ç} ni {Ê}
Principe
- Ç passe en AltGr+{,} pour libérer une touche à droite et contribuer à alléger la charge de l'auriculaire ;
- {Ê} est remplacé par une touche AltGr mort (◻), afin d'accéder plus facilement aux caractères spéciaux de la moitié droite du clavier :
- ça ne symétrise pas les modifieurs, mais ça reste bien plus agréable pour accéder à la couche AltGr de la moitié droite du clavier ;
- c'est applicable proprement sous toutes les plate-formes, contrairement au fait de redéfinir une touche Win ou Alt en AltGr : sous Windows™ et MacOS c'est une touche morte comme une autre, sous Linux cela correspond à ISO_Level3_Latch ;
- Shift+{◻} pourrait être utilisé pour Compose (à vérifier) ;
- les guillemets anglais de second niveau passent en Shift+AltGr+[4-5] ;
- ¡¿ passent en AltGr+{!?}, c'est plus simple qu'en Shift+AltGr.
┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────╔════════╗ │ # │ 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 │ ║ ║ ║ CAPS ║ æ│ ^│ ¨│ €│ , ç║ │ │ │ │ │ │ ║ ║ ╠══════╦═╝──┬─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴──┬─┴──╔═╧════╩════╣ ║ ^ ║ │ Z │ Y │ X │ : │ K ║ ? │ Q │ G │ H │ F ║ ^ ║ ║ | ║ ◻ │ \│ {│ }│ . …│ ~║ ' ¿│ │ │ │ ║ | ║ ╠══════╩╦═══╧══╦═╧═══╦╧════╧════╧════╧════╧════╧═╦══╧══╦═╧════╬═════╦═════╣ ║ ║ ║ ║ Espace insécable ║ ║ ║ ║ ║ ║ Ctrl ║ WinG ║ Alt ║ Espace _ ║AltGr║ WinD ║WinM ║Ctrl ║ ╚═══════╩══════╩═════╩═══════════════════════════╩═════╩══════╩═════╩═════╝
Avantages
- encore plus polyvalent pour les langues étrangères :
- les trois touches libres à droite peuvent contenir 6 symboles ou diacritiques morts, 12 avec AltGr ;
- les caractères en AltGr + [main droite] sont accessibles via la touche AltGr morte ;
- sur un clavier pc104, « Ç » est plus facile d'accès ;
- réduction (sensible ?) de la charge des auriculaires en français, « Ê » et « Ç » n'étant plus sur ces doigts-là.
Inconvénients
- perte d'efficacité pour le français, « Ê » et « Ç » n'étant plus accessible directement ;
- AltGr pour les caractères accentués français (Ç), c'est nul.
L'accent circonflexe mort pourrait aussi être placé en AltGr+{E} afin de faciliter « ê » sur les claviers pc104, mais il faudrait alors faire « € » avec la touche monétaire morte.
Par souci de cohérence, « Ç » pourrait être en AltGr+{C} plutôt qu'en AltGr+{,}, puisqu'on dispose désormais d'une touche AltGr morte (du moins, sur les claviers pc104) ; le principal défaut serait que les digrammes « aç » comporteraient une répétition de l'auriculaire gauche.
Version Némolivier (chiffres en direct, « - » plus accessible)
Sur la même base de travail, la version de NémOlivier, avec le xkb ici.
╭─────╮ ╭─────┬─────┬─────┬─────┬─────╮ ╭─────┬─────┬─────┬─────┬─────╮ ╭─────┬─────╮ │ # ¶ │ │ " „ │ < “ │ > ”│ ( │ ) │ │ [ │ ] ¼ │ / ½ │ * ¾ │ = ¬ │ │ ° │ ` │ │ $ – │ │ 1 @ │ 2 « │ 3 »│ 4 │ 5 │ │ 6 ^ │ 7 │ 8 ÷ │ 9 × │ 0 ≠ │ │ + ± │ % ‰ │ ╰─────╯ ├─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┤ │ B │ É │ P § │ O Œ │ W │ │ ! ¡ │ V │ D │ L │ J │ │ K │comp.│ │ | │ ´ │ & │ │ ˘ │ │ ` ˇ │ │ │ / │ │ │ │' │ ├─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┤ ├─────┼─────╯ │ A Æ │ U ˙ │ I ˇ │ E ¤ │ ; Ç │ │ C │ T │ S │ R ™ │ N º │ │ M │ ╭-----╮ │ │ ¨ │ ^ │ € │ , │ │ © │ þ │ ß │ ® │ ~ │ │ │ ¦ ç ¦ ╭-----╮ ├─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┤ ╰─────╯ ¦Esc ¦ ¦ Ê ¦ │ Z │ Y ‘ │ X ’ │ : │ — │ │ ? ¿ │ Q │ G │ H │ F │ ╰-----╯ ¦ ¦ │ \ │ { │ } │ . … │ - ~ │ │ ’ ' │ ° │ µ │ │ │ ╰-----╯ ╰─────┴─────┴─────┴─────┴─────╯ ╰─────┴─────┴─────┴─────┴─────╯ ╭───────┬─────────────────────────┬───────╮ │ Alt │ │ AltGr │ │ │ _ │ │ ╰───────┴─────────────────────────┴───────╯
Des chiffres
Selon le corpus de Thomas Tempé (1 616 343 caractères) :
- à : 7449
- è : 4160
- ù : 890
=> total « accent grave mort » : 12 499, c'est-à-dire entre la fréquence de « G » et « H ».
Sur ce corpus, l'utilisation d'une touche morte augmente donc le nombre de frappes de 0,72 %. Cela me parait parfaitement acceptable, surtout si l'accent grave mort est bien placé : de ce coté-là, il serait intéressant de placer cet accent mort en [O] ou [P], comme le suggère Nbrodu en page de discussion.
Conclusion
Les suggestions ci-dessus ne sont pas « clés en main », il faudrait les évaluer et les affiner.
Quoiqu'il en soit, il n'y pas de solution miracle qui améliorerait à la fois le français, la prog et les autres langues. Je crois qu'il faut donc accepter une légère perte de performance pour le français afin de gagner en polyvalence, toute la question étant de trouver le bon compromis.