Utilisateur:Thyle

De Disposition de clavier bépo

En cours d'édition.

Je suis actuellement en tain de créer un layout personnel qui sera optimisé pour le français, la programmation, l'anglais et surtout le clavier TypeMatrix 2030.

Je m'inspire très largement de configurations faite par d'autres membres, voici une liste de ceux qui m’ont le plus aidé :

le Béop de laurent ;
 — le Jéop de Robin ; 
 — Lawrent ;
 — Legrostdg ;
 — Nbrodu ;
 — Damien_thiriet.


Ressources utiles

Utiliser un modificateur comme une autre touche quand elle n'est pas utilisée de manière combinée avec une autre touche :

   https://github.com/alols/xcape

Trouver facilement un keycode :

   xev | grep "keycode"

Liste des symboles (keysym):

   /usr/include/X11/keysymdef.h 

Documentation concernant Xkb :

   https://wiki.archlinux.org/index.php/X_KeyBoard_extension
   http://www.charvolant.org/~doug/xkb/html/node1.html


Je ferais quelque chose de propre quand ma disposition sera stable. Il est possible de trouver la version la plus à jours sur mon profil GitHub, dans .xkb : https://github.com/BriceSD/dotfiles

Mon layout à été conçu pour être utilisé avec xcape, les touches espace et tab sont inutilisable sans.

Tout en vrac :


//╔═════╦══════════╦══════════╦══════════╦══════════╦══════════╦══════════╦══════════╦══════════╦══════════╦══════════╦══════════╦══════════╦══════════╦════╗ //║esc. ║ F1 ║ F2 ║ F3 ║ F4 ║ F5 ║ del ║ F6 ║ F7 ║ F8 ║ F9 ║ F10 ║ F11 ║ F12 ║num.║ //╚═════╩══════════╩══════════╩══════════╩══════════╩══════════╣ ins ╠══════════╩══════════╩══════════╩══════════╩══════════╩══════════╩══════════╬════╣ //│ │ § │ W ‑ │  » │ ” │ ¿ ╠══════════╣ _ ¡ _ │ Ç │ : : :  : │ ; ; ;  ; │ ″ │ ® © │ ․ ̛ ║calc║ //│Comp.│ × º │ w │ " « " │ ' “ ' │ ` ‘ ` ║ ⌫ ║ _ _ │ ç │ : : :  : │ ; ; ;  ; │ ′ │ ° ™ │ µ ̆ ‰ ║ ║ //╔═════╗──────────┼──────────┼──────────┼──────────┼──────────║ ║──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────╠════╣ //║ ║ J ± += │ É ˝ │ O > │ P ≥ >= │ È ˚ ║ ║ ˆ ! != ! │ V │ D │ L │ B ¬ && │ Z Ə │ → ║mail║ //║ @ ║ j · + │ é ´ % │ o œ < │ p ≤ <= │ è ` ║ ║ ˆ ! !  ! │ v 7 │ d 8 │ l 9 │ b ˜ & │ z ə │ ⇒ ║ ⇤║ //╠═════╣──────────┼──────────┼──────────┼──────────┼──────────╠══════════╣──────────┼──────────┼──────────┼──────────┼──────────┼──────────╔══════════╬════╣ //║ ║ A • -= │ U Ù = │ E € ) │ I ˙ } │ , ̛ , ║ ║ C \ / │ T │ S ß │ R │ N │ Alt ║ ║ ⇪ ║ //║Alt ║ a — - │ u ù = │ e ¤ ( │ i ̈ { │ , , ║ ║ c / / │ t $ 0 $ │ s # 1 # │ r ~ 2 ~ │ n 3 │ Gr ║ Unlock ║ AC║ //║ gr ║──────────┼──────────┼──────────┼──────────┼──────────║ ⏎ esc ║──────────┼──────────┼──────────┼──────────┼──────────┼──────────║ ╠════╣ //║ ║ À – *= │ Y ≠ │ X ] │ . . │ K ║ ║ ’ ? ?  ? │ Q │ G │ H │ M ‡ || │ F ║ ║www ║ //║ ║ à – * │ y ≃ │ x [ │ . … . │ k ║ ║ ’ ? ?  ? │ q 4 │ g µ 5 │ h ^ 6 │ m † | ¦ │ f ║ ║ ⌫ ║ //╠═════╬══════════╦══════════╦══════════╦══════════╧══════════╩══════════╩══════════╧══════════╦══════════╦══════════╦══════════╦══════════╬══════════╬════╣ //║Over-║ Ctrl ║ ║ Level5 ║ Espace insécable ║ Level5 ║ Ctrl ║ Ctrl ║ Overlay ║ ║ ⇞ ║ //║ lay ║ ║ ║ Tab ║ ║ Tab ║ ║ ║ ║ Lock ║ bk║ //╠═════╬══════════╩═════╦════╩══════════╣ ╠══════════╬══════════╬══════════╬══════════╣ Overlay╠════╣ //║fn ║ Alt ║ ⇧ ╠══════════════════════════════════════════════════════╣ ⇧ ║ Alt ║ Alt ║ Start ║ ║ ⇟ ║ //║ ║ ║ Esc ║ ║ Esc ║ ║ ║ ║ ║ fw║ //╚═════╩════════════════╩═══════════════╝ ╚══════════╩══════════╩══════════╩══════════╩══════════╩════╝


