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

De Disposition de clavier bépo
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 63 : Ligne 63 :


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


Ligne 103 : Ligne 92 :
   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
//First row
   key <AE01>  { [ multiply, section, masculine, VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] };                    //  §
   key <AE01>  { [ multiply, section, masculine, VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] };                    //  §
Ligne 117 : Ligne 100 :
   key <AE04>  { [ apostrophe, VoidSymbol, leftdoublequotemark, rightdoublequotemark, apostrophe, VoidSymbol, VoidSymbol, VoidSymbol ] };            //    » »  
   key <AE04>  { [ apostrophe, VoidSymbol, leftdoublequotemark, rightdoublequotemark, apostrophe, VoidSymbol, VoidSymbol, VoidSymbol ] };            //    » »  
   key <AE05>  { [ grave, VoidSymbol, leftsinglequotemark, questiondown, grave, VoidSymbol, VoidSymbol, VoidSymbol ] };
   key <AE05>  { [ grave, VoidSymbol, leftsinglequotemark, questiondown, grave, VoidSymbol, VoidSymbol, VoidSymbol ] };
   key <AE06>  { [ underscore, underscore, VoidSymbol, exclamdown, underscore, underscore, VoidSymbol, VoidSymbol ] };                  //
   key <AE06>  { [ underscore, underscore, VoidSymbol, exclamdown, underscore, underscore, VoidSymbol, VoidSymbol ] };                  //
   key <AE07>  { [ ccedilla, Ccedilla, VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] };                        // @  ” ¡
   key <AE07>  { [ ccedilla, Ccedilla, VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] };                        // @  ” ¡
Ligne 125 : Ligne 107 :
   key <AE11>  { [ degree, registered, trademark, copyright, 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 ] };                    // µ ˘ ¯ ‰
   key <AE12>  { [ dead_greek, dead_belowdot, dead_breve, dead_horn, U2030, VoidSymbol, VoidSymbol, VoidSymbol ] };                    // µ ˘ ¯ ‰
//Second row
//Second row
   key <TAB>    { [ at, at, at, at, at, at, at, at ] };
   key <TAB>    { [ at, at, at, at, at, at, at, at ] };
Ligne 134 : Ligne 114 :
   key <AD04>  { [ p, P, lessthanequal, greaterthanequal, VoidSymbol, VoidSymbol, 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 <AD05>  { [ egrave, Egrave, dead_grave, dead_abovering, VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] };
   key <AD06>  { [ dead_circumflex, dead_circumflex, exclam, exclam, exclam, VoidSymbol, exclam, exclam ] };
   key <AD06>  { [ dead_circumflex, dead_circumflex, exclam, exclam, exclam, VoidSymbol, exclam, exclam ] };
   key <AD07>  { [ v, V, VoidSymbol, VoidSymbol, 7, VoidSymbol, VoidSymbol, VoidSymbol ] };
   key <AD07>  { [ v, V, VoidSymbol, VoidSymbol, 7, VoidSymbol, VoidSymbol, VoidSymbol ] };
Ligne 142 : Ligne 121 :
   key <AD11>  { [ z, Z, schwa, SCHWA, VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] };
   key <AD11>  { [ z, Z, schwa, SCHWA, VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] };
   key <AD12>  { [ U21D2, VoidSymbol, rightarrow, lefttarrow, VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] };
   key <AD12>  { [ U21D2, VoidSymbol, rightarrow, lefttarrow, VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] };


//Third row
//Third row
Ligne 151 : Ligne 128 :
   key <AC04>  { [ i, I, dead_diaeresis, dead_abovedot, braceleft, braceright, 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 <AC05>  { [ comma, comma, comma, dead_breve, comma, comma, comma, comma ] };
   key <AC06>  { [ c, C, slash, backslash, slash, slash, VoidSymbol, VoidSymbol ] };
   key <AC06>  { [ c, C, slash, backslash, slash, slash, VoidSymbol, VoidSymbol ] };
   key <AC07>  { [ t, T, dollar, VoidSymbol, 0, VoidSymbol, dollar, VoidSymbol ] };
   key <AC07>  { [ t, T, dollar, VoidSymbol, 0, VoidSymbol, dollar, VoidSymbol ] };
Ligne 157 : Ligne 133 :
   key <AC09>  { [ r, R, asciitilde, VoidSymbol, 2, VoidSymbol, asciitilde, VoidSymbol ] };
   key <AC09>  { [ r, R, asciitilde, VoidSymbol, 2, VoidSymbol, asciitilde, VoidSymbol ] };
   key <AC10>  { [ n, N, VoidSymbol, VoidSymbol, 3, VoidSymbol, VoidSymbol, VoidSymbol ] };
   key <AC10>  { [ n, N, VoidSymbol, VoidSymbol, 3, VoidSymbol, VoidSymbol, VoidSymbol ] };


//Fourth row
//Fourth row
Ligne 165 : Ligne 140 :
   key <AB04>  { [ period, period, ellipsis, VoidSymbol, period, period, period, period ] };
   key <AB04>  { [ period, period, ellipsis, VoidSymbol, period, period, period, period ] };
   key <AB05>  { [ k, K, VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] };
   key <AB05>  { [ k, K, VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] };
   key <AB06>  { [ rightsinglequotemark, rightsinglequotemark, question, question, question, question, question, question ] };
   key <AB06>  { [ rightsinglequotemark, rightsinglequotemark, question, question, question, question, question, question ] };
   key <AB07>  { [ q, Q, VoidSymbol, VoidSymbol, 4, VoidSymbol, VoidSymbol, VoidSymbol ] };
   key <AB07>  { [ q, Q, VoidSymbol, VoidSymbol, 4, VoidSymbol, VoidSymbol, VoidSymbol ] };
Ligne 172 : Ligne 146 :
   key <AB10>  { [ m, M, dagger, doubledagger, bar, VoidSymbol, VoidSymbol, brokenbar] };
   key <AB10>  { [ m, M, dagger, doubledagger, bar, VoidSymbol, VoidSymbol, brokenbar] };
   key <AB11>  { [ f, F, VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] };
   key <AB11>  { [ f, F, VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] };
//  key <MUTE> { [ XF86AudioMute ] };
//  key <MUTE> { [ XF86AudioMute ] };
//  key <VOL-> { [ XF86AudioLowerVolume] };
//  key <VOL-> { [ XF86AudioLowerVolume] };
//  key <VOL+> { [ XF86AudioRaiseVolume ] };
//  key <VOL+> { [ XF86AudioRaiseVolume ] };
   key <I253> { type[group1] = "ONE_LEVEL", [ Tab ] };
   key <I253> { type[group1] = "ONE_LEVEL", [ Tab ] };
   key <RCTL>          { [space] };
   key <RCTL>          { [space] };
};
};
partial alphanumeric_keys
partial alphanumeric_keys
   xkb_symbols "overlay" {
   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 166 :
       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 ] };
Ligne 216 : Ligne 179 :
       key <AB04> {overlay1=<I220>};
       key <AB04> {overlay1=<I220>};
   };
   };
partial modifier_keys
partial modifier_keys
xkb_symbols "jeopPETM_Modifiers" {
xkb_symbols "jeopPETM_Modifiers" {
Ligne 224 : Ligne 186 :
   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] };
Ligne 235 : Ligne 196 :
   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] };
};
};

Version du 4 juin 2015 à 15:21

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

};