« Utilisateur:Legrostdg » : différence entre les versions

De Disposition de clavier bépo
 
(23 versions intermédiaires par le même utilisateur non affichées)
Ligne 5 : Ligne 5 :


===Keymap « de base »===
===Keymap « de base »===
J'ai adopté la version bépow. [[Utilisateur:Kaze/Bépo-int|Explications ici]].


Le w était vraiment trop loin et les '[' et ']' disponibles dans la même rangée que '{'-'}' et '<'-'>' je trouvait ça trop pratique. Les parenthèses en altgr+'é' et altgr+'p' ce serait selon moi royal, mais c'est vrai que le '´' est bien sur le é… Je n'ai pas encore trouvé de solution idéale. En tous cas, pour l'instant:
*'''w plus proche''' (alla bépow [[Utilisateur:Kaze/Bépo-int|Explications ici]]):


L'espace insécable est accessible en altgr+space et l'espace fine insécable en altgr+maj+space. space et maj+space donne une espace classique, je trouvais la combinaison "maj+space = espace" trop dangereuse pour la programmation. Pour l'instant le '_' est accessible en fn+space. Ce n'est pas super logique (le '_' c'est pas du « déplacement/édition ») mais bon… la couche « déplacement/édition » est aussi accessible que la couche altgr et la laisser quasiment vide serait un peu du gaspillage. Le mieux serait peut-être de caler le '_' ailleurs (mais où ? :-)). Ou alors utiliser un peu plus cette couche fn -> :-)
'''Finalement le bépow ne me plaît pas tellement:
"w" s'enchaîne souvent avec un "o" ou un "e" en anglais… et à è trop lourds à taper. À revoir'''.
 
Haha! J'ai trouvé une parade :) En échangeant "w" et "'/?" ça devrait être pas mal. Une nouvelle variante: le "BÉPO?" :-)
 
Les inconvénients:
**c'est vrai que è et à ça manque un peu… Mais bon c'était pareil avec le bépow :)
**une très bonne place "gâchée" par ce vieux w.
 
Les avantages de cette variante:
**le w est bien accessible
**"w"-"h" s'enchaîne bien, de même que "w"-"o", "w"-"e", "e"-"w" et "o"-"w". Bonne amélioration par rapport au bépow! 
**toute la ponctuation dans le même coin :)
 
Nouveau changement :-)
La place pour le w était peut-être un peu "trop" accessible (on aurait pu mettre une autre touche plus fréquente à la place).
 
Par exemple le f! descendre le petit doigt est vraiment horrible :) d'accord pour un z ou un w mais pas pour un f.
 
Échange "w"-"f".
 
*'''"["-"]" dans la même rangée que "{"-"}" et "<"-">"'''
 
Je trouvais ça trop pratique. Les parenthèses en altgr+'é' et altgr+'p' ce serait selon moi royal, mais c'est vrai que le '´' est bien sur le é… Je n'ai pas encore trouvé de solution idéale.
 
*'''"("-")" en "a"-"e"'''
( et ) sur des doigts différents, tous les {}[]()<> dans le même coin.
 
*"æ" sur "$"
æ est peu utile, ce qui n'est pas le cas de œ, (et de "(")
 
*'''"<"-">" en "é"-"p"'''
tous les {}[]()<> dans le même coin.
 
*les "«"-"»" sont accessibles à la place de <> avec la touche mode prog/français (maj gauche)
 
*"/" sur "," pour la prog
 
*"&"-"$"-"#" sur "t"-"s"-"r" pour la prog
 
*'''espace insécable en altgr+space''' et '''espace fine insécable en altgr+maj+space'''.
 
space et maj+space donnent une espace classique, je trouvais la combinaison "maj+space = espace" trop dangereuse pour la programmation.
 
Pour l'instant '''underscore est en fn+space'''. Ce n'est pas super logique (ce n'est pas du « déplacement/édition ») mais bon… la couche « déplacement/édition » est aussi accessible que la couche altgr et la laisser quasiment vide serait un peu du gaspillage. Le mieux serait peut-être de caler le '_' ailleurs (mais où ? :-)). Ou alors utiliser un peu plus cette couche fn -> :-)
 
*'''Ctrl droit et Compose inversés''': les touches Ctrl sont tout à fait inaccessibles sans lever la main. Un "dead_Compose" est accessible en Fn+','.
 
*'''Maj et ç inversés''' pour augmenter l'homogénéité avec l'autre maj (cela rend aussi la touche plus accessible à mon avis).
 
*'''retour de à et è'''
 
*''' ~ " ' ! ? en 1 2 3 4 5'''
rapproche "
~ devient accessible (ce qui n'est pas le cas du altgr + la touche B de l'azerty)
! et ? plus accessibles
« » inutiles ou presque donc en altgr
 