Fichier ~/.xkb/jeopPETM.xkb

xkb_keymap {

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

xkb_types { include "complete" };

xkb_geometry { include "typematrix(tm2030USB-106)" };

xkb_compatibility {

 include "complete"
 interpret F20 {
   action = Redirect(Key=<I215>, modifiers=Control);    // ctrl-x
   };
 interpret F21 {
   action = Redirect(Key=<I217>, modifiers=Control);    // ctrl-c
   };
 interpret F22 {
   action = Redirect(Key=<I219>, modifiers=Control);    // ctrl-v
   };


};

xkb_symbols { include "pc(pc105)+jeopPETM(jeop)" };

};



Fichier ~/.xkb/symbols/jeopPETM

partial alphanumeric_keys xkb_symbols "jeop" {

 include "keypad(oss)"
 include "fr(basic)"
 include "jeopPETM(jeopPETM_Modifiers)"
 include "jeopPETM(overlay)"
 name[Group1]="French jeop Typematrix";



 key.type[Group1] = "EIGHT_LEVEL";

//First row

 key <AE01>   { [ multiply, section, masculine, VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] };                     //   §
 key <AE02>   { [ w, W, VoidSymbol, U2011, VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] };                                          // w W   ‑ 
 key <AE03>   { [ quotedbl, VoidSymbol, guillemotleft, guillemotright, quotedbl, VoidSymbol, VoidSymbol, VoidSymbol ] };                     //     « «
 key <AE04>   { [ apostrophe, VoidSymbol, leftdoublequotemark, rightdoublequotemark, apostrophe, VoidSymbol, VoidSymbol, VoidSymbol ] };             //     » » 
 key <AE05>   { [ grave, VoidSymbol, leftsinglequotemark, questiondown, grave, VoidSymbol, VoidSymbol, VoidSymbol ] };
 key <AE06>   { [ underscore, underscore, VoidSymbol, exclamdown, underscore, underscore, VoidSymbol, VoidSymbol ] };                  //
 key <AE07>   { [ ccedilla, Ccedilla, VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] };                        // @   ” ¡
 key <AE08>   { [ colon, colon, colon, colon, colon, colon, colon, colon ] };                                                          //
 key <AE09>   { [ semicolon, semicolon, semicolon, semicolon, semicolon, semicolon, semicolon, semicolon ] };                          //
 key <AE10>   { [ VoidSymbol, VoidSymbol, seconds, minutes, VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] };                      //     —
 key <AE11>   { [ degree, registered, trademark, copyright, VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] };                    //   ® ™ ©
 key <AE12>   { [ dead_greek, dead_belowdot, dead_breve, dead_horn, U2030, VoidSymbol, VoidSymbol, VoidSymbol ] };                     // µ ˘ ¯ ‰


//Second row

 key <TAB>    { [ at, at, at, at, at, at, at, at ] };
 key <AD01>   { [ j, J, periodcentered, plusminus, plus, VoidSymbol, VoidSymbol, VoidSymbol ] };
 key <AD02>   { [ eacute, Eacute, dead_acute, dead_doubleacute , percent, VoidSymbol, VoidSymbol, VoidSymbol ] };
 key <AD03>   { [ o, O, oe, VoidSymbol, less, greater, VoidSymbol, VoidSymbol ] };
 key <AD04>   { [ p, P, lessthanequal, greaterthanequal, VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] };
 key <AD05>   { [ egrave, Egrave, dead_grave, dead_abovering, VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] };
 key <AD06>   { [ dead_circumflex, dead_circumflex, exclam, exclam, exclam, VoidSymbol, exclam, exclam ] };
 key <AD07>   { [ v, V, VoidSymbol, VoidSymbol, 7, VoidSymbol, VoidSymbol, VoidSymbol ] };
 key <AD08>   { [ d, D, eth, ETH, 8, VoidSymbol, VoidSymbol, VoidSymbol ] };
 key <AD09>   { [ l, L, VoidSymbol, VoidSymbol, 9, VoidSymbol, VoidSymbol, VoidSymbol ] };
 key <AD10>   { [ b, B, dead_tilde, notsign, ampersand, VoidSymbol, VoidSymbol, VoidSymbol ] };
 key <AD11>   { [ z, Z, schwa, SCHWA, VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] };
 key <AD12>   { [ U21D2, VoidSymbol, rightarrow, lefttarrow, VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] };


//Third row

 key <AC01>   { [ a, A, emdash, U2022, minus, VoidSymbol, VoidSymbol, VoidSymbol ] };
 key <AC02>   { [ u, U, ugrave, Ugrave, equal, equal, VoidSymbol, VoidSymbol ] };
 key <AC03>   { [ e, E, dead_currency, EuroSign, parenleft, parenright, VoidSymbol, VoidSymbol ] };
 key <AC04>   { [ i, I, dead_diaeresis, dead_abovedot, braceleft, braceright, VoidSymbol, VoidSymbol ] };
 key <AC05>   { [ comma, comma, comma, dead_breve, comma, comma, comma, comma ] };
 key <AC06>   { [ c, C, slash, backslash, slash, slash, VoidSymbol, VoidSymbol ] };
 key <AC07>   { [ t, T, dollar, VoidSymbol, 0, VoidSymbol, dollar, VoidSymbol ] };
 key <AC08>   { [ s, S, numbersign, ssharp, 1, VoidSymbol, numbersign, VoidSymbol ] };
 key <AC09>   { [ r, R, asciitilde, VoidSymbol, 2, VoidSymbol, asciitilde, VoidSymbol ] };
 key <AC10>   { [ n, N, VoidSymbol, VoidSymbol, 3, VoidSymbol, VoidSymbol, VoidSymbol ] };


//Fourth row

 key <AB01>   { [ agrave, Agrave, endash, endash, asterisk, VoidSymbol, VoidSymbol, VoidSymbol ] };
 key <AB02>   { [ y, Y, U2243, notequal, VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] };
 key <AB03>   { [ x, X, VoidSymbol, VoidSymbol, bracketleft, bracketright, VoidSymbol, VoidSymbol ] };
 key <AB04>   { [ period, period, ellipsis, VoidSymbol, period, period, period, period ] };
 key <AB05>   { [ k, K, VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] };
 key <AB06>   { [ rightsinglequotemark, rightsinglequotemark, question, question, question, question, question, question ] };
 key <AB07>   { [ q, Q, VoidSymbol, VoidSymbol, 4, VoidSymbol, VoidSymbol, VoidSymbol ] };
 key <AB08>   { [ g, G, mu, VoidSymbol, 5, VoidSymbol, VoidSymbol, VoidSymbol ] };
 key <AB09>   { [ h, H, asciicircum, VoidSymbol, 6, VoidSymbol, VoidSymbol, VoidSymbol ] };
 key <AB10>   { [ m, M, dagger, doubledagger, bar, VoidSymbol, VoidSymbol, brokenbar] };
 key <AB11>   { [ f, F, VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] };


// key <MUTE> { [ XF86AudioMute ] }; // key <VOL-> { [ XF86AudioLowerVolume] }; // key <VOL+> { [ XF86AudioRaiseVolume ] };

 key <I253> { type[group1] = "ONE_LEVEL", [ Tab ] };
 key <RCTL>           { [space] };

};

