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

De Disposition de clavier bépo
Aucun résumé des modifications
mAucun résumé des modifications
 
(3 versions intermédiaires par le même utilisateur non affichées)
Ligne 34 : Ligne 34 :


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




Fichier ~/.xkb/jeopPETM.xkb
Fichier ~/.xkb/jeopPETM.xkb


xkb_keymap  {
  xkb_keymap  {
 
  xkb_keycodes          { include "evdev+aliases(azerty)" };
xkb_keycodes          { include "evdev+aliases(azerty)" };
  xkb_types            { include "complete" };
 
  xkb_geometry         { include "typematrix(tm2030USB-106)" };
xkb_types            { include "complete" };
  xkb_compatibility {
 
    include "complete"
xkb_geometry { include "typematrix(tm2030USB-106)" };
 
 
    interpret F20 {
xkb_compatibility {
      action = Redirect(Key=<I215>, modifiers=Control);    // ctrl-x
  include "complete"
      };
 
     
  interpret F20 {
    interpret F21 {
    action = Redirect(Key=<I215>, modifiers=Control);    // ctrl-x
      action = Redirect(Key=<I217>, modifiers=Control);    // ctrl-c
    };
      };
 
   
  interpret F21 {
    interpret F22 {
    action = Redirect(Key=<I217>, modifiers=Control);    // ctrl-c
      action = Redirect(Key=<I219>, modifiers=Control);    // ctrl-v
    };
      };
 
  };
  interpret F22 {
  xkb_symbols  { include "pc(pc105)+jeopPETM(jeop)" };
    action = Redirect(Key=<I219>, modifiers=Control);    // ctrl-v
  };
    };
 
 
};
 
xkb_symbols  { include "pc(pc105)+jeopPETM(jeop)" };
 
};




Ligne 97 : Ligne 86 :
Fichier ~/.xkb/symbols/jeopPETM
Fichier ~/.xkb/symbols/jeopPETM


partial alphanumeric_keys
  partial alphanumeric_keys