* thorn (le truc sur t, inutile si ce n'est pour les smileys), et euro (inutile aussi) giclent en compose (donc pas visibles ici).


Ctrl droit et Compose sont inversés: les touches Ctrl sont tout à fait inaccessibles sans lever la main. Un "dead_Compose" est accessible en Fn+','.
<center>
<center>
  ┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────╔═════════╗
  ┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────╔═════════╗
  │ # ¶│ 1 „│ 2 “│ 3 ”│ 4 ≤│ 5 ≥│ 6  ║ 7 ¬│ 8 ¼│ 9 ½│ 0 ¾│ ° ′│ ℝ ″║        ║
  │ Æ ¶│ 1 „│ 2 “│ 3 ”│ 4 5 6  ║ 7 ¬│ 8 ¼│ 9 ½│ 0 ¾│ ° ′│ ℝ ″║        ║
  │ $ –│ " —│ « <│ » >│ ( →│ ) ⇒│ @ ^║ + ±│ - −│ / ÷│ * ×│ = ≠│ % ‰║ <--    ║
  │ æ –│ ~ —│ " ≤│ ' ≥│ ! ¡│ ? ¿│ @ ^║ + ±│ - −│ / ÷│ * ×│ = ≠│ % ‰║ <--    ║
  ╔════╧══╗─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─╚══╦══════╣
  ╔════╧══╗─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─╚══╦══════╣
  ║  |<-  ║ B ¦│ É ˝│ P §│ O Œ│ W ! │ V  │ D Ð│ L  │ J IJ│ ˇ Ə│ ˙ ║  |  ║
  ║  |<-  ║ B ¦│ É ˝│ P §│ O Œ│ È ´ │ V  │ D Ð│ L  │ J IJ│ Z Ə│ K ║  |  ║
  ║  ->|  ║ b |│ é ´│ p &│ o œ│ ` ¡│ v ˇ│ d ð│ l /│ j ij│ ^ ə│ ¨ ˘║ <-'  ║
  ║  ->|  ║ b |│ é <│ p >│ o œ│ è `^ ´│ v ˇ│ d ð│ l /│ j ij│ z ə│ k ~║ <-'  ║
  ╠═══════╩╗───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───╚╗    ║
  ╠═══════╩╗───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───╚╗    ║
  ║        ║ A Æ│ U  │ I  │ E ¤│ ;  ║ C ſ│ T Þ│ S ß│ R  │ N M º│ Ç ,║    ║
  ║        ║ A U  │ I  │ E ¤│ ;  ║ C ſ│ T S ß│ R  │ N ˜│ M º│   ║    ║
  ║ Maj. ⇑ ║ a æ│ u [│ i ]│ e €│ , '║ c ©│ t þ│ s ß│ r ®│ n ˜│ m ¯│ ç ¸║     ║
  ║ Maj. ⇑ ║ a (│ u [│ i ]│ e )│ , /║ c ©│ t &│ s $│ r #│ n ~│ m ¯│Maj.║     ║
  ╠══════╦═╝──┬─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴──┬─┴──╔═╧════╩═════╣
  ╠══════╦═╝──┬─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴──┬─┴──╔═╧════╩═════╣
  ║ «»’  ║ Ê  │ Z │ Y ‘│ X ’│ : ·│ K ?  │ Q  │ G  │ H ‡│ F ª║    ^     ║
  ║ «»’  ║ Ê  │ À │ Y ‘│ X ’│ : ·│ ˙ F ª│ Q  │ G  │ H ‡│ W  ║  Ç ,     ║
  ║ <>'  ║ ê /│ z \│ y {│ x }│ . …│ k ~║ ’ ¿│ q °│ g µ│ h †│ f ˛║    |     ║
  ║ <>'  ║ ê /│ à \│ y {│ x }│ . …│ ¨ ˘║ f ˛│ q °│ g µ│ h †│ w ˘║  ç ¸     ║
  ╠══════╩╦═══╧══╦═╧═══╦╧════╧════╧════╧════╧════╧╦═══╧═╦══╧════╬═════╦══════╣
  ╠══════╩╦═══╧══╦═╧═══╦╧════╧════╧════╧════╧════╧╦═══╧═╦══╧════╬═════╦══════╣
  ║      ║      ║    ║ Espace  Fine Insécable  ║    ║      ║    ║ Com-
  ║      ║      ║    ║ Espace  Fine Insécable  ║    ║      ║    ║    
  ║ Ctrl  ║ Alt  ║ Fn ⇄║ Espace    Insécable    ║AltGr║ Ctrl ║WinM ║ pose
  ║ Ctrl  ║ Alt  ║ Fn ⇄║ Espace    Insécable    ║AltGr║Compose║WinM ║ Ctrl ║
  ╚═══════╩══════╩═════╩══════════════════════════╩═════╩═══════╩═════╩══════╝
  ╚═══════╩══════╩═════╩══════════════════════════╩═════╩═══════╩═════╩══════╝
</center>
</center>


===Fn « déplacement/édition » (et underscore)===
===Fn « déplacement/édition » (et underscore)===
* ←  ↓  ↑  →  sous les doigts à droite avec les positions usuelles sur vim.
*"deb", "pgdn", "pgup" et "fin" accessibles facilement (on notera l'homogégéité avec les flèches :)).
*"esc", "del", "bksp" et "entr" sous les doigts de la main gauche: trop bien. :)
*maj+insert (équivalent du clic scroll) en fn+p (p comme paste (en vim) ou comme prout (dans la vie de tous les jours))
*ctrl+p et ctrl+n (pour "précédent" et "suivant" dans plein de programmes) en haut des flèches haut et bas (peut-être pas top à cause du "d": supprimer en vim, du coup, ils sont aussi sur les guillemets).


<center>
<center>
  ┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────╔═════════╗
  ┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────╔═════════╗
  │    │    │    │    │    │    │    ║    │    │    │    │    │    ║        ║
  │    │    │ctl+│ctl+│    │    │    ║    │    │    │    │    │    ║        ║
  │    │    │     │    │    │    ║    │    │    │    │    │    ║ <--    ║
  │    │    │ │    │    │    ║    │    │    │    │    │    ║ <--    ║
  ╔════╧══╗─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─╚══╦══════╣
  ╔════╧══╗─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─╚══╦══════╣
  ║  |<-  ║dead│dead│dead│dead│    ║    │    │    │    │    │    │    ║  |  ║
  ║  |<-  ║dead│dead│maj+│dead│Com-║    │ctl+│ctl+│    │    │    │    ║  |  ║
  ║  ->|  ║ctrl│ maj│ alt│altg│    ║   │     │    │    │    │    ║ <-'  ║
  ║  ->|  ║ctrl│ maj│ ins│altg│pose║   │ │    │    │    │    ║ <-'  ║
  ╠═══════╩╗───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───╚╗    ║
  ╠═══════╩╗───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───╚╗    ║
  ║        ║    │    │    │    │Com-║    │    │    │    │    │    │    ║    ║
  ║        ║    │    │    │    │    ║    │    │    │    │    │    │    ║    ║
  ║ Maj. ⇑ ║ esc│ del│bksp│entr│pose│ ←  │ ↓  │ ↑  | →  │ esc│    │    ║    ║
  ║ Maj. ⇑ ║ esc│ del│bksp│entr│ins │ ←  │ ↓  │ ↑  | →  │ esc│    │Maj ║    ║
  ╠══════╦═╝──┬─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴──┬─┴──╔═╧════╩═════╣
  ╠══════╦═╝──┬─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴──┬─┴──╔═╧════╩═════╣
  ║ «»’  ║    │   │    │    │    │    ║    │    │    │    │    ║     ^     
  ║ «»’  ║dead│   │    │    │    │    ║    │    │    │    │    ║          
  ║ <>'  ║   │   │    │    │    │    ║ deb│pgdn│pgup│ fin│    ║     |     
  ║ <>'  ║ alt│   │    │    │    │    ║ deb│pgdn│pgup│ fin│    ║          
  ╠══════╩╦═══╧══╦═╧═══╦╧════╧════╧════╧════╧════╧╦═══╧═╦══╧════╬═════╦══════╣
  ╠══════╩╦═══╧══╦═╧═══╦╧════╧════╧════╧════╧════╧╦═══╧═╦══╧════╬═════╦══════╣
  ║      ║      ║    ║                          ║    ║      ║    ║      ║
  ║      ║      ║    ║                          ║    ║      ║    ║      ║
Ligne 51 : Ligne 113 :
  ╚═══════╩══════╩═════╩══════════════════════════╩═════╩═══════╩═════╩══════╝
  ╚═══════╩══════╩═════╩══════════════════════════╩═════╩═══════╩═════╩══════╝
</center>
</center>


===Des idées ?===
===Des idées ?===
Si vous avez des idées pour améliorer cette super couche « déplacement/édition » rajoutez-les ici !
Si vous avez des idées pour améliorer cette super couche « déplacement/édition » rajoutez-les ici !


===Mon projet « top secret »===
Mes problèmes majeurs sur les claviers traditionnels
*rangée des chiffres très peu accessible (voire inaccessible pour les @/6 */0 =/° %/` bépo)
*rangée F1, F2, … complètement inaccessible
*pouces inutilisés ou presque : la faute à la barre d'espace immense !
*f/F bépo difficilement accessible
*k/K (caca) bépo inaccessible
*les touches en traviolle
La solution miracle : tout remonter d'une rangée !
La position de repos se retrouve sur les "bépo" et "vdlj" actuels.
Le credo : utiliser au mieux les pouces et la rangée de repos.
*dans l'affaire on perd le ê/Ê mais bon… la touche était inaccessible, on a un accent mort (et puis on pourra éventuellement caller un ê/Ê ailleurs)
*les touches sont mieux placées : f/F k/K deviennent accessibles (ils se retrouvent respectivement sur le m et le g azerty -> le décallage est moins important (est-ce seulement sur mon portable ?)).
*rangée F1, F2, … accessible
*plein de couches avec les pouces : on utilise un peu mieux la puissance de la rangée de repos.
*les chiffres dans une de ces couches
*déplacement/édition dans une autre
*une touche « changer de couche » accents ?
*une touche « changer de couche » ponctuation ? avec les touches « prog » ?
*une touche « changer la couche » de bébé ? <- ouhhhh!
*…
Sans l'éliminer tout à fait (faut pas rêver) on réduit donc le problème des touches en diagonale !
On applique autant que possible le principe des couches.
Il faut faire attention au fait qu'on peut avoir tendance à ne pas relâcher la touche de changement de couche assez vite…
La touche espace est un peu en plein milieu… Il faut soit lever un peu les pouces, soit, pourquoi pas ?, virer matériellement la touche espace.
Un nom de code pour le moins trop laid pour cette variante : top-gueux-ne
*les mains vers le haut, c'est top,
*addressée aux gueux, c'est gueux,
*bim, bam, prout, les jeux de mots foireux, c'est top-gueux-ne.
À faire dès que j'aurai un peu plus de temps :-)


===Mon fichier .xkb===
===Mon fichier .xkb===


<pre class="xkb"><nowiki>
<pre class="xkb"><nowiki>
xkb_keymap        {
xkb_keymap        {


Ligne 84 : Ligne 183 :
         };
         };
         interpret F25 {
         interpret F25 {
             action = Redirect(Key=<I6D>, modifiers=Control); // ctrl-f
             action = Redirect(Key=<I6D>, modifiers=Mod1); // alt-f
         };
         };
         interpret F26 {
         interpret F26 {
Ligne 93 : Ligne 192 :
         };
         };
         interpret F28 {
         interpret F28 {
             action = Redirect(Key=<LEFT>, modifiers=Control); // ctrl-â†
             action = Redirect(Key=<I6C>, modifiers=Shift); // insert-shift
         };
         };
         interpret F29 {
         interpret F29 {
Ligne 100 : Ligne 199 :


         interpret F30 {
         interpret F30 {
             action = Redirect(Key=<I6F>, modifiers=Mod1); // Alt-Tab
             action = Redirect(Key=<I6F>, modifiers=Control); // ctrl-Tab
         };
         };
         interpret F31 {
         interpret F31 {
             action = Redirect(Key=<I71>, modifiers=Control); // ctrl-x
             action = Redirect(Key=<I71>, modifiers=Control); // ctrl-p
         };
         };
         interpret F32 {
         interpret F32 {
             action = Redirect(Key=<I72>, modifiers=Control); // ctrl-c
             action = Redirect(Key=<I72>, modifiers=Control); // ctrl-n
         };
         };
         interpret F33 {
         interpret F33 {
             action = Redirect(Key=<I73>, modifiers=Control); // ctrl-v
             action = Redirect(Key=<INS>, modifiers=Shift); // ctrl-v
         };
         };
         interpret F34 {
         interpret F34 {
Ligne 115 : Ligne 214 :
         };
         };
         interpret F35 {
         interpret F35 {
             action = Redirect(Key=<I75>, modifiers=Control); // ctrl-y
             action = Redirect(Key=<I75>, modifiers=Mod1); // alt-y
         };
         };


Ligne 127 : Ligne 226 :
include "pc(pc105)"
include "pc(pc105)"


key <TLDE> { type[group1] = "FOUR_LEVEL", [ dollar, numbersign, endash, paragraph ], overlay1 = <I70> }; // $ # – ¶
key <TLDE> { type[group1] = "FOUR_LEVEL", [ ae, AE, endash, paragraph ], overlay1 = <I70> }; // $ # – ¶
key <AE01> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ quotedbl, 1, emdash, doublelowquotemark ], overlay1 = <I70> }; // " 1 — „
key <AE01> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ asciitilde, 1, emdash, doublelowquotemark ], overlay1 = <I70> }; // ~ 1 — „
key <AE02> {
key <AE02> { type[group1] = "FOUR_LEVEL", [ quotedbl, 2, lessthanequal, leftdoublequotemark ], overlay1 = <I7A> }; // " 2  “
            type[group1] = "FOUR_LEVEL", [ guillemotleft, 2, less, leftdoublequotemark ], // « 2 < “
key <AE03> { type[group1] = "FOUR_LEVEL", [ apostrophe, 3, greaterthanequal, rightdoublequotemark ], overlay1 = <I7B> }; // ' 3  ”
                    type[group2] = "FOUR_LEVEL", [ less, 2, guillemotleft, leftdoublequotemark ], // < 2 « “
key <AE04> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ exclam, 4, exclamdown ], overlay1 = <I70> }; // ! ¡ 4
                    overlay1 = <I70>
key <AE05> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ question, 5, questiondown ], overlay1 = <I70> }; // ? ¿ 5
        };
key <AE06> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ at, 6, asciicircum ], overlay1 = <I70> }; // @ 6  
key <AE03> {
            type[group1] = "FOUR_LEVEL", [ guillemotright, 3, greater, rightdoublequotemark ], // » 3 > ”
                    type[group2] = "FOUR_LEVEL", [ greater, 3, guillemotright, rightdoublequotemark ], // > 3 » ”
                    overlay1 = <I70>
        };
key <AE04> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenleft, 4, U2192, lessthanequal ], overlay1 = <I70> }; // ( 4 → ≤
key <AE05> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenright, 5, U21D2, greaterthanequal ], overlay1 = <I70> }; // ) 5 ⇒ ≥
key <AE06> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ at, 6, asciicircum ], overlay1 = <I70> }; // @ 6 ^
key <AE07> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ plus, 7, plusminus, notsign ], overlay1 = <I70> }; // + 7 ± ¬
key <AE07> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ plus, 7, plusminus, notsign ], overlay1 = <I70> }; // + 7 ± ¬
key <AE08> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ minus, 8, U2212, onequarter ], overlay1 = <I70> }; // - 8 − ¼
key <AE08> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ minus, 8, U2212, onequarter ], overlay1 = <I70> }; // - 8 − ¼
Ligne 149 : Ligne 240 :
key <AE12> { type[group1] = "FOUR_LEVEL", [ percent, grave, U2030, seconds ], overlay1 = <I70> }; // % ` ‰
key <AE12> { type[group1] = "FOUR_LEVEL", [ percent, grave, U2030, seconds ], overlay1 = <I70> }; // % ` ‰
key <AD01> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ b, B, bar, brokenbar ], overlay1 = <FK13> }; // b B | ¦ dead_ctrl
key <AD01> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ b, B, bar, brokenbar ], overlay1 = <FK13> }; // b B | ¦ dead_ctrl
key <AD02> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ eacute, Eacute, dead_acute, dead_doubleacute ], overlay1 = <FK14> }; // é É ´ ˝ dead_shift
key <AD02> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ eacute, Eacute, less, dead_doubleacute ],         // é É < ˝
key <AD03> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ p, P, ampersand, section ], overlay1 = <FK15> }; // p P & § dead_alt
                    type[group2] = "FOUR_LEVEL_SEMIALPHABETIC", [ eacute, Eacute, guillemotleft, dead_doubleacute ], // é É « ˝
                    overlay1 = <FK14> };                                                                             // dead_shift