partial alphanumeric_keys

  xkb_symbols "overlay" {
      key <LCTL> { type[group1] = "ONE_LEVEL", [ VoidSymbol ], actions = [ SetControls(controls=Overlay1) ] };
      key <END>  { type[group1] = "ONE_LEVEL", [ VoidSymbol ], actions = [ SetControls(controls=Overlay1) ] };
     // key <RCTL> { type[group1] = "ONE_LEVEL", [ VoidSymbol ], actions = [ LockControls(controls=Overlay1)] };
     key <RTSH> { type[group1] = "ONE_LEVEL", [ VoidSymbol ], actions = [ LockControls(controls=Overlay1)] };


      key <I210> { type[group1] = "ONE_LEVEL", [ Left ] };
      key <I211> { type[group1] = "ONE_LEVEL", [ Down ] };
      key <I212> { type[group1] = "ONE_LEVEL", [ Up ] };
      key <I214> { type[group1] = "ONE_LEVEL", [ Right ] };
      key <AC06> {overlay1=<I210>};
      key <AC07> {overlay1=<I211>};
      key <AC08> {overlay1=<I212>};
      key <AC09> {overlay1=<I214>};


      // ctrl-x
      key <I215> { [ x ] };
      key <I216> { [ F20 ] };
      key <AB02> {overlay1=<I216>};
      // ctrl-c
      key <I217> { [ c ] };
      key <I218> { [ F21 ] };
      key <AB03> {overlay1=<I218>};
      // ctrl-v
      key <I219> { [ v ] };
      key <I220> { [ F22 ] };
      key <AB04> {overlay1=<I220>};
  };

