Utilisateur:Thyle
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] };
};