key <AD03> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ p, P, greater, section ],                          // p P > § 
                    type[group2] = "FOUR_LEVEL_SEMIALPHABETIC", [ p, P, guillemotright, section ],                   // p P » §
                    overlay1 = <I77> };                                                                             // insert-shift
key <AD04> { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ o, O, oe, OE ], overlay1 = <FK16> }; // o O œ Œ dead_altgr
key <AD04> { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ o, O, oe, OE ], overlay1 = <FK16> }; // o O œ Œ dead_altgr
//key <AD05> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ egrave, Egrave, dead_grave, grave ], }; // è È ` `
key <AD05> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ egrave, Egrave, dead_grave, grave ], overlay1 = <FK17>}; // è È ` ` compose
key <AD05> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ w, W, dead_breve ], overlay1 = <I70> }; // w W ˘
        //key <AD05> {
key <AD06> { type[group1] = "THREE_LEVEL", [ dead_grave, exclam, exclamdown ], overlay1 = <I70> }; // ` ! ¡
        //    type[group1] = "FOUR_LEVEL", [ apostrophe, question, questiondown, dead_hook ],          // ’ ? ¿ ̉
        //    type[group2] = "FOUR_LEVEL", [ rightsinglequotemark, question, questiondown, dead_hook ], // ' ? ¿ ̉
        //    overlay1 = <FK17>                                                                         // compose
        //};  
key <AD06> { type[group1] = "FOUR_LEVEL", [ dead_circumflex, dead_acute, dead_acute ], overlay1 = <I70> }; // ^
key <AD07> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ v, V, dead_caron ], overlay1 = <I70> }; // v V ˇ
key <AD07> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ v, V, dead_caron ], overlay1 = <I70> }; // v V ˇ
key <AD08> { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ d, D, eth, ETH ], overlay1 = <I70>}; // d D ð Ð
key <AD08> { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ d, D, eth, ETH ], overlay1 = <I7A>}; // d D ð Ð
key <AD09> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ l, L, UFDD0 ], overlay1 = <I70>}; // l L /
key <AD09> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ l, L, UFDD0 ], overlay1 = <I7B>}; // l L /
key <AD10> { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ j, J, U0133, U0132 ], overlay1 = <I70>}; // j J ij IJ
key <AD10> { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ j, J, U0133, U0132 ], overlay1 = <I70>}; // j J ij IJ
        key <AD11> { type[group1] = "FOUR_LEVEL", [ dead_circumflex, dead_caron, schwa, SCHWA ], overlay1 = <I70> }; // ^ ˇ ə Ə
