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

De Disposition de clavier bépo
Aucun résumé des modifications
mAucun résumé des modifications
 
(9 versions intermédiaires par 2 utilisateurs non affichées)
Ligne 2 : Ligne 2 :


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 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 membre, le Béop de laurent et le [url=http://bepo.fr/wiki/Utilisateur:Robin]Jéop de Robin[/url]. D'autres configurations, à moins grande échelle, m'aident aussi :
 
Je m'inspire très largement de configurations faite par d'autres membres, voici une liste de ceux qui m’ont le plus aidé :
  — [[Utilisateur:Laurent|le Béop de laurent]] ;
  — [[Utilisateur:Robin|le Jéop de Robin]] ;
  — [[Utilisateur:Lawrent|Lawrent]] ;
  — [[Utilisateur:Legrostdg|Legrostdg]] ;
  — [[Utilisateur:Nbrodu|Nbrodu]] ;
  — [[Utilisateur:Damien_thiriet|Damien_thiriet]].




Ligne 12 : Ligne 19 :
Trouver facilement un keycode :  
Trouver facilement un keycode :  
     xev | grep "keycode"
     xev | grep "keycode"
Liste des symboles (keysym):
    /usr/include/X11/keysymdef.h


Documentation concernant Xkb :
Documentation concernant Xkb :
     https://wiki.archlinux.org/index.php/X_KeyBoard_extension
     https://wiki.archlinux.org/index.php/X_KeyBoard_extension
     http://www.charvolant.org/~doug/xkb/html/node1.html
     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] };
  };

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