partial modifier_keys xkb_symbols "jeopPETM_Modifiers" {

 modifier_map Mod1    { Alt_L, Alt_R, <LWIN>, <LEFT> };                              //Mod1 = Alt
 modifier_map Shift   { Shift_L, Shift_R, <LALT>, <RALT> };                          //Shift = Level2 = Shift
 modifier_map Control { Control_L, Control_R, <MENU>, <HOME>, <UP>, <I172> };        //Control = Control
 modifier_map Mod5    { ISO_Level3_Shift, <LFSH>, <AC11>};                           //Mod5 = Level3 = AltGr
 modifier_map Mod3    { ISO_Level5_Shift, <HENK>, <MUHE>, <RTSH> };                  //Mod3 = Level5 = Level5
 key.type[Group1] = "ONE_LEVEL";
 key <HOME>           { [Control_R] };
 key <UP>             { [Control_R] };
 key <MENU>           { [Control_L] };
 key <LWIN>           { [Alt_L] };
 key <LEFT>           { [Alt_R] };
 key <DOWN>           { [Alt_R] };
 key <RGHT>           { [Super_L] };
 key <SPCE>           { [Super_L] };
 key <I172>           { [Control_R] };


 key.type[Group1] = "TWO_LEVEL";
 key <LALT>           { [Shift_L, Shift_Lock] };
 key <RALT>           { [Shift_R, Shift_Lock] };
 key.type[Group1] = "FOUR_LEVEL";
 key <LFSH>           { [ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Lock, ISO_Level3_Lock] };
 key <AC11>           { [ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Lock, ISO_Level3_Lock] };
 key.type[Group1] = "EIGHT_LEVEL";
 key <HENK>           { [ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock] };
 key <MUHE>           { [ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock] };

};