key <AD11> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ z, Z, schwa, SCHWA ], overlay1 = <I70> }; // z Z ə Ə
        key <AD12> { type[group1] = "FOUR_LEVEL", [ dead_diaeresis, dead_abovedot, dead_breve, VoidSymbol ], overlay1 = <I70> }; // ¨ ˙ ˘
key <AD12> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ k, K, asciitilde, dead_tilde ], overlay1 = <I70> }; // k K ~
key <AC01> { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ a, A, ae, AE ], overlay1 = <ESC> }; // a A æ Æ escape
key <AC01> { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ a, A, parenleft ], overlay1 = <ESC> }; // a A ( escape
         key <AC02> { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ u, U, bracketleft ], overlay1 = <DELE> }; // u U [ delete
         key <AC02> { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ u, U, bracketleft ], overlay1 = <DELE> }; // u U [ delete
key <AC03> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ i, I, bracketright ], overlay1 = <BKSP> }; // i I ] backspace
key <AC03> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ i, I, bracketright ], overlay1 = <BKSP> }; // i I ] backspace
key <AC04> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ e, E, EuroSign, UFDD1 ], overlay1 = <RTRN> }; // e E ¤ return
key <AC04> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ e, E, parenright, UFDD1 ], overlay1 = <RTRN> }; // e E ) ¤ return
         key <AC05> {
         key <AC05> { type[group1] = "FOUR_LEVEL", [ comma, semicolon, slash, dead_horn  ],  overlay1 = <INS> };    // , ; / insert
            type[group1] = "FOUR_LEVEL", [ comma, semicolon, rightsinglequotemark, dead_horn  ], // , ; '
            type[group2] = "FOUR_LEVEL", [ comma, semicolon, apostrophe, dead_horn ],          // , ; ’
            overlay1 = <FK17>                                                                   // multi_key
        };
key <AC06> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ c, C, copyright, U017F ], overlay1 = <LEFT> }; // c C © ſ
key <AC06> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ c, C, copyright, U017F ], overlay1 = <LEFT> }; // c C © ſ
key <AC07> { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ t, T, thorn, THORN ], overlay1 = <DOWN> }; // t T þ Þ
key <AC07> { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ t, T, ampersand ], overlay1 = <DOWN> }; // t T þ Þ
key <AC08> { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ s, S, ssharp, U1E9E ], overlay1 = <UP> }; // s S ß
key <AC08> { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ s, S, dollar, ssharp ], overlay1 = <UP> }; // s S $ ß
key <AC09> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ r, R, registered, trademark ], overlay1 = <RGHT> }; // r R ®
key <AC09> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ r, R, numbersign, trademark ], overlay1 = <RGHT> }; // r R #
key <AC10> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ n, N, dead_tilde ], overlay1 = <ESC> }; // n N ~ escape
key <AC10> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ n, N, dead_tilde ], overlay1 = <ESC> }; // n N ~ escape
key <AC11> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ m, M, dead_macron, masculine ], overlay1 = <I70> }; // m M ¯ º
key <AC11> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ m, M, dead_macron, masculine ], overlay1 = <I70> }; // m M ¯ º
key <BKSL> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ ccedilla, Ccedilla, dead_cedilla, UFDD3 ], overlay1 = <I70> }; // ç Ç ¸ ,
        key <BKSL> { type = "ALTGR_TWO", [ Shift_R, Caps_Lock ], actions = [ SetMods(modifiers=Shift), LockMods(modifiers=Lock) ] };


key <LSGT> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ ecircumflex, Ecircumflex, slash, VoidSymbol ], overlay1 = <I70> }; // ê Ê /
key <LSGT> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ ecircumflex, Ecircumflex, slash, VoidSymbol ], overlay1 = <I70> }; // ê Ê /
key <AB01> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ z, Z, backslash, VoidSymbol ], overlay1 = <I70> }; // z Z \
key <AB01> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ agrave, Agrave, backslash, VoidSymbol ], overlay1 = <FK15> }; // à À \
key <AB02> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ y, Y, braceleft, leftsinglequotemark ], overlay1 = <I70> }; // y Y { ‘
key <AB02> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ y, Y, braceleft, leftsinglequotemark ], overlay1 = <F35> }; // y Y { ‘
key <AB03> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ x, X, braceright, rightsinglequotemark ], overlay1 = <I70> }; // x X } ’
key <AB03> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ x, X, braceright, rightsinglequotemark ], overlay1 = <I70> }; // x X } ’
key <AB04> { type[group1] = "FOUR_LEVEL", [ period, colon, ellipsis, periodcentered ], overlay1 = <I70> }; // . : … ·
key <AB04> { type[group1] = "FOUR_LEVEL", [ period, colon, ellipsis, periodcentered ], overlay1 = <I70> }; // . : … ·
key <AB05> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ k, K, asciitilde, dead_tilde ], overlay1 = <I70> }; // k K ~
        key <AB05> { type[group1] = "FOUR_LEVEL", [ dead_diaeresis, dead_abovedot, dead_breve, VoidSymbol ], overlay1 = <I70> }; // ¨ ˙ ˘
        key <AB06> {
key <AB06> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ f, F, dead_ogonek, ordfeminine ], overlay1 = <HOME> }; // f F ˛ ª home
            type[group1] = "FOUR_LEVEL", [ apostrophe, question, questiondown, dead_hook ],           // ’ ? ¿ ̉
            type[group2] = "FOUR_LEVEL", [ rightsinglequotemark, question, questiondown, dead_hook ], // ' ? ¿ ̉
            overlay1 = <HOME>                                                                         // home
        };
key <AB07> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ q, Q, dead_abovering, dead_belowdot ], overlay1 = <PGDN> }; // q Q ˚ ̣pgdn
key <AB07> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ q, Q, dead_abovering, dead_belowdot ], overlay1 = <PGDN> }; // q Q ˚ ̣pgdn
key <AB08> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ g, G, UFDD2 ], overlay1 = <PGUP> }; // g G µ pgup
key <AB08> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ g, G, UFDD2 ], overlay1 = <PGUP> }; // g G µ pgup
key <AB09> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ h, H, dagger, doubledagger ], overlay1 = <END> }; // h H † ‡
key <AB09> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ h, H, dagger, doubledagger ], overlay1 = <END> }; // h H † ‡
key <AB10> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ f, F, dead_ogonek, ordfeminine ], overlay1 = <I70> }; // f F ˛ ª
key <AB10> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ w, W, dead_breve ], overlay1 = <I70> }; // w W ˘
         key <SPCE> { type[group1] = "FOUR_LEVEL", [ space, space, nobreakspace, U202F ], overlay1 = <I7F> }; // spaces underscore
key <RTSH> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ ccedilla, Ccedilla, dead_cedilla, UFDD3 ], overlay1 = <I70> }; // ç Ç ¸ ,
 
         key <SPCE> { type[group1] = "FOUR_LEVEL", [ space, space, nobreakspace, U202F ], overlay1 = <I7F> }; // spaces underscore


         // Unused keys mapped to ctrl+letter actions
         // Unused keys mapped to ctrl+letter actions
Ligne 202 : Ligne 293 :
         key <I6F> { [ Tab ] };
         key <I6F> { [ Tab ] };
         key <I70> { [ VoidSymbol ] };
         key <I70> { [ VoidSymbol ] };
         key <I71> { [ x ] };
         key <I71> { [ p ] };
         key <I72> { [ c ] };
         key <I72> { [ n ] };
         key <I73> { [ v ] };
         key <I73> { [ v ] };
         key <I74> { [ z ] };
         key <I74> { [ z ] };