xkb_symbols "jeop" {
  xkb_symbols "jeop" {
  include "keypad(oss)"
    include "keypad(oss)"
  include "fr(basic)"
    include "fr(basic)"
  include "jeopPETM(jeopPETM_Modifiers)"
    include "jeopPETM(jeopPETM_Modifiers)"
  include "jeopPETM(overlay)"
    include "jeopPETM(overlay)"
 
    name[Group1]="French jeop Typematrix";
  name[Group1]="French jeop Typematrix";
   
 
   
 
 
 
   key.type[Group1] = "EIGHT_LEVEL";
   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, acircumflex, Acircumflex, minus, VoidSymbol, VoidSymbol, VoidSymbol ] };
    key <AC02>  { [ u, U, ugrave, Ugrave, equal, equal, VoidSymbol, VoidSymbol ] };
    key <AC03>  { [ e, E, ecircumflex, Ecircumflex, 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, asciicircum, 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, asterisk, VoidSymbol, 3, VoidSymbol, asterisk, 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, emdash, U2022, 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, dead_currency, VoidSymbol, 4, VoidSymbol, VoidSymbol, VoidSymbol ] };
    key <AB08>  { [ g, G, mu, VoidSymbol, 5, VoidSymbol, VoidSymbol, VoidSymbol ] };
    key <AB09>  { [ h, H, VoidSymbol, 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 <I252> { type[group1] = "ONE_LEVEL", [ space ] };
    key <I251> { type[group1] = "ONE_LEVEL", [ Return ] };
 
    key <RCTL>          { [Return] };
  };


//First row
   
   key <AE01>  { [ multiply, section, masculine, VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] };                    //  §
   partial alphanumeric_keys
  key <AE02>  { [ w, W, VoidSymbol, U2011, VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] };                                          // w W  ‑
    xkb_symbols "overlay" {
  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 <LCTL> { type[group1] = "ONE_LEVEL", [ VoidSymbol ], actions = [ SetControls(controls=Overlay1) ] };
       key <END>  { 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 <RCTL> { type[group1] = "ONE_LEVEL", [ VoidSymbol ], actions = [ LockControls(controls=Overlay1)] };
      key <RTSH> { 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 <I210> { type[group1] = "ONE_LEVEL", [ Left ] };
       key <I211> { type[group1] = "ONE_LEVEL", [ Down ] };
       key <I211> { type[group1] = "ONE_LEVEL", [ Down ] };
Ligne 201 : Ligne 186 :
       key <AC08> {overlay1=<I212>};
       key <AC08> {overlay1=<I212>};
       key <AC09> {overlay1=<I214>};
       key <AC09> {overlay1=<I214>};
 
         
 
       // ctrl-x
       // ctrl-x
       key <I215> { [ x ] };
       key <I215> { [ x ] };
       key <I216> { [ F20 ] };
       key <I216> { [ F20 ] };
       key <AB02> {overlay1=<I216>};
       key <AB02> {overlay1=<I216>};
     
       // ctrl-c
       // ctrl-c
       key <I217> { [ c ] };
       key <I217> { [ c ] };
       key <I218> { [ F21 ] };
       key <I218> { [ F21 ] };
       key <AB03> {overlay1=<I218>};
       key <AB03> {overlay1=<I218>};
     
       // ctrl-v
       // ctrl-v
       key <I219> { [ v ] };
       key <I219> { [ v ] };
       key <I220> { [ F22 ] };
       key <I220> { [ F22 ] };
       key <AB04> {overlay1=<I220>};
       key <AB04> {overlay1=<I220>};
  };
    };
 
 
partial modifier_keys
  partial modifier_keys
xkb_symbols "jeopPETM_Modifiers" {
  xkb_symbols "jeopPETM_Modifiers" {
  modifier_map Mod1    { Alt_L, Alt_R, <LWIN>, <LEFT> };                              //Mod1 = Alt
    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 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 Control { Control_L, Control_R, <MENU>, <HOME>, <UP>, <I172> };        //Control = Control
  modifier_map Mod5    { ISO_Level3_Shift, <LFSH>, <AC11>};                          //Mod5 = Level3 = AltGr
    modifier_map Mod5    { ISO_Level3_Shift, <LFSH>, <AC11>};                          //Mod5 = Level3 = AltGr
  modifier_map Mod3    { ISO_Level5_Shift, <HENK>, <MUHE>, <RTSH> };                  //Mod3 = Level5 = Level5
    modifier_map Mod3    { ISO_Level5_Shift, <HENK>, <MUHE>, <RTSH> };                  //Mod3 = Level5 = Level5
 
   
  key.type[Group1] = "ONE_LEVEL";
    key.type[Group1] = "ONE_LEVEL";
  key <HOME>          { [Control_R] };
    key <HOME>          { [Control_R] };
  key <UP>            { [Control_R] };
    key <UP>            { [Control_R] };
  key <MENU>          { [Control_L] };
    key <MENU>          { [Control_L] };
  key <LWIN>          { [Alt_L] };
    key <LWIN>          { [Alt_L] };
  key <LEFT>          { [Alt_R] };
    key <LEFT>          { [Alt_R] };
  key <DOWN>          { [Alt_R] };
    key <DOWN>          { [Alt_R] };
  key <RGHT>          { [Super_L] };
    key <RGHT>          { [Super_L] };
  key <SPCE>          { [Super_L] };
    key <SPCE>          { [Super_L] };
  key <I172>          { [Control_R] };
    key <I172>          { [Control_R] };
 
   
 
    key.type[Group1] = "TWO_LEVEL";
  key.type[Group1] = "TWO_LEVEL";
    key <LALT>          { [Shift_L, Shift_Lock] };
  key <LALT>          { [Shift_L, Shift_Lock] };
    key <RALT>          { [Shift_R, Shift_Lock] };
  key <RALT>          { [Shift_R, Shift_Lock] };
   
 
    key.type[Group1] = "FOUR_LEVEL";
  key.type[Group1] = "FOUR_LEVEL";
    key <LFSH>          { [ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Lock, ISO_Level3_Lock] };
  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 <AC11>          { [ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Lock, ISO_Level3_Lock] };
   
 
    key.type[Group1] = "EIGHT_LEVEL";
  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 <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] };
  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] };
  };
};

Dernière version du 23 juin 2015 à 14:55

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, acircumflex, Acircumflex, minus, VoidSymbol, VoidSymbol, VoidSymbol ] };
   key <AC02>   { [ u, U, ugrave, Ugrave, equal, equal, VoidSymbol, VoidSymbol ] };
   key <AC03>   { [ e, E, ecircumflex, Ecircumflex, 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, asciicircum, 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, asterisk, VoidSymbol, 3, VoidSymbol, asterisk, 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, emdash, U2022, 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, dead_currency, VoidSymbol, 4, VoidSymbol, VoidSymbol, VoidSymbol ] };
   key <AB08>   { [ g, G, mu, VoidSymbol, 5, VoidSymbol, VoidSymbol, VoidSymbol ] };
   key <AB09>   { [ h, H, VoidSymbol, 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 <I252> { type[group1] = "ONE_LEVEL", [ space ] };
   key <I251> { type[group1] = "ONE_LEVEL", [ Return ] };
 
   key <RCTL>           { [Return] };
 };


 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] };
 };