diff options
author | Simon Parri <simonparri@ganzeria.com> | 2025-07-22 00:56:22 +0200 |
---|---|---|
committer | Simon Parri <simonparri@ganzeria.com> | 2025-07-22 11:49:01 +0200 |
commit | d2c331b9f036951eef062dd5141c75182375ba12 (patch) | |
tree | 325bf3c56b70ec845e8de9349f45408ed844e747 /common/.keymap.xkb | |
download | dotfiles-d2c331b9f036951eef062dd5141c75182375ba12.tar.gz dotfiles-d2c331b9f036951eef062dd5141c75182375ba12.zip |
Add current configuration
Diffstat (limited to 'common/.keymap.xkb')
-rw-r--r-- | common/.keymap.xkb | 137 |
1 files changed, 137 insertions, 0 deletions
diff --git a/common/.keymap.xkb b/common/.keymap.xkb new file mode 100644 index 0000000..47fe77b --- /dev/null +++ b/common/.keymap.xkb @@ -0,0 +1,137 @@ +// In this file, we hijack ISO_Lock to be equivalent to a fictional ISO_Level1_Shift that doesn't exist. +// I'd like a better solution but am unsure that one exists. +xkb_keymap { + xkb_keycodes { include "evdev+aliases(qwerty)" }; + xkb_types { + virtual_modifiers LevelOne, LevelThree; // , LevelFive; + type "FOUR_LEVEL" { + modifiers = Shift + LevelOne + LevelThree; // + LevelFive; + + map[None] = Level1; + map[Shift] = Level2; + level_name[Level1] = "Base"; + level_name[Level2] = "Shifted"; + + map[LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + level_name[Level3] = "Greek"; + level_name[Level4] = "Shifted Greek"; + + // map[LevelFive] = Level5; + // map[Shift+LevelFive] = Level6; + // level_name[Level5] = "Hebrew"; + // level_name[Level6] = "Shifted Hebrew"; + + map[LevelThree+LevelOne] = Level1; + preserve[LevelThree+LevelOne] = LevelOne; + map[Shift+LevelThree+LevelOne] = Level2; + preserve[Shift+LevelThree+LevelOne] = LevelOne; + + // map[LevelFive+LevelOne] = Level1; + // preserve[LevelFive+LevelOne] = LevelOne; + // map[Shift+LevelFive+LevelOne] = Level2; + // preserve[Shift+LevelFive+LevelOne] = LevelOne; + }; + augment "complete" + }; + xkb_compat { + virtual_modifiers LevelOne, LevelThree; // , LevelFive; + + interpret ISO_Lock+Any { + virtualModifier = LevelOne; + action = SetMods(modifiers=modMapMods); + }; + interpret ISO_Lock { + action = SetMods(modifiers=LevelOne); + }; + + indicator "Caps Lock" { + whichModState = Locked; + modifiers = LevelThree; + }; + // indicator "Scroll Lock" { + // whichModState = Locked; + // modifiers = LevelFive; + // }; + augment "complete" + }; + xkb_symbols { + key.type[group1] = "FOUR_LEVEL"; + key <TLDE> {[ grave, asciitilde, grave, asciitilde ]}; // , semicolon, asciitilde ]}; + key <AE01> {[ 1, exclam, 1, exclam ]}; // , 1, exclam ]}; + key <AE02> {[ 2, at, 2, at ]}; // , 2, at ]}; + key <AE03> {[ 3, numbersign, 3, numbersign ]}; // , 3, numbersign ]}; + key <AE04> {[ 4, dollar, 4, dollar ]}; // , 4, dollar ]}; + key <AE05> {[ 5, percent, 5, percent ]}; // , 5, percent ]}; + key <AE06> {[ 6, asciicircum, 6, asciicircum ]}; // , 6, asciicircum ]}; + key <AE07> {[ 7, ampersand, 7, ampersand ]}; // , 7, ampersand ]}; + key <AE08> {[ 8, asterisk, 8, asterisk ]}; // , 8, asterisk ]}; + key <AE09> {[ 9, parenleft, 9, parenleft ]}; // , 9, parenright ]}; + key <AE10> {[ 0, parenright, 0, parenright ]}; // , 0, parenleft ]}; + key <AE11> {[ minus, underscore, minus, underscore ]}; // , minus, underscore ]}; + key <AE12> {[ equal, plus, equal, plus ]}; // , equal, plus ]}; + + key <AD01> {[ q, Q, semicolon, colon ]}; // , slash, Q ]}; + key <AD02> {[ w, W, Greek_finalsmallsigma, Greek_SIGMA ]}; // , apostrophe, W ]}; + key <AD03> {[ e, E, Greek_epsilon, Greek_EPSILON ]}; // , hebrew_qoph, E ]}; + key <AD04> {[ r, R, Greek_rho, Greek_RHO ]}; // , hebrew_resh, R ]}; + key <AD05> {[ t, T, Greek_tau, Greek_TAU ]}; // , hebrew_aleph, T ]}; + key <AD06> {[ y, Y, Greek_upsilon, Greek_UPSILON ]}; // , hebrew_tet, Y ]}; + key <AD07> {[ u, U, Greek_theta, Greek_THETA ]}; // , hebrew_waw, U ]}; + key <AD08> {[ i, I, Greek_iota, Greek_IOTA ]}; // , hebrew_finalnun, I ]}; + key <AD09> {[ o, O, Greek_omicron, Greek_OMICRON ]}; // , hebrew_finalmem, O ]}; + key <AD10> {[ p, P, Greek_pi, Greek_PI ]}; // , hebrew_pe, P ]}; + key <AD11> {[ bracketleft, braceleft, bracketleft, braceleft ]}; // , bracketright, braceright ]}; + key <AD12> {[ bracketright, braceright, bracketright, braceright ]}; // , bracketleft, braceleft ]}; + + key <AC01> {[ a, A, Greek_alpha, Greek_ALPHA ]}; // , hebrew_shin, A ]}; + key <AC02> {[ s, S, Greek_sigma, Greek_SIGMA ]}; // , hebrew_dalet, S ]}; + key <AC03> {[ d, D, Greek_delta, Greek_DELTA ]}; // , hebrew_gimel, D ]}; + key <AC04> {[ f, F, Greek_phi, Greek_PHI ]}; // , hebrew_kaph, F ]}; + key <AC05> {[ g, G, Greek_gamma, Greek_GAMMA ]}; // , hebrew_ayin, G ]}; + key <AC06> {[ h, H, Greek_eta, Greek_ETA ]}; // , hebrew_yod, H ]}; + key <AC07> {[ j, J, Greek_xi, Greek_XI ]}; // , hebrew_chet, J ]}; + key <AC08> {[ k, K, Greek_kappa, Greek_KAPPA ]}; // , hebrew_lamed, K ]}; + key <AC09> {[ l, L, Greek_lamda, Greek_LAMDA ]}; // , hebrew_finalkaph, L ]}; + key <AC10> {[ semicolon, colon, dead_acute, dead_diaeresis ]}; // , hebrew_finalpe, colon ]}; + key <AC11> {[ apostrophe, quotedbl, apostrophe, quotedbl ]}; // , comma, quotedbl ]}; + key <BKSL> {[ backslash, bar, backslash, bar ]}; // , backslash, bar ]}; + + key <AB01> {[ z, Z, Greek_zeta, Greek_ZETA ]}; // , hebrew_zain, Z ]}; + key <AB02> {[ x, X, Greek_chi, Greek_CHI ]}; // , hebrew_samech, X ]}; + key <AB03> {[ c, C, Greek_psi, Greek_PSI ]}; // , hebrew_bet, C ]}; + key <AB04> {[ v, V, Greek_omega, Greek_OMEGA ]}; // , hebrew_he, V ]}; + key <AB05> {[ b, B, Greek_beta, Greek_BETA ]}; // , hebrew_nun, B ]}; + key <AB06> {[ n, N, Greek_nu, Greek_NU ]}; // , hebrew_mem, N ]}; + key <AB07> {[ m, M, Greek_mu, Greek_MU ]}; // , hebrew_zade, M ]}; + key <AB08> {[ comma, less, comma, less ]}; // , hebrew_taw, greater ]}; + key <AB09> {[ period, greater, period, greater ]}; // , hebrew_finalzade, less ]}; + key <AB10> {[ slash, question, slash, question ]}; // , period, question ]}; + + key <FK19> {[ ISO_Level3_Shift, ISO_Level3_Shift, ISO_Lock, ISO_Lock ]}; // , NoSymbol, NoSymbol ]}; + // key <FK17> {[ ISO_Level5_Shift, ISO_Level5_Shift, NoSymbol, NoSymbol, ISO_Lock, ISO_Lock ]}; + + key.type[group1] = "ONE_LEVEL"; + key <FK20> {[ ISO_Level3_Lock ]}; + // key <FK18> {[ ISO_Level5_Lock ]}; + + key <FK21> {[ Meta_L ]}; + key <FK22> {[ Meta_R ]}; + key <FK23> {[ Hyper_L ]}; + key <FK24> {[ Hyper_R ]}; + key <LALT> {[ Alt_L ]}; + key <RALT> {[ Alt_R ]}; + + key <MENU> {[ Multi_key ]}; + + modifier_map Mod1 { Alt_L, Alt_R }; + modifier_map Mod2 { Meta_L, Meta_R }; + modifier_map Mod3 { Hyper_L, Hyper_R }; + modifier_map Mod4 { Super_L, Super_R }; + + key.type[group1] = "TWO_LEVEL"; + augment "pc" + augment "us" + augment "inet(evdev)" + }; +}; |