Ligne 221 : Ligne 312 :
         key <I60> { [ F24 ] };      // ctrl-R
         key <I60> { [ F24 ] };      // ctrl-R
         key <I61> { [ F25 ] };      // ctrl-F
         key <I61> { [ F25 ] };      // ctrl-F
         key <I77> { [ F28 ] };      // ctrl-left
         //key <I77> { actions[group1] = [ Redirect(keycode=<I6C>, modifiers=Shift) ]  };      // ctrl-left
        key <I77> { [ INS ],  actions[group1] = [ Redirect(keycode=<INS>, modifiers=Shift) ]  };      // ctrl-left
         key <I78> { [ F29 ] };      // ctrl-right
         key <I78> { [ F29 ] };      // ctrl-right
         key <I79> { [ F30 ] };      // Alt+Tab
         key <I79> { [ F30 ] };      // ctrl+Tab




         //    key <I79> { [ Tab ], actions = [ setMods(modifiers=Mod1) ] };      // Alt+Tab
         //    key <I79> { [ Tab ], actions = [ setMods(modifiers=Mod1) ] };      // Alt+Tab


         key <I7A> { [ F31 ] };      // ctrl-x
         key <I7A> { [ F31 ] };      // ctrl-p
         key <I7B> { [ F32 ] };      // ctrl-c
         key <I7B> { [ F32 ] };      // ctrl-n
         key <I7C> { [ F33 ] };      // ctrl-v
         key <I7C> { [ F33 ] };      // ctrl-v
         key <I7D> { [ F34 ] };      // ctrl-z
         key <I7D> { [ F34 ] };      // ctrl-z
         key <I7E> { [ F35 ] };      // ctrl-y
         key <I7E> { [ F35 ] };      // alt-y
         key <I7F> { [ underscore ] };      // _
         key <I7F> { [ underscore ] };      // _


Ligne 239 : Ligne 331 :
         key <FK13> { actions = [ LatchMods(modifiers=Control) ] };        // dead ctrl
         key <FK13> { actions = [ LatchMods(modifiers=Control) ] };        // dead ctrl
         key <FK14> { actions = [ LatchMods(modifiers=Shift) ] };          // dead shift
         key <FK14> { actions = [ LatchMods(modifiers=Shift) ] };          // dead shift
         key <FK15> { actions = [ LatchMods(modifiers=Alt) ] };           // dead alt
         key <FK15> { actions = [ LatchMods(modifiers=Mod1) ] };           // dead alt
         key <FK16> { actions = [ LatchMods(modifiers=AltGr) ] };          // dead altgr
         key <FK16> { actions = [ LatchMods(modifiers=AltGr) ] };          // dead altgr
         key <FK17> { [ Multi_key ] };                                    // multi_key
         key <FK17> { [ Multi_key ] };                                    // multi_key
Ligne 274 : Ligne 366 :


         // Pour mettre un Compose sur RWIN
         // Pour mettre un Compose sur RWIN
         // key <RWIN>  { [ Multi_key, Multi_key, Multi_key, Multi_key ] };
         //key <RWIN>  { [ Multi_key, Multi_key, Multi_key, Multi_key ] };
         // key <MENU>  { [ Multi_key, Multi_key, Multi_key, Multi_key ] };
         // key <MENU>  { [ Multi_key, Multi_key, Multi_key, Multi_key ] };
         //key <MENU>  { [ Control_L ], actions = SetMods(modifiers=Control) ] };
         //key <MENU>  { [ Control_L ], actions = SetMods(modifiers=Control) ] };
Ligne 297 : Ligne 389 :


             // Make Alt+Tab still work in the overlay !
             // Make Alt+Tab still work in the overlay !
         //   key  <TAB> {
         //key  <TAB> {
         //       // would need an appropriate type here [ Tab,  ISO_Left_Tab    ],
         //   // would need an appropriate type here [ Tab,  ISO_Left_Tab    ],
         //       overlay1 = <I79>
         //   overlay1 = <F30>
         //   };
         //};




Ligne 310 : Ligne 402 :


};
};


</nowiki></pre>
</nowiki></pre>

Dernière version du 31 mars 2009 à 01:54

La variante proposée par Nbrodu est très utile mais étant plutôt adepte de vim, je n'utilisais pas beaucoup les raccourcis en Ctrl+… En revanche return, delete, backspace et escape avaient selon moi besoin d'être plus accessibles. J'en ai profité pour mettre les touches de direction "alla vim" et ajuster les touches début, fin, pgup et pgdn de manière plus homogène.

J'ai également rajouté des touches dead-modificateur (plus parce que j'étais content d'avoir trouvé comment faire qu'autre chose).


Keymap « de base »

Finalement le bépow ne me plaît pas tellement: "w" s'enchaîne souvent avec un "o" ou un "e" en anglais… et à è trop lourds à taper. À revoir.

Haha! J'ai trouvé une parade :) En échangeant "w" et "'/?" ça devrait être pas mal. Une nouvelle variante: le "BÉPO?" :-)

Les inconvénients:

    • c'est vrai que è et à ça manque un peu… Mais bon c'était pareil avec le bépow :)
    • une très bonne place "gâchée" par ce vieux w.

Les avantages de cette variante:

    • le w est bien accessible
    • "w"-"h" s'enchaîne bien, de même que "w"-"o", "w"-"e", "e"-"w" et "o"-"w". Bonne amélioration par rapport au bépow!
    • toute la ponctuation dans le même coin :)

Nouveau changement :-) La place pour le w était peut-être un peu "trop" accessible (on aurait pu mettre une autre touche plus fréquente à la place).

Par exemple le f! descendre le petit doigt est vraiment horrible :) d'accord pour un z ou un w mais pas pour un f.

Échange "w"-"f".

  • "["-"]" dans la même rangée que "{"-"}" et "<"-">"

Je trouvais ça trop pratique. Les parenthèses en altgr+'é' et altgr+'p' ce serait selon moi royal, mais c'est vrai que le '´' est bien sur le é… Je n'ai pas encore trouvé de solution idéale.

  • "("-")" en "a"-"e"

( et ) sur des doigts différents, tous les {}[]()<> dans le même coin.

  • "æ" sur "$"

æ est peu utile, ce qui n'est pas le cas de œ, (et de "(")

  • "<"-">" en "é"-"p"

tous les {}[]()<> dans le même coin.

  • les "«"-"»" sont accessibles à la place de <> avec la touche mode prog/français (maj gauche)
  • "/" sur "," pour la prog
  • "&"-"$"-"#" sur "t"-"s"-"r" pour la prog
  • espace insécable en altgr+space et espace fine insécable en altgr+maj+space.

space et maj+space donnent une espace classique, je trouvais la combinaison "maj+space = espace" trop dangereuse pour la programmation.

Pour l'instant underscore est en fn+space. Ce n'est pas super logique (ce n'est pas du « déplacement/édition ») mais bon… la couche « déplacement/édition » est aussi accessible que la couche altgr et la laisser quasiment vide serait un peu du gaspillage. Le mieux serait peut-être de caler le '_' ailleurs (mais où ? :-)). Ou alors utiliser un peu plus cette couche fn -> :-)

  • Ctrl droit et Compose inversés: les touches Ctrl sont tout à fait inaccessibles sans lever la main. Un "dead_Compose" est accessible en Fn+','.
  • Maj et ç inversés pour augmenter l'homogénéité avec l'autre maj (cela rend aussi la touche plus accessible à mon avis).
  • retour de à et è
  • ~ " ' ! ? en 1 2 3 4 5

rapproche " ~ devient accessible (ce qui n'est pas le cas du altgr + la touche B de l'azerty) ! et ? plus accessibles « » inutiles ou presque donc en altgr

  • thorn (le truc sur t, inutile si ce n'est pour les smileys), et euro (inutile aussi) giclent en compose (donc pas visibles ici).
┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────╔═════════╗
│ Æ ¶│ 1 „│ 2 “│ 3 ”│ 4  │ 5  │ 6  ║ 7 ¬│ 8 ¼│ 9 ½│ 0 ¾│ ° ′│ ℝ ″║         ║
│ æ –│ ~ —│ " ≤│ ' ≥│ ! ¡│ ? ¿│ @ ^║ + ±│ - −│ / ÷│ * ×│ = ≠│ % ‰║ <--     ║
╔════╧══╗─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─╚══╦══════╣
║  |<-  ║ B ¦│ É ˝│ P §│ O Œ│ È  ║ ´  │ V  │ D Ð│ L  │ J IJ│ Z Ə│ K  ║   |  ║
║  ->|  ║ b |│ é <│ p >│ o œ│ è `║ ^ ´│ v ˇ│ d ð│ l /│ j ij│ z ə│ k ~║ <-'  ║
╠═══════╩╗───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───╚╗     ║
║        ║ A  │ U  │ I  │ E ¤│ ;  ║ C ſ│ T  │ S ß│ R  │ N ˜│ M º│    ║     ║
║ Maj. ⇑ ║ a (│ u [│ i ]│ e )│ , /║ c ©│ t &│ s $│ r #│ n ~│ m ¯│Maj.║     ║
╠══════╦═╝──┬─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴──┬─┴──╔═╧════╩═════╣
║ «»’  ║ Ê  │ À  │ Y ‘│ X ’│ : ·│ ˙  ║ F ª│ Q  │ G  │ H ‡│ W  ║   Ç ,      ║
║ <>'  ║ ê /│ à \│ y {│ x }│ . …│ ¨ ˘║ f ˛│ q °│ g µ│ h †│ w ˘║   ç ¸      ║
╠══════╩╦═══╧══╦═╧═══╦╧════╧════╧════╧════╧════╧╦═══╧═╦══╧════╬═════╦══════╣
║       ║      ║     ║ Espace   Fine Insécable  ║     ║       ║     ║      ║
║ Ctrl  ║ Alt  ║ Fn ⇄║ Espace     Insécable     ║AltGr║Compose║WinM ║ Ctrl ║
╚═══════╩══════╩═════╩══════════════════════════╩═════╩═══════╩═════╩══════╝

Fn « déplacement/édition » (et underscore)

  • ← ↓ ↑ → sous les doigts à droite avec les positions usuelles sur vim.
  • "deb", "pgdn", "pgup" et "fin" accessibles facilement (on notera l'homogégéité avec les flèches :)).
  • "esc", "del", "bksp" et "entr" sous les doigts de la main gauche: trop bien. :)
  • maj+insert (équivalent du clic scroll) en fn+p (p comme paste (en vim) ou comme prout (dans la vie de tous les jours))
  • ctrl+p et ctrl+n (pour "précédent" et "suivant" dans plein de programmes) en haut des flèches haut et bas (peut-être pas top à cause du "d": supprimer en vim, du coup, ils sont aussi sur les guillemets).
┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────╔═════════╗
│    │    │ctl+│ctl+│    │    │    ║    │    │    │    │    │    ║         ║
│    │    │ p  │ n  │    │    │    ║    │    │    │    │    │    ║ <--     ║
╔════╧══╗─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─╚══╦══════╣
║  |<-  ║dead│dead│maj+│dead│Com-║    │ctl+│ctl+│    │    │    │    ║   |  ║
║  ->|  ║ctrl│ maj│ ins│altg│pose║    │ p  │ n  │    │    │    │    ║ <-'  ║
╠═══════╩╗───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───╚╗     ║
║        ║    │    │    │    │    ║    │    │    │    │    │    │    ║     ║
║ Maj. ⇑ ║ esc│ del│bksp│entr│ins │ ←  │ ↓  │ ↑  | →  │ esc│    │Maj ║     ║
╠══════╦═╝──┬─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴──┬─┴──╔═╧════╩═════╣
║ «»’  ║dead│    │    │    │    │    ║    │    │    │    │    ║            ║
║ <>'  ║ alt│    │    │    │    │    ║ deb│pgdn│pgup│ fin│    ║            ║
╠══════╩╦═══╧══╦═╧═══╦╧════╧════╧════╧════╧════╧╦═══╧═╦══╧════╬═════╦══════╣
║       ║      ║     ║                          ║     ║       ║     ║      ║
║ Ctrl  ║ Alt  ║ Fn ⇄║            _             ║AltGr║Compose║WinM ║ Ctrl ║
╚═══════╩══════╩═════╩══════════════════════════╩═════╩═══════╩═════╩══════╝

Des idées ?

Si vous avez des idées pour améliorer cette super couche « déplacement/édition » rajoutez-les ici !


Mon projet « top secret »

Mes problèmes majeurs sur les claviers traditionnels

  • rangée des chiffres très peu accessible (voire inaccessible pour les @/6 */0 =/° %/` bépo)
  • rangée F1, F2, … complètement inaccessible
  • pouces inutilisés ou presque : la faute à la barre d'espace immense !
  • f/F bépo difficilement accessible
  • k/K (caca) bépo inaccessible
  • les touches en traviolle

La solution miracle : tout remonter d'une rangée ! La position de repos se retrouve sur les "bépo" et "vdlj" actuels.

Le credo : utiliser au mieux les pouces et la rangée de repos.

  • dans l'affaire on perd le ê/Ê mais bon… la touche était inaccessible, on a un accent mort (et puis on pourra éventuellement caller un ê/Ê ailleurs)
  • les touches sont mieux placées : f/F k/K deviennent accessibles (ils se retrouvent respectivement sur le m et le g azerty -> le décallage est moins important (est-ce seulement sur mon portable ?)).
  • rangée F1, F2, … accessible
  • plein de couches avec les pouces : on utilise un peu mieux la puissance de la rangée de repos.
  • les chiffres dans une de ces couches
  • déplacement/édition dans une autre
  • une touche « changer de couche » accents ?
  • une touche « changer de couche » ponctuation ? avec les touches « prog » ?
  • une touche « changer la couche » de bébé ? <- ouhhhh!

Sans l'éliminer tout à fait (faut pas rêver) on réduit donc le problème des touches en diagonale !

On applique autant que possible le principe des couches.

Il faut faire attention au fait qu'on peut avoir tendance à ne pas relâcher la touche de changement de couche assez vite…

La touche espace est un peu en plein milieu… Il faut soit lever un peu les pouces, soit, pourquoi pas ?, virer matériellement la touche espace.

Un nom de code pour le moins trop laid pour cette variante : top-gueux-ne

  • les mains vers le haut, c'est top,
  • addressée aux gueux, c'est gueux,
  • bim, bam, prout, les jeux de mots foireux, c'est top-gueux-ne.

À faire dès que j'aurai un peu plus de temps :-)

Mon fichier .xkb

xkb_keymap        {

xkb_keycodes      { include "xfree86+aliases(azerty)" };

xkb_types         {
    include "complete"
    type "ALTGR_TWO" {
       modifiers = LevelThree;
       map[None] = Level1;
       map[LevelThree] = Level2;
       level_name[Level1] = "Base";
       level_name[Level2] = "AltGr";
    };
};

xkb_compatibility { include "complete"
        
        indicator "Scroll Lock" { controls = Overlay1; allowExplicit = True; drivesKeyboard = True; };
        
        interpret F24 {
            action = Redirect(Key=<I6C>, modifiers=Control); // ctrl-r
        };
        interpret F25 {
            action = Redirect(Key=<I6D>, modifiers=Mod1); // alt-f
        };
        interpret F26 {
            action = LockControls(controls=Overlay1);
        };
        interpret F27 {
            action = Redirect(Key=<I6E>, modifiers=Control); // ctrl-s
        };
        interpret F28 {
            action = Redirect(Key=<I6C>, modifiers=Shift); // insert-shift
        };
        interpret F29 {
            action = Redirect(Key=<RGHT>, modifiers=Control); // ctrl-→
        };

        interpret F30 {
            action = Redirect(Key=<I6F>, modifiers=Control); // ctrl-Tab
        };
        interpret F31 {
            action = Redirect(Key=<I71>, modifiers=Control); // ctrl-p
        };
        interpret F32 {
            action = Redirect(Key=<I72>, modifiers=Control); // ctrl-n
        };
        interpret F33 {
            action = Redirect(Key=<INS>, modifiers=Shift); // ctrl-v
        };
        interpret F34 {
            action = Redirect(Key=<I74>, modifiers=Control); // ctrl-z
        };
        interpret F35 {
            action = Redirect(Key=<I75>, modifiers=Mod1); // alt-y
        };

};

partial alphanumeric_keys
xkb_symbols "dvorak" {

	name[Group1]= "France - Bepo, ergonomic, Dvorak way (v1.0rc2)";

	include "pc(pc105)"

	key <TLDE> { type[group1] = "FOUR_LEVEL", [ ae, AE, endash, paragraph ], overlay1 = <I70> }; // $ # – ¶
	key <AE01> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ asciitilde, 1, emdash, doublelowquotemark ], overlay1 = <I70> }; // ~ 1 — „
	key <AE02> { type[group1] = "FOUR_LEVEL", [ quotedbl, 2, lessthanequal, leftdoublequotemark ], overlay1 = <I7A> }; // " 2  “
	key <AE03> { type[group1] = "FOUR_LEVEL", [ apostrophe, 3, greaterthanequal, rightdoublequotemark ], overlay1 = <I7B> }; // ' 3  ”
	key <AE04> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ exclam, 4, exclamdown ], overlay1 = <I70> }; // ! ¡ 4
	key <AE05> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ question, 5, questiondown ], overlay1 = <I70> }; // ? ¿ 5
	key <AE06> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ at, 6, asciicircum ], overlay1 = <I70> }; // @ 6 
	key <AE07> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ plus, 7, plusminus, notsign ], overlay1 = <I70> }; // + 7 ± ¬
	key <AE08> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ minus, 8, U2212, onequarter ], overlay1 = <I70> }; // - 8 − ¼
	key <AE09> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ slash, 9, division, onehalf ], overlay1 = <I70> }; // / 9 ÷ ½
	key <AE10> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ asterisk, 0, multiply, threequarters ], overlay1 = <I70> }; // * 0 × ¾
	key <AE11> { type[group1] = "FOUR_LEVEL", [ equal, degree, notequal, minutes ], overlay1 = <I70> }; // = ° ≠
	key <AE12> { type[group1] = "FOUR_LEVEL", [ percent, grave, U2030, seconds ], overlay1 = <I70> }; // % ` ‰
	key <AD01> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ b, B, bar, brokenbar ], overlay1 = <FK13> }; // b B | ¦ dead_ctrl
	key <AD02> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ eacute, Eacute, less, dead_doubleacute ],          // é É < ˝ 
                     type[group2] = "FOUR_LEVEL_SEMIALPHABETIC", [ eacute, Eacute, guillemotleft, dead_doubleacute ], // é É « ˝ 
                     overlay1 = <FK14> };                                                                             // dead_shift
	key <AD03> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ p, P, greater, section ],                          // p P > §  
                     type[group2] = "FOUR_LEVEL_SEMIALPHABETIC", [ p, P, guillemotright, section ],                   // p P » §
                     overlay1 = <I77> };                                                                              // insert-shift
	key <AD04> { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ o, O, oe, OE ], overlay1 = <FK16> }; // o O œ Œ dead_altgr
	key <AD05> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ egrave, Egrave, dead_grave, grave ], overlay1 = <FK17>}; // è È ` ` compose
        //key <AD05> {
        //    type[group1] = "FOUR_LEVEL", [ apostrophe, question, questiondown, dead_hook ],           // ’ ? ¿ ̉
        //    type[group2] = "FOUR_LEVEL", [ rightsinglequotemark, question, questiondown, dead_hook ], // ' ? ¿ ̉
        //    overlay1 = <FK17>                                                                         // compose
        //}; 
	key <AD06> { type[group1] = "FOUR_LEVEL", [ dead_circumflex, dead_acute, dead_acute ], overlay1 = <I70> }; // ^
	key <AD07> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ v, V, dead_caron ], overlay1 = <I70> }; // v V ˇ
	key <AD08> { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ d, D, eth, ETH ], overlay1 = <I7A>}; // d D ð Ð
	key <AD09> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ l, L, UFDD0 ], overlay1 = <I7B>}; // l L /
	key <AD10> { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ j, J, U0133, U0132 ], overlay1 = <I70>}; // j J ij IJ
	key <AD11> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ z, Z, schwa, SCHWA ], overlay1 = <I70> }; // z Z ə Ə
	key <AD12> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ k, K, asciitilde, dead_tilde ], overlay1 = <I70> }; // k K ~
	key <AC01> { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ a, A, parenleft ], overlay1 = <ESC> }; // a A ( escape
        key <AC02> { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ u, U, bracketleft ], overlay1 = <DELE> }; // u U [ delete
	key <AC03> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ i, I, bracketright ], overlay1 = <BKSP> }; // i I ] backspace
	key <AC04> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ e, E, parenright, UFDD1 ], overlay1 = <RTRN> }; // e E ) ¤ return
        key <AC05> { type[group1] = "FOUR_LEVEL", [ comma, semicolon, slash, dead_horn  ],  overlay1 = <INS> };     // , ; / insert
	key <AC06> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ c, C, copyright, U017F ], overlay1 = <LEFT> }; // c C © ſ
	key <AC07> { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ t, T, ampersand ], overlay1 = <DOWN> }; // t T þ Þ
	key <AC08> { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ s, S, dollar, ssharp ], overlay1 = <UP> }; // s S $ ß
	key <AC09> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ r, R, numbersign, trademark ], overlay1 = <RGHT> }; // r R # ™
	key <AC10> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ n, N, dead_tilde ], overlay1 = <ESC> }; // n N ~ escape
	key <AC11> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ m, M, dead_macron, masculine ], overlay1 = <I70> }; // m M ¯ º
        key <BKSL> { type = "ALTGR_TWO", [ Shift_R, Caps_Lock ], actions = [ SetMods(modifiers=Shift), LockMods(modifiers=Lock) ] };

	key <LSGT> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ ecircumflex, Ecircumflex, slash, VoidSymbol ], overlay1 = <I70> }; // ê Ê /
	key <AB01> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ agrave, Agrave, backslash, VoidSymbol ], overlay1 = <FK15> }; // à À \
	key <AB02> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ y, Y, braceleft, leftsinglequotemark ], overlay1 = <F35> }; // y Y { ‘
	key <AB03> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ x, X, braceright, rightsinglequotemark ], overlay1 = <I70> }; // x X } ’
	key <AB04> { type[group1] = "FOUR_LEVEL", [ period, colon, ellipsis, periodcentered ], overlay1 = <I70> }; // . : … ·
        key <AB05> { type[group1] = "FOUR_LEVEL", [ dead_diaeresis, dead_abovedot, dead_breve, VoidSymbol ], overlay1 = <I70> }; // ¨ ˙ ˘
	key <AB06> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ f, F, dead_ogonek, ordfeminine ], overlay1 = <HOME> }; // f F ˛ ª home
	key <AB07> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ q, Q, dead_abovering, dead_belowdot ], overlay1 = <PGDN> }; // q Q ˚ ̣pgdn
	key <AB08> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ g, G, UFDD2 ], overlay1 = <PGUP> }; // g G µ pgup
	key <AB09> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ h, H, dagger, doubledagger ], overlay1 = <END> }; // h H † ‡
	key <AB10> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ w, W, dead_breve ], overlay1 = <I70> }; // w W ˘
	key <RTSH> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ ccedilla, Ccedilla, dead_cedilla, UFDD3 ], overlay1 = <I70> }; // ç Ç ¸ ,
        key <SPCE> { type[group1] = "FOUR_LEVEL", [ space, space, nobreakspace, U202F ], overlay1 = <I7F> }; // spaces underscore

        // Unused keys mapped to ctrl+letter actions
        key <I6C> { [ r ] };
        key <I6D> { [ f ] };
        key <I6E> { [ s ] };
        key <I6F> { [ Tab ] };
        key <I70> { [ VoidSymbol ] };
        key <I71> { [ p ] };
        key <I72> { [ n ] };
        key <I73> { [ v ] };
        key <I74> { [ z ] };
        key <I75> { [ y ] };
        key <I76> { [ space ] };


        // For some reason there are SOMETIMES (not always!) errors with this code:
        //    key <I7A> { actions[group1] = [ Redirect(keycode=<I71>, modifiers=Control) ] };      // ctrl-x
        //    key <I7B> { actions[group1] = [ Redirect(keycode=<I72>, modifiers=Control) ] };      // ctrl-c
        //    key <I7C> { actions[group1] = [ Redirect(keycode=<I73>, modifiers=Control) ] };      // ctrl-v
        //    key <I7D> { actions[group1] = [ Redirect(keycode=<I74>, modifiers=Control) ] };      // ctrl-z
        //    key <I7E> { actions[group1] = [ Redirect(keycode=<I75>, modifiers=Control) ] };      // ctrl-y


        // However passing the action in the « interpret » section for an unsused symbol seems to work
        key <I60> { [ F24 ] };      // ctrl-R
        key <I61> { [ F25 ] };      // ctrl-F
        //key <I77> {  actions[group1] = [ Redirect(keycode=<I6C>, modifiers=Shift) ]  };      // ctrl-left
        key <I77> { [ INS ],  actions[group1] = [ Redirect(keycode=<INS>, modifiers=Shift) ]  };      // ctrl-left
        key <I78> { [ F29 ] };      // ctrl-right
        key <I79> { [ F30 ] };      // ctrl+Tab


        //    key <I79> { [ Tab ], actions = [ setMods(modifiers=Mod1) ] };      // Alt+Tab

        key <I7A> { [ F31 ] };      // ctrl-p
        key <I7B> { [ F32 ] };      // ctrl-n
        key <I7C> { [ F33 ] };      // ctrl-v
        key <I7D> { [ F34 ] };      // ctrl-z
        key <I7E> { [ F35 ] };      // alt-y
        key <I7F> { [ underscore ] };      // _


        // Using < 127 keycodes also works
        key <FK13> { actions = [ LatchMods(modifiers=Control) ] };        // dead ctrl
        key <FK14> { actions = [ LatchMods(modifiers=Shift) ] };          // dead shift
        key <FK15> { actions = [ LatchMods(modifiers=Mod1) ] };           // dead alt
        key <FK16> { actions = [ LatchMods(modifiers=AltGr) ] };          // dead altgr
        key <FK17> { [ Multi_key ] };                                     // multi_key
        //    key <FK13> { actions[group1] = [ Redirect(keycode=<I71>, modifiers=Control) ] };      // ctrl-x
        //    key <FK14> { actions[group1] = [ Redirect(keycode=<I72>, modifiers=Control) ] };      // ctrl-c
        //    key <FK15> { actions[group1] = [ Redirect(keycode=<I73>, modifiers=Control) ] };      // ctrl-v
        //    key <FK16> { actions[group1] = [ Redirect(keycode=<I74>, modifiers=Control) ] };      // ctrl-z
        //    key <FK17> { actions[group1] = [ Redirect(keycode=<I75>, modifiers=Control) ] };      // ctrl-y

        // See also the bug thread here : https://bugs.freedesktop.org/show_bug.cgi?id=12401


        // Transforme CAPS en lock de couche alternative «déplacement/édition», et garde le caps-lock habituel en AltGr
        //    key <CAPS> { type = "ALTGR_TWO", actions = [ LockControls(controls=Overlay1), LockMods(modifiers=Lock) ] };

        // Pour échanger Shift et Caps_Lock
        //    key <CAPS> { [ Shift_L ], actions = [ SetMods(modifiers=Shift) ] };
        //    key <LFSH> {  [    Caps_Lock    ] };

        // Combinaison des 2 : attention, requiert que les LFSH et CAPS dans les définitions de la touche <AC01> soient aussi échangées dans la partie principale
        //    key <LFSH> { type = "ALTGR_TWO", actions = [ LockControls(controls=Overlay1), LockMods(modifiers=Lock) ] };
        //    key <CAPS> { [ Shift_L ], actions = [ SetMods(modifiers=Shift) ] };

        // shift + lock
        //    key <CAPS> { type = "ALTGR_TWO", [ Shift_L, Caps_Lock ], actions = [ SetMods(modifiers=Shift), LockMods(modifiers=Lock) ] };
        //    key <LFSH> { type = "ALTGR_TWO", actions = [ SetControls(controls=Overlay1), LockControls(controls=Overlay1) ] };


        // Pour transformer CAPS en un AltGr gauche, en gardant le lock habituel en AltGr
        //    key <CAPS> { type = "ALTGR_TWO", [ ISO_Level3_Shift, Caps_Lock ], actions = [ SetMods(modifiers=LevelThree), LockMods(modifiers=Lock) ] };

        // Pour transformer LWIN en un AltGr gauche
        //    key <LWIN> { [ ISO_Level3_Shift ], actions = [ SetMods(modifiers=LevelThree) ] };

        // Pour mettre un Compose sur RWIN
        //key <RWIN>  { [ Multi_key, Multi_key, Multi_key, Multi_key ] };
        // key <MENU>  { [ Multi_key, Multi_key, Multi_key, Multi_key ] };
        //key <MENU>  { [ Control_L ], actions = SetMods(modifiers=Control) ] };
        key <MENU>  { [ Control_L ], actions = [ SetMods(modifiers=Control) ] };
        key <RCTL>  { [ Multi_key, Multi_key, Multi_key, Multi_key ] };

        // Pour que LWIN permette de changer de groupe
        //    key <LWIN> { [  ISO_Next_Group, ISO_Prev_Group, ISO_Next_Group, ISO_Prev_Group ] };

        // Echange CTRL et Alt Gauches. Et puisque LWIN est réaffectée, garde un modificateur META en niveau 3 et 4 (AltGr)
        // Note: Activer cette option fonctionne mieux lorsque que l'on échange aussi les raccourcis du style Alt+Tab…
        //    key <LALT> {        [ Control_L ], actions = [ SetMods(modifiers=Control) ]       };
        //    key <LCTL> { type[group1] = "FOUR_LEVEL",  [       Alt_L,  Alt_L,  Meta_L, Meta_L         ], actions = [ SetMods(modifiers=Mod1), SetMods(modifiers=Mod1), SetMods(modifiers=Mod4), SetMods(modifiers=Mod4) ]       };


        key <CAPS> { type = "ALTGR_TWO", [ Shift_L, Caps_Lock ], actions = [ SetMods(modifiers=Shift), LockMods(modifiers=Lock) ] };
        key <LALT> { type = "ALTGR_TWO", [ VoidSymbol ], actions = [ SetControls(controls=Overlay1), LockControls(controls=Overlay1) ] };
        //    key <LALT> { type = "ONE_LEVEL", [ VoidSymbol ], actions = [ LockControls(controls=Overlay1) ] };
            
            key <LFSH> { [  ISO_Next_Group, ISO_Prev_Group, ISO_Next_Group, ISO_Prev_Group ] };
            key <LWIN> { type[group1] = "FOUR_LEVEL",  [ Alt_L, Alt_L, Meta_L, Meta_L ], actions = [ SetMods(modifiers=Mod1), SetMods(modifiers=Mod1), SetMods(modifiers=Mod4), SetMods(modifiers=Mod4) ] };

            // Make Alt+Tab still work in the overlay !
        //key  <TAB> {
        //    // would need an appropriate type here [ Tab,  ISO_Left_Tab    ],
        //    overlay1 = <F30>
        //};


	include "level3(ralt_switch)"
        
};

xkb_geometry { include "pc(pc105)" };

};