openstenoproject / plover

Open source stenotype engine
http://opensteno.org/plover
GNU General Public License v2.0
2.33k stars 281 forks source link

#Control maps to #Hyper or #Super #1189

Open swhalemwo opened 3 years ago

swhalemwo commented 3 years ago

Summary

Hi,

thanks for this great program, it has greatly increased my joy of writing. However, recently I've encountered an issue with my control key combinations: while previously e.g. {#Control_L(l)} would execute Control+L as expected, it now executes Hyper(L), while {#Control_R(l)} executes Super(L) (this completely breaks my workflow since I'm using Emacs and hence very much rely on Control key bindings). Other key combinations with Alt and Super work as expected. I had a look into xkeyboardcontrol.py, and found that when I manually "remap" the Control key code from 105 to 66 in send_key_combinations, things work as expected:

key_events2 = []
for i in key_events:
    if i[0] == 105:
        key_events2.append((66, i[1]))
    else:
        key_events2.append((i[0], i[1]))
key_events = key_events2

Reproducing

I'm not sure what caused this problem/how to reproduce, as previously my control keys worked as expected and I don't remember what caused the control combinations stop working. It might be that the interaction of qmk (I'm using a preonic keyboard instead of the laptop internal keyboard) and xkb (which I use to get a Hyper key for non-plover tasks) somehow confuses the modifier mapping in Plover?

Plover Version

Git SHA: d20167f

System

5.10.15-1-MANJARO x86_6, i3, running plover from git clone

user202729 commented 3 years ago

Does restarting Plover works? (just to be sure. Plover has the local keymap cache) If it does, then you need to merge pull request #1164 .

Where do you even get the 105 and 66 value from? On my machine...

>>> key_combo.parse_key_combo("Control_L(L)", E._get_keycode_from_keystring)
[(37, True), (46, True), (46, False), (37, False)]

What does xmodmap -pk output?

swhalemwo commented 3 years ago

thanks for the suggestion! restarting plover does unfortunately not work. the keycode 105 is what plover believed to be Control_R, which is the control key I use for my control key bindings. 66 is actually Control_L on my laptop keyboard (I use plover on a plugged in preonic). Control_L of my preonic also has the keycode 37, however when I use 37 instead of 66, I'm getting a Hyper+key combination.

`xmodmap -pk` returns the following: There are 7 KeySyms per KeyCode; KeyCodes range from 8 to 255. KeyCode Keysym (Keysym) ... Value Value (Name) ... 8 9 0xff1b (Escape) 0x0000 (NoSymbol) 0xff1b (Escape) 10 0x0031 (1) 0x0021 (exclam) 0x0031 (1) 0x0021 (exclam) 11 0x0032 (2) 0x0040 (at) 0x0032 (2) 0x0040 (at) 12 0x0033 (3) 0x0023 (numbersign) 0x0033 (3) 0x0023 (numbersign) 13 0x0034 (4) 0x0024 (dollar) 0x0034 (4) 0x0024 (dollar) 14 0x0035 (5) 0x0025 (percent) 0x0035 (5) 0x0025 (percent) 15 0x0036 (6) 0x005e (asciicircum) 0x0036 (6) 0x005e (asciicircum) 16 0x0037 (7) 0x0026 (ampersand) 0x0037 (7) 0x0026 (ampersand) 17 0x0038 (8) 0x002a (asterisk) 0x0038 (8) 0x002a (asterisk) 18 0x0039 (9) 0x0028 (parenleft) 0x0039 (9) 0x0028 (parenleft) 19 0x0030 (0) 0x0029 (parenright) 0x0030 (0) 0x0029 (parenright) 20 0x002d (minus) 0x005f (underscore) 0x002d (minus) 0x005f (underscore) 21 0x003d (equal) 0x002b (plus) 0x003d (equal) 0x002b (plus) 22 0xff08 (BackSpace) 0xff08 (BackSpace) 0xff08 (BackSpace) 0xff08 (BackSpace) 23 0xff09 (Tab) 0xfe20 (ISO_Left_Tab) 0xff09 (Tab) 0xfe20 (ISO_Left_Tab) 24 0x0071 (q) 0x0051 (Q) 0x0071 (q) 0x0051 (Q) 25 0x0077 (w) 0x0057 (W) 0x0077 (w) 0x0057 (W) 26 0x0065 (e) 0x0045 (E) 0x0065 (e) 0x0045 (E) 27 0x0072 (r) 0x0052 (R) 0x0072 (r) 0x0052 (R) 28 0x0074 (t) 0x0054 (T) 0x0074 (t) 0x0054 (T) 29 0x0079 (y) 0x0059 (Y) 0x0079 (y) 0x0059 (Y) 30 0x0075 (u) 0x0055 (U) 0x0075 (u) 0x0055 (U) 31 0x0069 (i) 0x0049 (I) 0x0069 (i) 0x0049 (I) 32 0x006f (o) 0x004f (O) 0x006f (o) 0x004f (O) 33 0x0070 (p) 0x0050 (P) 0x0070 (p) 0x0050 (P) 34 0x005b (bracketleft) 0x007b (braceleft) 0x005b (bracketleft) 0x007b (braceleft) 35 0x005d (bracketright) 0x007d (braceright) 0x005d (bracketright) 0x007d (braceright) 36 0xff0d (Return) 0x0000 (NoSymbol) 0xff0d (Return) 37 0xffe3 (Control_L) 0x0000 (NoSymbol) 0xffe3 (Control_L) 38 0x0061 (a) 0x0041 (A) 0x0061 (a) 0x0041 (A) 39 0x0073 (s) 0x0053 (S) 0x0073 (s) 0x0053 (S) 40 0x0064 (d) 0x0044 (D) 0x0064 (d) 0x0044 (D) 41 0x0066 (f) 0x0046 (F) 0x0066 (f) 0x0046 (F) 42 0x0067 (g) 0x0047 (G) 0x0067 (g) 0x0047 (G) 43 0x0068 (h) 0x0048 (H) 0x0068 (h) 0x0048 (H) 44 0x006a (j) 0x004a (J) 0x006a (j) 0x004a (J) 45 0x006b (k) 0x004b (K) 0x006b (k) 0x004b (K) 46 0x006c (l) 0x004c (L) 0x006c (l) 0x004c (L) 47 0x003b (semicolon) 0x003a (colon) 0x003b (semicolon) 0x003a (colon) 48 0x0027 (apostrophe) 0x0022 (quotedbl) 0x0027 (apostrophe) 0x0022 (quotedbl) 49 0x0060 (grave) 0x007e (asciitilde) 0x0060 (grave) 0x007e (asciitilde) 50 0xffe1 (Shift_L) 0x0000 (NoSymbol) 0xffe1 (Shift_L) 51 0x005c (backslash) 0x007c (bar) 0x005c (backslash) 0x007c (bar) 52 0x007a (z) 0x005a (Z) 0x007a (z) 0x005a (Z) 53 0x0078 (x) 0x0058 (X) 0x0078 (x) 0x0058 (X) 54 0x0063 (c) 0x0043 (C) 0x0063 (c) 0x0043 (C) 55 0x0076 (v) 0x0056 (V) 0x0076 (v) 0x0056 (V) 56 0x0062 (b) 0x0042 (B) 0x0062 (b) 0x0042 (B) 57 0x006e (n) 0x004e (N) 0x006e (n) 0x004e (N) 58 0x006d (m) 0x004d (M) 0x006d (m) 0x004d (M) 59 0x002c (comma) 0x003c (less) 0x002c (comma) 0x003c (less) 60 0x002e (period) 0x003e (greater) 0x002e (period) 0x003e (greater) 61 0x002f (slash) 0x003f (question) 0x002f (slash) 0x003f (question) 62 0xffe2 (Shift_R) 0x0000 (NoSymbol) 0xffe2 (Shift_R) 63 0xffaa (KP_Multiply) 0xffaa (KP_Multiply) 0xffaa (KP_Multiply) 0xffaa (KP_Multiply) 0xffaa (KP_Multiply) 0xffaa (KP_Multiply) 0x1008fe21 (XF86ClearGrab) 64 0xffe9 (Alt_L) 0xffe7 (Meta_L) 0xffe9 (Alt_L) 0xffe7 (Meta_L) 65 0x0020 (space) 0x0000 (NoSymbol) 0x0020 (space) 66 0xffe5 (Caps_Lock) 0x0000 (NoSymbol) 0xffe5 (Caps_Lock) 67 0xffbe (F1) 0xffbe (F1) 0xffbe (F1) 0xffbe (F1) 0xffbe (F1) 0xffbe (F1) 0x1008fe01 (XF86Switch_VT_1) 68 0xffbf (F2) 0xffbf (F2) 0xffbf (F2) 0xffbf (F2) 0xffbf (F2) 0xffbf (F2) 0x1008fe02 (XF86Switch_VT_2) 69 0xffc0 (F3) 0xffc0 (F3) 0xffc0 (F3) 0xffc0 (F3) 0xffc0 (F3) 0xffc0 (F3) 0x1008fe03 (XF86Switch_VT_3) 70 0xffc1 (F4) 0xffc1 (F4) 0xffc1 (F4) 0xffc1 (F4) 0xffc1 (F4) 0xffc1 (F4) 0x1008fe04 (XF86Switch_VT_4) 71 0xffc2 (F5) 0xffc2 (F5) 0xffc2 (F5) 0xffc2 (F5) 0xffc2 (F5) 0xffc2 (F5) 0x1008fe05 (XF86Switch_VT_5) 72 0xffc3 (F6) 0xffc3 (F6) 0xffc3 (F6) 0xffc3 (F6) 0xffc3 (F6) 0xffc3 (F6) 0x1008fe06 (XF86Switch_VT_6) 73 0xffc4 (F7) 0xffc4 (F7) 0xffc4 (F7) 0xffc4 (F7) 0xffc4 (F7) 0xffc4 (F7) 0x1008fe07 (XF86Switch_VT_7) 74 0xffc5 (F8) 0xffc5 (F8) 0xffc5 (F8) 0xffc5 (F8) 0xffc5 (F8) 0xffc5 (F8) 0x1008fe08 (XF86Switch_VT_8) 75 0xffc6 (F9) 0xffc6 (F9) 0xffc6 (F9) 0xffc6 (F9) 0xffc6 (F9) 0xffc6 (F9) 0x1008fe09 (XF86Switch_VT_9) 76 0xffc7 (F10) 0xffc7 (F10) 0xffc7 (F10) 0xffc7 (F10) 0xffc7 (F10) 0xffc7 (F10) 0x1008fe0a (XF86Switch_VT_10) 77 0xff7f (Num_Lock) 0x0000 (NoSymbol) 0xff7f (Num_Lock) 78 0xff14 (Scroll_Lock) 0x0000 (NoSymbol) 0xff14 (Scroll_Lock) 79 0xff95 (KP_Home) 0xffb7 (KP_7) 0xff95 (KP_Home) 0xffb7 (KP_7) 80 0xff97 (KP_Up) 0xffb8 (KP_8) 0xff97 (KP_Up) 0xffb8 (KP_8) 81 0xff9a (KP_Prior) 0xffb9 (KP_9) 0xff9a (KP_Prior) 0xffb9 (KP_9) 82 0xffad (KP_Subtract) 0xffad (KP_Subtract) 0xffad (KP_Subtract) 0xffad (KP_Subtract) 0xffad (KP_Subtract) 0xffad (KP_Subtract) 0x1008fe23 (XF86Prev_VMode) 83 0xff96 (KP_Left) 0xffb4 (KP_4) 0xff96 (KP_Left) 0xffb4 (KP_4) 84 0xff9d (KP_Begin) 0xffb5 (KP_5) 0xff9d (KP_Begin) 0xffb5 (KP_5) 85 0xff98 (KP_Right) 0xffb6 (KP_6) 0xff98 (KP_Right) 0xffb6 (KP_6) 86 0xffab (KP_Add) 0xffab (KP_Add) 0xffab (KP_Add) 0xffab (KP_Add) 0xffab (KP_Add) 0xffab (KP_Add) 0x1008fe22 (XF86Next_VMode) 87 0xff9c (KP_End) 0xffb1 (KP_1) 0xff9c (KP_End) 0xffb1 (KP_1) 88 0xff99 (KP_Down) 0xffb2 (KP_2) 0xff99 (KP_Down) 0xffb2 (KP_2) 89 0xff9b (KP_Next) 0xffb3 (KP_3) 0xff9b (KP_Next) 0xffb3 (KP_3) 90 0xff9e (KP_Insert) 0xffb0 (KP_0) 0xff9e (KP_Insert) 0xffb0 (KP_0) 91 0xff9f (KP_Delete) 0xffae (KP_Decimal) 0xff9f (KP_Delete) 0xffae (KP_Decimal) 92 0xfe03 (ISO_Level3_Shift) 0x0000 (NoSymbol) 0xfe03 (ISO_Level3_Shift) 93 94 0x003c (less) 0x003e (greater) 0x003c (less) 0x003e (greater) 0x007c (bar) 0x00a6 (brokenbar) 0x007c (bar) 95 0xffc8 (F11) 0xffc8 (F11) 0xffc8 (F11) 0xffc8 (F11) 0xffc8 (F11) 0xffc8 (F11) 0x1008fe0b (XF86Switch_VT_11) 96 0xffc9 (F12) 0xffc9 (F12) 0xffc9 (F12) 0xffc9 (F12) 0xffc9 (F12) 0xffc9 (F12) 0x1008fe0c (XF86Switch_VT_12) 97 98 0xff26 (Katakana) 0x0000 (NoSymbol) 0xff26 (Katakana) 99 0xff25 (Hiragana) 0x0000 (NoSymbol) 0xff25 (Hiragana) 100 0xff23 (Henkan_Mode) 0x0000 (NoSymbol) 0xff23 (Henkan_Mode) 101 0xff27 (Hiragana_Katakana) 0x0000 (NoSymbol) 0xff27 (Hiragana_Katakana) 102 0xff22 (Muhenkan) 0x0000 (NoSymbol) 0xff22 (Muhenkan) 103 104 0xff8d (KP_Enter) 0x0000 (NoSymbol) 0xff8d (KP_Enter) 105 0xffe4 (Control_R) 0x0000 (NoSymbol) 0xffe4 (Control_R) 106 0xffaf (KP_Divide) 0xffaf (KP_Divide) 0xffaf (KP_Divide) 0xffaf (KP_Divide) 0xffaf (KP_Divide) 0xffaf (KP_Divide) 0x1008fe20 (XF86Ungrab) 107 0xff61 (Print) 0xff15 (Sys_Req) 0xff61 (Print) 0xff15 (Sys_Req) 108 0xffea (Alt_R) 0xffe8 (Meta_R) 0xffea (Alt_R) 0xffe8 (Meta_R) 109 0xff0a (Linefeed) 0x0000 (NoSymbol) 0xff0a (Linefeed) 110 0xff50 (Home) 0x0000 (NoSymbol) 0xff50 (Home) 111 0xff52 (Up) 0x0000 (NoSymbol) 0xff52 (Up) 112 0xff55 (Prior) 0x0000 (NoSymbol) 0xff55 (Prior) 113 0xff51 (Left) 0x0000 (NoSymbol) 0xff51 (Left) 114 0xff53 (Right) 0x0000 (NoSymbol) 0xff53 (Right) 115 0xff57 (End) 0x0000 (NoSymbol) 0xff57 (End) 116 0xff54 (Down) 0x0000 (NoSymbol) 0xff54 (Down) 117 0xff56 (Next) 0x0000 (NoSymbol) 0xff56 (Next) 118 0xff63 (Insert) 0x0000 (NoSymbol) 0xff63 (Insert) 119 0xffff (Delete) 0x0000 (NoSymbol) 0xffff (Delete) 120 121 0x1008ff12 (XF86AudioMute) 0x0000 (NoSymbol) 0x1008ff12 (XF86AudioMute) 122 0x1008ff11 (XF86AudioLowerVolume) 0x0000 (NoSymbol) 0x1008ff11 (XF86AudioLowerVolume) 123 0x1008ff13 (XF86AudioRaiseVolume) 0x0000 (NoSymbol) 0x1008ff13 (XF86AudioRaiseVolume) 124 0x1008ff2a (XF86PowerOff) 0x0000 (NoSymbol) 0x1008ff2a (XF86PowerOff) 125 0xffbd (KP_Equal) 0x0000 (NoSymbol) 0xffbd (KP_Equal) 126 0x00b1 (plusminus) 0x0000 (NoSymbol) 0x00b1 (plusminus) 127 0xff13 (Pause) 0xff6b (Break) 0xff13 (Pause) 0xff6b (Break) 128 0x1008ff4a (XF86LaunchA) 0x0000 (NoSymbol) 0x1008ff4a (XF86LaunchA) 129 0xffae (KP_Decimal) 0xffae (KP_Decimal) 0xffae (KP_Decimal) 0xffae (KP_Decimal) 130 0xff31 (Hangul) 0x0000 (NoSymbol) 0xff31 (Hangul) 131 0xff34 (Hangul_Hanja) 0x0000 (NoSymbol) 0xff34 (Hangul_Hanja) 132 133 0xffeb (Super_L) 0x0000 (NoSymbol) 0xffeb (Super_L) 134 0xffec (Super_R) 0x0000 (NoSymbol) 0xffec (Super_R) 135 0xff67 (Menu) 0x0000 (NoSymbol) 0xff67 (Menu) 136 0xff69 (Cancel) 0x0000 (NoSymbol) 0xff69 (Cancel) 137 0xff66 (Redo) 0x0000 (NoSymbol) 0xff66 (Redo) 138 0x1005ff70 (SunProps) 0x0000 (NoSymbol) 0x1005ff70 (SunProps) 139 0xff65 (Undo) 0x0000 (NoSymbol) 0xff65 (Undo) 140 0x1005ff71 (SunFront) 0x0000 (NoSymbol) 0x1005ff71 (SunFront) 141 0x1008ff57 (XF86Copy) 0x0000 (NoSymbol) 0x1008ff57 (XF86Copy) 142 0x1008ff6b (XF86Open) 0x0000 (NoSymbol) 0x1008ff6b (XF86Open) 143 0x1008ff6d (XF86Paste) 0x0000 (NoSymbol) 0x1008ff6d (XF86Paste) 144 0xff68 (Find) 0x0000 (NoSymbol) 0xff68 (Find) 145 0x1008ff58 (XF86Cut) 0x0000 (NoSymbol) 0x1008ff58 (XF86Cut) 146 0xff6a (Help) 0x0000 (NoSymbol) 0xff6a (Help) 147 0x1008ff65 (XF86MenuKB) 0x0000 (NoSymbol) 0x1008ff65 (XF86MenuKB) 148 0x1008ff1d (XF86Calculator) 0x0000 (NoSymbol) 0x1008ff1d (XF86Calculator) 149 150 0x1008ff2f (XF86Sleep) 0x0000 (NoSymbol) 0x1008ff2f (XF86Sleep) 151 0x1008ff2b (XF86WakeUp) 0x0000 (NoSymbol) 0x1008ff2b (XF86WakeUp) 152 0x1008ff5d (XF86Explorer) 0x0000 (NoSymbol) 0x1008ff5d (XF86Explorer) 153 0x1008ff7b (XF86Send) 0x0000 (NoSymbol) 0x1008ff7b (XF86Send) 154 155 0x1008ff8a (XF86Xfer) 0x0000 (NoSymbol) 0x1008ff8a (XF86Xfer) 156 0x1008ff41 (XF86Launch1) 0x0000 (NoSymbol) 0x1008ff41 (XF86Launch1) 157 0x1008ff42 (XF86Launch2) 0x0000 (NoSymbol) 0x1008ff42 (XF86Launch2) 158 0x1008ff2e (XF86WWW) 0x0000 (NoSymbol) 0x1008ff2e (XF86WWW) 159 0x1008ff5a (XF86DOS) 0x0000 (NoSymbol) 0x1008ff5a (XF86DOS) 160 0x1008ff2d (XF86ScreenSaver) 0x0000 (NoSymbol) 0x1008ff2d (XF86ScreenSaver) 161 0x1008ff74 (XF86RotateWindows) 0x0000 (NoSymbol) 0x1008ff74 (XF86RotateWindows) 162 0x1008ff7f (XF86TaskPane) 0x0000 (NoSymbol) 0x1008ff7f (XF86TaskPane) 163 0x1008ff19 (XF86Mail) 0x0000 (NoSymbol) 0x1008ff19 (XF86Mail) 164 0x1008ff30 (XF86Favorites) 0x0000 (NoSymbol) 0x1008ff30 (XF86Favorites) 165 0x1008ff33 (XF86MyComputer) 0x0000 (NoSymbol) 0x1008ff33 (XF86MyComputer) 166 0x1008ff26 (XF86Back) 0x0000 (NoSymbol) 0x1008ff26 (XF86Back) 167 0x1008ff27 (XF86Forward) 0x0000 (NoSymbol) 0x1008ff27 (XF86Forward) 168 169 0x1008ff2c (XF86Eject) 0x0000 (NoSymbol) 0x1008ff2c (XF86Eject) 170 0x1008ff2c (XF86Eject) 0x1008ff2c (XF86Eject) 0x1008ff2c (XF86Eject) 0x1008ff2c (XF86Eject) 171 0x1008ff17 (XF86AudioNext) 0x0000 (NoSymbol) 0x1008ff17 (XF86AudioNext) 172 0x1008ff14 (XF86AudioPlay) 0x1008ff31 (XF86AudioPause) 0x1008ff14 (XF86AudioPlay) 0x1008ff31 (XF86AudioPause) 173 0x1008ff16 (XF86AudioPrev) 0x0000 (NoSymbol) 0x1008ff16 (XF86AudioPrev) 174 0x1008ff15 (XF86AudioStop) 0x1008ff2c (XF86Eject) 0x1008ff15 (XF86AudioStop) 0x1008ff2c (XF86Eject) 175 0x1008ff1c (XF86AudioRecord) 0x0000 (NoSymbol) 0x1008ff1c (XF86AudioRecord) 176 0x1008ff3e (XF86AudioRewind) 0x0000 (NoSymbol) 0x1008ff3e (XF86AudioRewind) 177 0x1008ff6e (XF86Phone) 0x0000 (NoSymbol) 0x1008ff6e (XF86Phone) 178 179 0x1008ff81 (XF86Tools) 0x0000 (NoSymbol) 0x1008ff81 (XF86Tools) 180 0x1008ff18 (XF86HomePage) 0x0000 (NoSymbol) 0x1008ff18 (XF86HomePage) 181 0x1008ff73 (XF86Reload) 0x0000 (NoSymbol) 0x1008ff73 (XF86Reload) 182 0x1008ff56 (XF86Close) 0x0000 (NoSymbol) 0x1008ff56 (XF86Close) 183 184 185 0x1008ff78 (XF86ScrollUp) 0x0000 (NoSymbol) 0x1008ff78 (XF86ScrollUp) 186 0x1008ff79 (XF86ScrollDown) 0x0000 (NoSymbol) 0x1008ff79 (XF86ScrollDown) 187 0x0028 (parenleft) 0x0000 (NoSymbol) 0x0028 (parenleft) 188 0x0029 (parenright) 0x0000 (NoSymbol) 0x0029 (parenright) 189 0x1008ff68 (XF86New) 0x0000 (NoSymbol) 0x1008ff68 (XF86New) 190 0xff66 (Redo) 0x0000 (NoSymbol) 0xff66 (Redo) 191 0xffed (Hyper_L) 0xffed (Hyper_L) 0xffed (Hyper_L) 0xffed (Hyper_L) 192 0x1008ff45 (XF86Launch5) 0x0000 (NoSymbol) 0x1008ff45 (XF86Launch5) 193 0x1008ff46 (XF86Launch6) 0x0000 (NoSymbol) 0x1008ff46 (XF86Launch6) 194 0x1008ff47 (XF86Launch7) 0x0000 (NoSymbol) 0x1008ff47 (XF86Launch7) 195 0x1008ff48 (XF86Launch8) 0x0000 (NoSymbol) 0x1008ff48 (XF86Launch8) 196 0x1008ff49 (XF86Launch9) 0x0000 (NoSymbol) 0x1008ff49 (XF86Launch9) 197 198 0x1008ffb2 (XF86AudioMicMute) 0x0000 (NoSymbol) 0x1008ffb2 (XF86AudioMicMute) 199 0x1008ffa9 (XF86TouchpadToggle) 0x0000 (NoSymbol) 0x1008ffa9 (XF86TouchpadToggle) 200 0x1008ffb0 (XF86TouchpadOn) 0x0000 (NoSymbol) 0x1008ffb0 (XF86TouchpadOn) 201 0x1008ffb1 (XF86TouchpadOff) 0x0000 (NoSymbol) 0x1008ffb1 (XF86TouchpadOff) 202 203 0xff7e (Mode_switch) 0x0000 (NoSymbol) 0xff7e (Mode_switch) 204 0x0000 (NoSymbol) 0xffe9 (Alt_L) 0x0000 (NoSymbol) 0xffe9 (Alt_L) 205 0x0000 (NoSymbol) 0xffe7 (Meta_L) 0x0000 (NoSymbol) 0xffe7 (Meta_L) 206 0x0000 (NoSymbol) 0xffeb (Super_L) 0x0000 (NoSymbol) 0xffeb (Super_L) 207 0x1008ff81 (XF86Tools) 0x0000 (NoSymbol) 0x1008ff81 (XF86Tools) 208 0x1008ff14 (XF86AudioPlay) 0x0000 (NoSymbol) 0x1008ff14 (XF86AudioPlay) 209 0x1008ff31 (XF86AudioPause) 0x0000 (NoSymbol) 0x1008ff31 (XF86AudioPause) 210 0x1008ff43 (XF86Launch3) 0x0000 (NoSymbol) 0x1008ff43 (XF86Launch3) 211 0x1008ff44 (XF86Launch4) 0x0000 (NoSymbol) 0x1008ff44 (XF86Launch4) 212 0x1008ff4b (XF86LaunchB) 0x0000 (NoSymbol) 0x1008ff4b (XF86LaunchB) 213 0x1008ffa7 (XF86Suspend) 0x0000 (NoSymbol) 0x1008ffa7 (XF86Suspend) 214 0x1008ff56 (XF86Close) 0x0000 (NoSymbol) 0x1008ff56 (XF86Close) 215 0x1008ff14 (XF86AudioPlay) 0x0000 (NoSymbol) 0x1008ff14 (XF86AudioPlay) 216 0x1008ff97 (XF86AudioForward) 0x0000 (NoSymbol) 0x1008ff97 (XF86AudioForward) 217 218 0xff61 (Print) 0x0000 (NoSymbol) 0xff61 (Print) 219 220 0x1008ff8f (XF86WebCam) 0x0000 (NoSymbol) 0x1008ff8f (XF86WebCam) 221 0x1008ffb6 (XF86AudioPreset) 0x0000 (NoSymbol) 0x1008ffb6 (XF86AudioPreset) 222 223 0x1008ff19 (XF86Mail) 0x0000 (NoSymbol) 0x1008ff19 (XF86Mail) 224 0x1008ff8e (XF86Messenger) 0x0000 (NoSymbol) 0x1008ff8e (XF86Messenger) 225 0x1008ff1b (XF86Search) 0x0000 (NoSymbol) 0x1008ff1b (XF86Search) 226 0x1008ff5f (XF86Go) 0x0000 (NoSymbol) 0x1008ff5f (XF86Go) 227 0x1008ff3c (XF86Finance) 0x0000 (NoSymbol) 0x1008ff3c (XF86Finance) 228 0x1008ff5e (XF86Game) 0x0000 (NoSymbol) 0x1008ff5e (XF86Game) 229 0x1008ff36 (XF86Shop) 0x0000 (NoSymbol) 0x1008ff36 (XF86Shop) 230 231 0xff69 (Cancel) 0x0000 (NoSymbol) 0xff69 (Cancel) 232 0x1008ff03 (XF86MonBrightnessDown) 0x0000 (NoSymbol) 0x1008ff03 (XF86MonBrightnessDown) 233 0x1008ff02 (XF86MonBrightnessUp) 0x0000 (NoSymbol) 0x1008ff02 (XF86MonBrightnessUp) 234 0x1008ff32 (XF86AudioMedia) 0x0000 (NoSymbol) 0x1008ff32 (XF86AudioMedia) 235 0x1008ff59 (XF86Display) 0x0000 (NoSymbol) 0x1008ff59 (XF86Display) 236 0x1008ff04 (XF86KbdLightOnOff) 0x0000 (NoSymbol) 0x1008ff04 (XF86KbdLightOnOff) 237 0x1008ff06 (XF86KbdBrightnessDown) 0x0000 (NoSymbol) 0x1008ff06 (XF86KbdBrightnessDown) 238 0x1008ff05 (XF86KbdBrightnessUp) 0x0000 (NoSymbol) 0x1008ff05 (XF86KbdBrightnessUp) 239 0x1008ff7b (XF86Send) 0x0000 (NoSymbol) 0x1008ff7b (XF86Send) 240 0x1008ff72 (XF86Reply) 0x0000 (NoSymbol) 0x1008ff72 (XF86Reply) 241 0x1008ff90 (XF86MailForward) 0x0000 (NoSymbol) 0x1008ff90 (XF86MailForward) 242 0x1008ff77 (XF86Save) 0x0000 (NoSymbol) 0x1008ff77 (XF86Save) 243 0x1008ff5b (XF86Documents) 0x0000 (NoSymbol) 0x1008ff5b (XF86Documents) 244 0x1008ff93 (XF86Battery) 0x0000 (NoSymbol) 0x1008ff93 (XF86Battery) 245 0x1008ff94 (XF86Bluetooth) 0x0000 (NoSymbol) 0x1008ff94 (XF86Bluetooth) 246 0x1008ff95 (XF86WLAN) 0x0000 (NoSymbol) 0x1008ff95 (XF86WLAN) 247 248 249 250 251 0x1008ff07 (XF86MonBrightnessCycle) 0x0000 (NoSymbol) 0x1008ff07 (XF86MonBrightnessCycle) 252 253 254 0x1008ffb4 (XF86WWAN) 0x0000 (NoSymbol) 0x1008ffb4 (XF86WWAN) 255 0x1008ffb5 (XF86RFKill) 0x0000 (NoSymbol) 0x1008ffb5 (XF86RFKill)

in case it is relevant, here is also my xkb config; I have moved from xmodmap to xkb for my keyboard configuration, although I don't really understand the system behind it so it is mostly trial and error.

xkb config: xkb_keymap { xkb_keycodes "evdev+aliases(qwerty)" { minimum = 8; maximum = 255; = 9; = 10; = 11; = 12; = 13; = 14; = 15; = 16; = 17; = 18; = 19; = 20; = 21; = 22; = 23; = 24; = 25; = 26; = 27; = 28; = 29; = 30; = 31; = 32; = 33; = 34; = 35; = 36; = 37; = 38; = 39; = 40; = 41; = 42; = 43; = 44; = 45; = 46; = 47; = 48; = 49; = 50; = 51; = 52; = 53; = 54; = 55; = 56; = 57; = 58; = 59; = 60; = 61; = 62; = 63; = 64; = 65; = 66; = 67; = 68; = 69; = 70; = 71; = 72; = 73; = 74; = 75; = 76; = 77; = 78; = 79; = 80; = 81; = 82; = 83; = 84; = 85; = 86; = 87; = 88; = 89; = 90; = 91; = 92; = 94; = 95; = 96; = 97; = 98; = 99; = 100; = 101; = 102; = 103; = 104; = 105; = 106; = 107; = 108; = 109; = 110; = 111; = 112; = 113; = 114; = 115; = 116; = 117; = 118; = 119; = 120; = 121; = 122; = 123; = 124; = 125; = 126; = 127; = 128; = 129; = 130; = 131; = 132; = 133; = 134; = 135; = 136; = 137; = 138; = 139; = 140; = 141; = 142; = 143; = 144; = 145; = 146; = 147; = 148; = 149; = 150; = 151; = 152; = 153; = 154; = 155; = 156; = 157; = 158; = 159; = 160; = 161; = 162; = 163; = 164; = 165; = 166; = 167; = 168; = 169; = 170; = 171; = 172; = 173; = 174; = 175; = 176; = 177; = 178; = 179; = 180; = 181; = 182; = 183; = 184; = 185; = 186; = 187; = 188; = 189; = 190; = 191; = 192; = 193; = 194; = 195; = 196; = 197; = 198; = 199; = 200; = 201; = 202; = 203; = 204; = 205; = 206; = 207; = 208; = 209; = 210; = 211; = 212; = 213; = 214; = 215; = 216; = 217; = 218; = 219; = 220; = 221; = 222; = 223; = 224; = 225; = 226; = 227; = 228; = 229; = 230; = 231; = 232; = 233; = 234; = 235; = 236; = 237; = 238; = 239; = 240; = 241; = 242; = 243; = 244; = 245; = 246; = 247; = 248; = 249; = 250; = 251; = 252; = 253; = 254; = 255; indicator 1 = "Caps Lock"; indicator 2 = "Num Lock"; indicator 3 = "Scroll Lock"; indicator 4 = "Compose"; indicator 5 = "Kana"; indicator 6 = "Sleep"; indicator 7 = "Suspend"; indicator 8 = "Mute"; indicator 9 = "Misc"; indicator 10 = "Mail"; indicator 11 = "Charging"; virtual indicator 12 = "Shift Lock"; virtual indicator 13 = "Group 2"; virtual indicator 14 = "Mouse Keys"; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; }; xkb_types "complete" { virtual_modifiers NumLock,Alt,LevelThree,LAlt,RAlt,RControl,LControl,ScrollLock,LevelFive,AltGr,Meta,Super,Hyper; type "ONE_LEVEL" { modifiers= none; level_name[Level1]= "Any"; }; type "TWO_LEVEL" { modifiers= Shift; map[Shift]= Level2; level_name[Level1]= "Base"; level_name[Level2]= "Shift"; }; type "ALPHABETIC" { modifiers= Shift+Lock; map[Shift]= Level2; map[Lock]= Level2; level_name[Level1]= "Base"; level_name[Level2]= "Caps"; }; type "KEYPAD" { modifiers= Shift+NumLock; map[Shift]= Level2; map[NumLock]= Level2; level_name[Level1]= "Base"; level_name[Level2]= "Number"; }; type "SHIFT+ALT" { modifiers= Shift+Alt; map[Shift+Alt]= Level2; level_name[Level1]= "Base"; level_name[Level2]= "Shift+Alt"; }; type "PC_SUPER_LEVEL2" { modifiers= Mod4; map[Mod4]= Level2; level_name[Level1]= "Base"; level_name[Level2]= "Super"; }; type "PC_CONTROL_LEVEL2" { modifiers= Control; map[Control]= Level2; level_name[Level1]= "Base"; level_name[Level2]= "Control"; }; type "PC_LCONTROL_LEVEL2" { modifiers= LControl; map[LControl]= Level2; level_name[Level1]= "Base"; level_name[Level2]= "LControl"; }; type "PC_RCONTROL_LEVEL2" { modifiers= RControl; map[RControl]= Level2; level_name[Level1]= "Base"; level_name[Level2]= "RControl"; }; type "PC_ALT_LEVEL2" { modifiers= Alt; map[Alt]= Level2; level_name[Level1]= "Base"; level_name[Level2]= "Alt"; }; type "PC_LALT_LEVEL2" { modifiers= LAlt; map[LAlt]= Level2; level_name[Level1]= "Base"; level_name[Level2]= "LAlt"; }; type "PC_RALT_LEVEL2" { modifiers= RAlt; map[RAlt]= Level2; level_name[Level1]= "Base"; level_name[Level2]= "RAlt"; }; type "CTRL+ALT" { modifiers= Shift+Control+Alt+LevelThree; map[Shift]= Level2; preserve[Shift]= Shift; map[LevelThree]= Level3; map[Shift+LevelThree]= Level4; preserve[Shift+LevelThree]= Shift; map[Control+Alt]= Level5; level_name[Level1]= "Base"; level_name[Level2]= "Shift"; level_name[Level3]= "Alt Base"; level_name[Level4]= "Shift Alt"; level_name[Level5]= "Ctrl+Alt"; }; type "LOCAL_EIGHT_LEVEL" { modifiers= Shift+Lock+Control+LevelThree; map[Shift+Lock]= Level1; map[Shift]= Level2; map[Lock]= Level2; map[LevelThree]= Level3; map[Shift+Lock+LevelThree]= Level3; map[Shift+LevelThree]= Level4; map[Lock+LevelThree]= Level4; map[Control]= Level5; map[Shift+Lock+Control]= Level5; map[Shift+Control]= Level6; map[Lock+Control]= Level6; map[Control+LevelThree]= Level7; map[Shift+Lock+Control+LevelThree]= Level7; map[Shift+Control+LevelThree]= Level8; map[Lock+Control+LevelThree]= Level8; level_name[Level1]= "Base"; level_name[Level2]= "Shift"; level_name[Level3]= "Level3"; level_name[Level4]= "Shift Level3"; level_name[Level5]= "Ctrl"; level_name[Level6]= "Shift Ctrl"; level_name[Level7]= "Level3 Ctrl"; level_name[Level8]= "Shift Level3 Ctrl"; }; type "THREE_LEVEL" { modifiers= Shift+LevelThree; map[Shift]= Level2; map[LevelThree]= Level3; map[Shift+LevelThree]= Level3; level_name[Level1]= "Base"; level_name[Level2]= "Shift"; level_name[Level3]= "Level3"; }; type "EIGHT_LEVEL" { modifiers= Shift+LevelThree+LevelFive; map[Shift]= Level2; map[LevelThree]= Level3; map[Shift+LevelThree]= Level4; map[LevelFive]= Level5; map[Shift+LevelFive]= Level6; map[LevelThree+LevelFive]= Level7; map[Shift+LevelThree+LevelFive]= Level8; level_name[Level1]= "Base"; level_name[Level2]= "Shift"; level_name[Level3]= "Alt Base"; level_name[Level4]= "Shift Alt"; level_name[Level5]= "X"; level_name[Level6]= "X Shift"; level_name[Level7]= "X Alt Base"; level_name[Level8]= "X Shift Alt"; }; type "EIGHT_LEVEL_ALPHABETIC" { modifiers= Shift+Lock+LevelThree+LevelFive; map[Shift]= Level2; map[Lock]= Level2; map[LevelThree]= Level3; map[Shift+LevelThree]= Level4; map[Lock+LevelThree]= Level4; map[Shift+Lock+LevelThree]= Level3; map[LevelFive]= Level5; map[Shift+LevelFive]= Level6; map[Lock+LevelFive]= Level6; map[LevelThree+LevelFive]= Level7; map[Shift+LevelThree+LevelFive]= Level8; map[Lock+LevelThree+LevelFive]= Level8; map[Shift+Lock+LevelThree+LevelFive]= Level7; level_name[Level1]= "Base"; level_name[Level2]= "Shift"; level_name[Level3]= "Alt Base"; level_name[Level4]= "Shift Alt"; level_name[Level5]= "X"; level_name[Level6]= "X Shift"; level_name[Level7]= "X Alt Base"; level_name[Level8]= "X Shift Alt"; }; type "EIGHT_LEVEL_LEVEL_FIVE_LOCK" { modifiers= Shift+Lock+NumLock+LevelThree+LevelFive; map[Shift]= Level2; map[LevelThree]= Level3; map[Shift+LevelThree]= Level4; map[LevelFive]= Level5; map[Shift+LevelFive]= Level6; preserve[Shift+LevelFive]= Shift; map[LevelThree+LevelFive]= Level7; map[Shift+LevelThree+LevelFive]= Level8; map[NumLock]= Level5; map[Shift+NumLock]= Level6; preserve[Shift+NumLock]= Shift; map[NumLock+LevelThree]= Level7; map[Shift+NumLock+LevelThree]= Level8; map[Shift+NumLock+LevelFive]= Level2; map[NumLock+LevelThree+LevelFive]= Level3; map[Shift+NumLock+LevelThree+LevelFive]= Level4; map[Shift+Lock]= Level2; map[Lock+LevelThree]= Level3; map[Shift+Lock+LevelThree]= Level4; map[Lock+LevelFive]= Level5; map[Shift+Lock+LevelFive]= Level6; preserve[Shift+Lock+LevelFive]= Shift; map[Lock+LevelThree+LevelFive]= Level7; map[Shift+Lock+LevelThree+LevelFive]= Level8; map[Lock+NumLock]= Level5; map[Shift+Lock+NumLock]= Level6; preserve[Shift+Lock+NumLock]= Shift; map[Lock+NumLock+LevelThree]= Level7; map[Shift+Lock+NumLock+LevelThree]= Level8; map[Shift+Lock+NumLock+LevelFive]= Level2; map[Lock+NumLock+LevelThree+LevelFive]= Level3; map[Shift+Lock+NumLock+LevelThree+LevelFive]= Level4; level_name[Level1]= "Base"; level_name[Level2]= "Shift"; level_name[Level3]= "Alt Base"; level_name[Level4]= "Shift Alt"; level_name[Level5]= "X"; level_name[Level6]= "X Shift"; level_name[Level7]= "X Alt Base"; level_name[Level8]= "X Shift Alt"; }; type "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK" { modifiers= Shift+Lock+NumLock+LevelThree+LevelFive; map[Shift]= Level2; map[LevelThree]= Level3; map[Shift+LevelThree]= Level4; map[LevelFive]= Level5; map[Shift+LevelFive]= Level6; preserve[Shift+LevelFive]= Shift; map[LevelThree+LevelFive]= Level7; map[Shift+LevelThree+LevelFive]= Level8; map[NumLock]= Level5; map[Shift+NumLock]= Level6; preserve[Shift+NumLock]= Shift; map[NumLock+LevelThree]= Level7; map[Shift+NumLock+LevelThree]= Level8; map[Shift+NumLock+LevelFive]= Level2; map[NumLock+LevelThree+LevelFive]= Level3; map[Shift+NumLock+LevelThree+LevelFive]= Level4; map[Lock]= Level2; map[Lock+LevelThree]= Level3; map[Shift+Lock+LevelThree]= Level4; map[Lock+LevelFive]= Level5; map[Shift+Lock+LevelFive]= Level6; map[Lock+LevelThree+LevelFive]= Level7; map[Shift+Lock+LevelThree+LevelFive]= Level8; map[Lock+NumLock]= Level5; map[Shift+Lock+NumLock]= Level6; map[Lock+NumLock+LevelThree]= Level7; map[Shift+Lock+NumLock+LevelThree]= Level8; map[Lock+NumLock+LevelFive]= Level2; map[Lock+NumLock+LevelThree+LevelFive]= Level4; map[Shift+Lock+NumLock+LevelThree+LevelFive]= Level3; level_name[Level1]= "Base"; level_name[Level2]= "Shift"; level_name[Level3]= "Alt Base"; level_name[Level4]= "Shift Alt"; level_name[Level5]= "X"; level_name[Level6]= "X Shift"; level_name[Level7]= "X Alt Base"; level_name[Level8]= "X Shift Alt"; }; type "EIGHT_LEVEL_SEMIALPHABETIC" { modifiers= Shift+Lock+LevelThree+LevelFive; map[Shift]= Level2; map[Lock]= Level2; map[LevelThree]= Level3; map[Shift+LevelThree]= Level4; map[Lock+LevelThree]= Level3; preserve[Lock+LevelThree]= Lock; map[Shift+Lock+LevelThree]= Level4; preserve[Shift+Lock+LevelThree]= Lock; map[LevelFive]= Level5; map[Shift+LevelFive]= Level6; map[Lock+LevelFive]= Level6; preserve[Lock+LevelFive]= Lock; map[Shift+Lock+LevelFive]= Level6; preserve[Shift+Lock+LevelFive]= Lock; map[LevelThree+LevelFive]= Level7; map[Shift+LevelThree+LevelFive]= Level8; map[Lock+LevelThree+LevelFive]= Level7; preserve[Lock+LevelThree+LevelFive]= Lock; map[Shift+Lock+LevelThree+LevelFive]= Level8; preserve[Shift+Lock+LevelThree+LevelFive]= Lock; level_name[Level1]= "Base"; level_name[Level2]= "Shift"; level_name[Level3]= "Alt Base"; level_name[Level4]= "Shift Alt"; level_name[Level5]= "X"; level_name[Level6]= "X Shift"; level_name[Level7]= "X Alt Base"; level_name[Level8]= "X Shift Alt"; }; type "FOUR_LEVEL" { modifiers= Shift+LevelThree; map[Shift]= Level2; map[LevelThree]= Level3; map[Shift+LevelThree]= Level4; level_name[Level1]= "Base"; level_name[Level2]= "Shift"; level_name[Level3]= "Alt Base"; level_name[Level4]= "Shift Alt"; }; type "FOUR_LEVEL_ALPHABETIC" { modifiers= Shift+Lock+LevelThree; map[Shift]= Level2; map[Lock]= Level2; map[LevelThree]= Level3; map[Shift+LevelThree]= Level4; map[Lock+LevelThree]= Level4; map[Shift+Lock+LevelThree]= Level3; level_name[Level1]= "Base"; level_name[Level2]= "Shift"; level_name[Level3]= "Alt Base"; level_name[Level4]= "Shift Alt"; }; type "FOUR_LEVEL_SEMIALPHABETIC" { modifiers= Shift+Lock+LevelThree; map[Shift]= Level2; map[Lock]= Level2; map[LevelThree]= Level3; map[Shift+LevelThree]= Level4; map[Lock+LevelThree]= Level3; preserve[Lock+LevelThree]= Lock; map[Shift+Lock+LevelThree]= Level4; preserve[Shift+Lock+LevelThree]= Lock; level_name[Level1]= "Base"; level_name[Level2]= "Shift"; level_name[Level3]= "Alt Base"; level_name[Level4]= "Shift Alt"; }; type "FOUR_LEVEL_MIXED_KEYPAD" { modifiers= Shift+NumLock+LevelThree; map[Shift+NumLock]= Level1; map[NumLock]= Level2; map[Shift]= Level2; map[LevelThree]= Level3; map[NumLock+LevelThree]= Level3; map[Shift+LevelThree]= Level4; map[Shift+NumLock+LevelThree]= Level4; level_name[Level1]= "Base"; level_name[Level2]= "Number"; level_name[Level3]= "Alt Base"; level_name[Level4]= "Shift Alt"; }; type "FOUR_LEVEL_X" { modifiers= Shift+Control+Alt+LevelThree; map[LevelThree]= Level2; map[Shift+LevelThree]= Level3; map[Control+Alt]= Level4; level_name[Level1]= "Base"; level_name[Level2]= "Alt Base"; level_name[Level3]= "Shift Alt"; level_name[Level4]= "Ctrl+Alt"; }; type "SEPARATE_CAPS_AND_SHIFT_ALPHABETIC" { modifiers= Shift+Lock+LevelThree; map[Shift]= Level2; map[Lock]= Level4; preserve[Lock]= Lock; map[LevelThree]= Level3; map[Shift+LevelThree]= Level4; map[Lock+LevelThree]= Level3; preserve[Lock+LevelThree]= Lock; map[Shift+Lock+LevelThree]= Level3; level_name[Level1]= "Base"; level_name[Level2]= "Shift"; level_name[Level3]= "AltGr Base"; level_name[Level4]= "Shift AltGr"; }; type "FOUR_LEVEL_PLUS_LOCK" { modifiers= Shift+Lock+LevelThree; map[Shift]= Level2; map[LevelThree]= Level3; map[Shift+LevelThree]= Level4; map[Lock]= Level5; map[Shift+Lock]= Level2; map[Lock+LevelThree]= Level3; map[Shift+Lock+LevelThree]= Level4; level_name[Level1]= "Base"; level_name[Level2]= "Shift"; level_name[Level3]= "Alt Base"; level_name[Level4]= "Shift Alt"; level_name[Level5]= "Lock"; }; type "FOUR_LEVEL_KEYPAD" { modifiers= Shift+NumLock+LevelThree; map[Shift]= Level2; map[NumLock]= Level2; map[LevelThree]= Level3; map[Shift+LevelThree]= Level4; map[NumLock+LevelThree]= Level4; map[Shift+NumLock+LevelThree]= Level3; level_name[Level1]= "Base"; level_name[Level2]= "Number"; level_name[Level3]= "Alt Base"; level_name[Level4]= "Alt Number"; }; }; xkb_compatibility "complete" { virtual_modifiers NumLock,Alt,LevelThree,LAlt,RAlt,RControl,LControl,ScrollLock,LevelFive,AltGr,Meta,Super,Hyper; interpret.useModMapMods= AnyLevel; interpret.repeat= False; interpret.locking= False; interpret ISO_Level2_Latch+Exactly(Shift) { useModMapMods=level1; action= LatchMods(modifiers=Shift,clearLocks,latchToLock); }; interpret Shift_Lock+AnyOf(Shift+Lock) { action= LockMods(modifiers=Shift); }; interpret Num_Lock+AnyOf(all) { virtualModifier= NumLock; action= LockMods(modifiers=NumLock); }; interpret ISO_Level3_Shift+AnyOf(all) { virtualModifier= LevelThree; useModMapMods=level1; action= SetMods(modifiers=LevelThree,clearLocks); }; interpret ISO_Level3_Latch+AnyOf(all) { virtualModifier= LevelThree; useModMapMods=level1; action= LatchMods(modifiers=LevelThree,clearLocks,latchToLock); }; interpret ISO_Level3_Lock+AnyOf(all) { virtualModifier= LevelThree; useModMapMods=level1; action= LockMods(modifiers=LevelThree); }; interpret Alt_L+AnyOf(all) { virtualModifier= Alt; action= SetMods(modifiers=modMapMods,clearLocks); }; interpret Alt_R+AnyOf(all) { virtualModifier= Alt; action= SetMods(modifiers=modMapMods,clearLocks); }; interpret Meta_L+AnyOf(all) { virtualModifier= Meta; action= SetMods(modifiers=modMapMods,clearLocks); }; interpret Meta_R+AnyOf(all) { virtualModifier= Meta; action= SetMods(modifiers=modMapMods,clearLocks); }; interpret Super_L+AnyOf(all) { virtualModifier= Super; action= SetMods(modifiers=modMapMods,clearLocks); }; interpret Super_R+AnyOf(all) { virtualModifier= Super; action= SetMods(modifiers=modMapMods,clearLocks); }; interpret Hyper_L+AnyOf(all) { virtualModifier= Hyper; action= SetMods(modifiers=modMapMods,clearLocks); }; interpret Hyper_R+AnyOf(all) { virtualModifier= Hyper; action= SetMods(modifiers=modMapMods,clearLocks); }; interpret Scroll_Lock+AnyOf(all) { virtualModifier= ScrollLock; action= LockMods(modifiers=modMapMods); }; interpret ISO_Level5_Shift+AnyOf(all) { virtualModifier= LevelFive; useModMapMods=level1; action= SetMods(modifiers=LevelFive,clearLocks); }; interpret ISO_Level5_Latch+AnyOf(all) { virtualModifier= LevelFive; useModMapMods=level1; action= LatchMods(modifiers=LevelFive,clearLocks,latchToLock); }; interpret ISO_Level5_Lock+AnyOf(all) { virtualModifier= LevelFive; useModMapMods=level1; action= LockMods(modifiers=LevelFive); }; interpret Mode_switch+AnyOfOrNone(all) { virtualModifier= AltGr; useModMapMods=level1; action= SetGroup(group=+1); }; interpret ISO_Level3_Shift+AnyOfOrNone(all) { action= SetMods(modifiers=LevelThree,clearLocks); }; interpret ISO_Level3_Latch+AnyOfOrNone(all) { action= LatchMods(modifiers=LevelThree,clearLocks,latchToLock); }; interpret ISO_Level3_Lock+AnyOfOrNone(all) { action= LockMods(modifiers=LevelThree); }; interpret ISO_Group_Latch+AnyOfOrNone(all) { virtualModifier= AltGr; useModMapMods=level1; action= LatchGroup(group=2); }; interpret ISO_Next_Group+AnyOfOrNone(all) { virtualModifier= AltGr; useModMapMods=level1; action= LockGroup(group=+1); }; interpret ISO_Prev_Group+AnyOfOrNone(all) { virtualModifier= AltGr; useModMapMods=level1; action= LockGroup(group=-1); }; interpret ISO_First_Group+AnyOfOrNone(all) { action= LockGroup(group=1); }; interpret ISO_Last_Group+AnyOfOrNone(all) { action= LockGroup(group=2); }; interpret KP_1+AnyOfOrNone(all) { repeat= True; action= MovePtr(x=-1,y=+1); }; interpret KP_End+AnyOfOrNone(all) { repeat= True; action= MovePtr(x=-1,y=+1); }; interpret KP_2+AnyOfOrNone(all) { repeat= True; action= MovePtr(x=+0,y=+1); }; interpret KP_Down+AnyOfOrNone(all) { repeat= True; action= MovePtr(x=+0,y=+1); }; interpret KP_3+AnyOfOrNone(all) { repeat= True; action= MovePtr(x=+1,y=+1); }; interpret KP_Next+AnyOfOrNone(all) { repeat= True; action= MovePtr(x=+1,y=+1); }; interpret KP_4+AnyOfOrNone(all) { repeat= True; action= MovePtr(x=-1,y=+0); }; interpret KP_Left+AnyOfOrNone(all) { repeat= True; action= MovePtr(x=-1,y=+0); }; interpret KP_6+AnyOfOrNone(all) { repeat= True; action= MovePtr(x=+1,y=+0); }; interpret KP_Right+AnyOfOrNone(all) { repeat= True; action= MovePtr(x=+1,y=+0); }; interpret KP_7+AnyOfOrNone(all) { repeat= True; action= MovePtr(x=-1,y=-1); }; interpret KP_Home+AnyOfOrNone(all) { repeat= True; action= MovePtr(x=-1,y=-1); }; interpret KP_8+AnyOfOrNone(all) { repeat= True; action= MovePtr(x=+0,y=-1); }; interpret KP_Up+AnyOfOrNone(all) { repeat= True; action= MovePtr(x=+0,y=-1); }; interpret KP_9+AnyOfOrNone(all) { repeat= True; action= MovePtr(x=+1,y=-1); }; interpret KP_Prior+AnyOfOrNone(all) { repeat= True; action= MovePtr(x=+1,y=-1); }; interpret KP_5+AnyOfOrNone(all) { repeat= True; action= PtrBtn(button=default); }; interpret KP_Begin+AnyOfOrNone(all) { repeat= True; action= PtrBtn(button=default); }; interpret KP_F2+AnyOfOrNone(all) { repeat= True; action= SetPtrDflt(affect=button,button=1); }; interpret KP_Divide+AnyOfOrNone(all) { repeat= True; action= SetPtrDflt(affect=button,button=1); }; interpret KP_F3+AnyOfOrNone(all) { repeat= True; action= SetPtrDflt(affect=button,button=2); }; interpret KP_Multiply+AnyOfOrNone(all) { repeat= True; action= SetPtrDflt(affect=button,button=2); }; interpret KP_F4+AnyOfOrNone(all) { repeat= True; action= SetPtrDflt(affect=button,button=3); }; interpret KP_Subtract+AnyOfOrNone(all) { repeat= True; action= SetPtrDflt(affect=button,button=3); }; interpret KP_Separator+AnyOfOrNone(all) { repeat= True; action= PtrBtn(button=default,count=2); }; interpret KP_Add+AnyOfOrNone(all) { repeat= True; action= PtrBtn(button=default,count=2); }; interpret KP_0+AnyOfOrNone(all) { repeat= True; action= LockPtrBtn(button=default,affect=lock); }; interpret KP_Insert+AnyOfOrNone(all) { repeat= True; action= LockPtrBtn(button=default,affect=lock); }; interpret KP_Decimal+AnyOfOrNone(all) { repeat= True; action= LockPtrBtn(button=default,affect=unlock); }; interpret KP_Delete+AnyOfOrNone(all) { repeat= True; action= LockPtrBtn(button=default,affect=unlock); }; interpret F25+AnyOfOrNone(all) { repeat= True; action= SetPtrDflt(affect=button,button=1); }; interpret F26+AnyOfOrNone(all) { repeat= True; action= SetPtrDflt(affect=button,button=2); }; interpret F27+AnyOfOrNone(all) { repeat= True; action= MovePtr(x=-1,y=-1); }; interpret F29+AnyOfOrNone(all) { repeat= True; action= MovePtr(x=+1,y=-1); }; interpret F31+AnyOfOrNone(all) { repeat= True; action= PtrBtn(button=default); }; interpret F33+AnyOfOrNone(all) { repeat= True; action= MovePtr(x=-1,y=+1); }; interpret F35+AnyOfOrNone(all) { repeat= True; action= MovePtr(x=+1,y=+1); }; interpret Pointer_Button_Dflt+AnyOfOrNone(all) { action= PtrBtn(button=default); }; interpret Pointer_Button1+AnyOfOrNone(all) { action= PtrBtn(button=1); }; interpret Pointer_Button2+AnyOfOrNone(all) { action= PtrBtn(button=2); }; interpret Pointer_Button3+AnyOfOrNone(all) { action= PtrBtn(button=3); }; interpret Pointer_DblClick_Dflt+AnyOfOrNone(all) { action= PtrBtn(button=default,count=2); }; interpret Pointer_DblClick1+AnyOfOrNone(all) { action= PtrBtn(button=1,count=2); }; interpret Pointer_DblClick2+AnyOfOrNone(all) { action= PtrBtn(button=2,count=2); }; interpret Pointer_DblClick3+AnyOfOrNone(all) { action= PtrBtn(button=3,count=2); }; interpret Pointer_Drag_Dflt+AnyOfOrNone(all) { action= LockPtrBtn(button=default,affect=both); }; interpret Pointer_Drag1+AnyOfOrNone(all) { action= LockPtrBtn(button=1,affect=both); }; interpret Pointer_Drag2+AnyOfOrNone(all) { action= LockPtrBtn(button=2,affect=both); }; interpret Pointer_Drag3+AnyOfOrNone(all) { action= LockPtrBtn(button=3,affect=both); }; interpret Pointer_EnableKeys+AnyOfOrNone(all) { action= LockControls(controls=MouseKeys); }; interpret Pointer_Accelerate+AnyOfOrNone(all) { action= LockControls(controls=MouseKeysAccel); }; interpret Pointer_DfltBtnNext+AnyOfOrNone(all) { action= SetPtrDflt(affect=button,button=+1); }; interpret Pointer_DfltBtnPrev+AnyOfOrNone(all) { action= SetPtrDflt(affect=button,button=-1); }; interpret AccessX_Enable+AnyOfOrNone(all) { action= LockControls(controls=AccessXKeys); }; interpret AccessX_Feedback_Enable+AnyOfOrNone(all) { action= LockControls(controls=AccessXFeedback); }; interpret RepeatKeys_Enable+AnyOfOrNone(all) { action= LockControls(controls=RepeatKeys); }; interpret SlowKeys_Enable+AnyOfOrNone(all) { action= LockControls(controls=SlowKeys); }; interpret BounceKeys_Enable+AnyOfOrNone(all) { action= LockControls(controls=BounceKeys); }; interpret StickyKeys_Enable+AnyOfOrNone(all) { action= LockControls(controls=StickyKeys); }; interpret MouseKeys_Enable+AnyOfOrNone(all) { action= LockControls(controls=MouseKeys); }; interpret MouseKeys_Accel_Enable+AnyOfOrNone(all) { action= LockControls(controls=MouseKeysAccel); }; interpret Overlay1_Enable+AnyOfOrNone(all) { action= LockControls(controls=Overlay1); }; interpret Overlay2_Enable+AnyOfOrNone(all) { action= LockControls(controls=Overlay2); }; interpret AudibleBell_Enable+AnyOfOrNone(all) { action= LockControls(controls=AudibleBell); }; interpret Terminate_Server+AnyOfOrNone(all) { action= Terminate(); }; interpret Alt_L+AnyOfOrNone(all) { action= SetMods(modifiers=Alt,clearLocks); }; interpret Alt_R+AnyOfOrNone(all) { action= SetMods(modifiers=Alt,clearLocks); }; interpret Meta_L+AnyOfOrNone(all) { action= SetMods(modifiers=Meta,clearLocks); }; interpret Meta_R+AnyOfOrNone(all) { action= SetMods(modifiers=Meta,clearLocks); }; interpret Super_L+AnyOfOrNone(all) { action= SetMods(modifiers=Super,clearLocks); }; interpret Super_R+AnyOfOrNone(all) { action= SetMods(modifiers=Super,clearLocks); }; interpret Hyper_L+AnyOfOrNone(all) { action= SetMods(modifiers=Hyper,clearLocks); }; interpret Hyper_R+AnyOfOrNone(all) { action= SetMods(modifiers=Hyper,clearLocks); }; interpret Shift_L+AnyOfOrNone(all) { action= SetMods(modifiers=Shift,clearLocks); }; interpret XF86Switch_VT_1+AnyOfOrNone(all) { repeat= True; action= SwitchScreen(screen=1,!same); }; interpret XF86Switch_VT_2+AnyOfOrNone(all) { repeat= True; action= SwitchScreen(screen=2,!same); }; interpret XF86Switch_VT_3+AnyOfOrNone(all) { repeat= True; action= SwitchScreen(screen=3,!same); }; interpret XF86Switch_VT_4+AnyOfOrNone(all) { repeat= True; action= SwitchScreen(screen=4,!same); }; interpret XF86Switch_VT_5+AnyOfOrNone(all) { repeat= True; action= SwitchScreen(screen=5,!same); }; interpret XF86Switch_VT_6+AnyOfOrNone(all) { repeat= True; action= SwitchScreen(screen=6,!same); }; interpret XF86Switch_VT_7+AnyOfOrNone(all) { repeat= True; action= SwitchScreen(screen=7,!same); }; interpret XF86Switch_VT_8+AnyOfOrNone(all) { repeat= True; action= SwitchScreen(screen=8,!same); }; interpret XF86Switch_VT_9+AnyOfOrNone(all) { repeat= True; action= SwitchScreen(screen=9,!same); }; interpret XF86Switch_VT_10+AnyOfOrNone(all) { repeat= True; action= SwitchScreen(screen=10,!same); }; interpret XF86Switch_VT_11+AnyOfOrNone(all) { repeat= True; action= SwitchScreen(screen=11,!same); }; interpret XF86Switch_VT_12+AnyOfOrNone(all) { repeat= True; action= SwitchScreen(screen=12,!same); }; interpret XF86LogGrabInfo+AnyOfOrNone(all) { repeat= True; action= Private(type=0x86,data[0]=0x50,data[1]=0x72,data[2]=0x47,data[3]=0x72,data[4]=0x62,data[5]=0x73,data[6]=0x00); }; interpret XF86LogWindowTree+AnyOfOrNone(all) { repeat= True; action= Private(type=0x86,data[0]=0x50,data[1]=0x72,data[2]=0x57,data[3]=0x69,data[4]=0x6e,data[5]=0x73,data[6]=0x00); }; interpret XF86Next_VMode+AnyOfOrNone(all) { repeat= True; action= Private(type=0x86,data[0]=0x2b,data[1]=0x56,data[2]=0x4d,data[3]=0x6f,data[4]=0x64,data[5]=0x65,data[6]=0x00); }; interpret XF86Prev_VMode+AnyOfOrNone(all) { repeat= True; action= Private(type=0x86,data[0]=0x2d,data[1]=0x56,data[2]=0x4d,data[3]=0x6f,data[4]=0x64,data[5]=0x65,data[6]=0x00); }; interpret ISO_Level5_Shift+AnyOfOrNone(all) { action= SetMods(modifiers=LevelFive,clearLocks); }; interpret ISO_Level5_Latch+AnyOfOrNone(all) { action= LatchMods(modifiers=LevelFive,clearLocks,latchToLock); }; interpret ISO_Level5_Lock+AnyOfOrNone(all) { action= LockMods(modifiers=LevelFive); }; interpret Caps_Lock+AnyOfOrNone(all) { action= LockMods(modifiers=Lock); }; interpret Any+Exactly(Lock) { action= LockMods(modifiers=Lock); }; interpret Any+AnyOf(all) { action= SetMods(modifiers=modMapMods,clearLocks); }; group 2 = AltGr; group 3 = AltGr; group 4 = AltGr; indicator "Caps Lock" { !allowExplicit; whichModState= locked; modifiers= Lock; }; indicator "Num Lock" { !allowExplicit; whichModState= locked; modifiers= NumLock; }; indicator "Scroll Lock" { whichModState= locked; modifiers= ScrollLock; }; indicator "Shift Lock" { !allowExplicit; whichModState= locked; modifiers= Shift; }; indicator "Group 2" { !allowExplicit; groups= 0xfe; }; indicator "Mouse Keys" { indicatorDrivesKeyboard; controls= mouseKeys; }; }; xkb_symbols "pc+us+inet(evdev)" { name[group1]="English (US)"; key { [ Escape ] }; key { [ 1, exclam ] }; key { [ 2, at ] }; key { [ 3, numbersign ] }; key { [ 4, dollar ] }; key { [ 5, percent ] }; key { [ 6, asciicircum ] }; key { [ 7, ampersand ] }; key { [ 8, asterisk ] }; key { [ 9, parenleft ] }; key { [ 0, parenright ] }; key { [ minus, underscore ] }; key { [ equal, plus ] }; key { [ BackSpace, BackSpace ] }; key { [ Tab, ISO_Left_Tab ] }; key { type= "ALPHABETIC", symbols[Group1]= [ q, Q ] }; key { type= "ALPHABETIC", symbols[Group1]= [ w, W ] }; key { type= "ALPHABETIC", symbols[Group1]= [ e, E ] }; key { type= "ALPHABETIC", symbols[Group1]= [ r, R ] }; key { type= "ALPHABETIC", symbols[Group1]= [ t, T ] }; key { type= "ALPHABETIC", symbols[Group1]= [ y, Y ] }; key { type= "ALPHABETIC", symbols[Group1]= [ u, U ] }; key { type= "ALPHABETIC", symbols[Group1]= [ i, I ] }; key { type= "ALPHABETIC", symbols[Group1]= [ o, O ] }; key { type= "ALPHABETIC", symbols[Group1]= [ p, P ] }; key { [ bracketleft, braceleft ] }; key { [ bracketright, braceright ] }; key { [ Return ] }; key { [ Control_L ] }; key { type= "ALPHABETIC", symbols[Group1]= [ a, A ] }; key { type= "ALPHABETIC", symbols[Group1]= [ s, S ] }; key { type= "ALPHABETIC", symbols[Group1]= [ d, D ] }; key { type= "ALPHABETIC", symbols[Group1]= [ f, F ] }; key { type= "ALPHABETIC", symbols[Group1]= [ g, G ] }; key { type= "ALPHABETIC", symbols[Group1]= [ h, H ] }; key { type= "ALPHABETIC", symbols[Group1]= [ j, J ] }; key { type= "ALPHABETIC", symbols[Group1]= [ k, K ] }; key { type= "ALPHABETIC", symbols[Group1]= [ l, L ] }; key { [ semicolon, colon ] }; key { [ apostrophe, quotedbl ] }; key { [ grave, asciitilde ] }; key { [ Shift_L ] }; key { [ backslash, bar ] }; key { type= "ALPHABETIC", symbols[Group1]= [ z, Z ] }; key { type= "ALPHABETIC", symbols[Group1]= [ x, X ] }; key { type= "ALPHABETIC", symbols[Group1]= [ c, C ] }; key { type= "ALPHABETIC", symbols[Group1]= [ v, V ] }; key { type= "ALPHABETIC", symbols[Group1]= [ b, B ] }; key { type= "ALPHABETIC", symbols[Group1]= [ n, N ] }; key { type= "ALPHABETIC", symbols[Group1]= [ m, M ] }; key { [ comma, less ] }; key { [ period, greater ] }; key { [ slash, question ] }; key { [ Shift_R ] }; key { type= "CTRL+ALT", symbols[Group1]= [ KP_Multiply, KP_Multiply, KP_Multiply, KP_Multiply, XF86ClearGrab ] }; key { [ Alt_L, Meta_L ] }; key { [ space ] }; key { [ Caps_Lock ] }; key { type= "CTRL+ALT", symbols[Group1]= [ F1, F1, F1, F1, XF86Switch_VT_1 ] }; key { type= "CTRL+ALT", symbols[Group1]= [ F2, F2, F2, F2, XF86Switch_VT_2 ] }; key { type= "CTRL+ALT", symbols[Group1]= [ F3, F3, F3, F3, XF86Switch_VT_3 ] }; key { type= "CTRL+ALT", symbols[Group1]= [ F4, F4, F4, F4, XF86Switch_VT_4 ] }; key { type= "CTRL+ALT", symbols[Group1]= [ F5, F5, F5, F5, XF86Switch_VT_5 ] }; key { type= "CTRL+ALT", symbols[Group1]= [ F6, F6, F6, F6, XF86Switch_VT_6 ] }; key { type= "CTRL+ALT", symbols[Group1]= [ F7, F7, F7, F7, XF86Switch_VT_7 ] }; key { type= "CTRL+ALT", symbols[Group1]= [ F8, F8, F8, F8, XF86Switch_VT_8 ] }; key { type= "CTRL+ALT", symbols[Group1]= [ F9, F9, F9, F9, XF86Switch_VT_9 ] }; key { type= "CTRL+ALT", symbols[Group1]= [ F10, F10, F10, F10, XF86Switch_VT_10 ] }; key { [ Num_Lock ] }; key { [ Scroll_Lock ] }; key { [ KP_Home, KP_7 ] }; key { [ KP_Up, KP_8 ] }; key { [ KP_Prior, KP_9 ] }; key { type= "CTRL+ALT", symbols[Group1]= [ KP_Subtract, KP_Subtract, KP_Subtract, KP_Subtract, XF86Prev_VMode ] }; key { [ KP_Left, KP_4 ] }; key { [ KP_Begin, KP_5 ] }; key { [ KP_Right, KP_6 ] }; key { type= "CTRL+ALT", symbols[Group1]= [ KP_Add, KP_Add, KP_Add, KP_Add, XF86Next_VMode ] }; key { [ KP_End, KP_1 ] }; key { [ KP_Down, KP_2 ] }; key { [ KP_Next, KP_3 ] }; key { [ KP_Insert, KP_0 ] }; key { [ KP_Delete, KP_Decimal ] }; key { [ ISO_Level3_Shift ] }; key { type= "FOUR_LEVEL", symbols[Group1]= [ less, greater, bar, brokenbar ] }; key { type= "CTRL+ALT", symbols[Group1]= [ F11, F11, F11, F11, XF86Switch_VT_11 ] }; key { type= "CTRL+ALT", symbols[Group1]= [ F12, F12, F12, F12, XF86Switch_VT_12 ] }; key { [ Katakana ] }; key { [ Hiragana ] }; key { [ Henkan_Mode ] }; key { [ Hiragana_Katakana ] }; key { [ Muhenkan ] }; key { [ KP_Enter ] }; key { [ Control_R ] }; key { type= "CTRL+ALT", symbols[Group1]= [ KP_Divide, KP_Divide, KP_Divide, KP_Divide, XF86Ungrab ] }; key { type= "PC_ALT_LEVEL2", symbols[Group1]= [ Print, Sys_Req ] }; key { type= "TWO_LEVEL", symbols[Group1]= [ Alt_R, Meta_R ] }; key { [ Linefeed ] }; key { [ Home ] }; key { [ Up ] }; key { [ Prior ] }; key { [ Left ] }; key { [ Right ] }; key { [ End ] }; key { [ Down ] }; key { [ Next ] }; key { [ Insert ] }; key { [ Delete ] }; key { [ XF86AudioMute ] }; key { [ XF86AudioLowerVolume ] }; key { [ XF86AudioRaiseVolume ] }; key { [ XF86PowerOff ] }; key { [ KP_Equal ] }; key { [ plusminus ] }; key { type= "PC_CONTROL_LEVEL2", symbols[Group1]= [ Pause, Break ] }; key { [ XF86LaunchA ] }; key { [ KP_Decimal, KP_Decimal ] }; key { [ Hangul ] }; key { [ Hangul_Hanja ] }; key { [ Super_L ] }; key { [ Super_R ] }; key { [ Menu ] }; key { [ Cancel ] }; key { [ Redo ] }; key { [ SunProps ] }; key { [ Undo ] }; key { [ SunFront ] }; key { [ XF86Copy ] }; key { [ XF86Open ] }; key { [ XF86Paste ] }; key { [ Find ] }; key { [ XF86Cut ] }; key { [ Help ] }; key { [ XF86MenuKB ] }; key { [ XF86Calculator ] }; key { [ XF86Sleep ] }; key { [ XF86WakeUp ] }; key { [ XF86Explorer ] }; key { [ XF86Send ] }; key { [ XF86Xfer ] }; key { [ XF86Launch1 ] }; key { [ XF86Launch2 ] }; key { [ XF86WWW ] }; key { [ XF86DOS ] }; key { [ XF86ScreenSaver ] }; key { [ XF86RotateWindows ] }; key { [ XF86TaskPane ] }; key { [ XF86Mail ] }; key { [ XF86Favorites ] }; key { [ XF86MyComputer ] }; key { [ XF86Back ] }; key { [ XF86Forward ] }; key { [ XF86Eject ] }; key { [ XF86Eject, XF86Eject ] }; key { [ XF86AudioNext ] }; key { [ XF86AudioPlay, XF86AudioPause ] }; key { [ XF86AudioPrev ] }; key { [ XF86AudioStop, XF86Eject ] }; key { [ XF86AudioRecord ] }; key { [ XF86AudioRewind ] }; key { [ XF86Phone ] }; key { [ XF86Tools ] }; key { [ XF86HomePage ] }; key { [ XF86Reload ] }; key { [ XF86Close ] }; key { [ XF86ScrollUp ] }; key { [ XF86ScrollDown ] }; key { [ parenleft ] }; key { [ parenright ] }; key { [ XF86New ] }; key { [ Redo ] }; key { [ XF86Tools ] }; key { [ XF86Launch5 ] }; key { [ XF86Launch6 ] }; key { [ XF86Launch7 ] }; key { [ XF86Launch8 ] }; key { [ XF86Launch9 ] }; key { [ XF86AudioMicMute ] }; key { [ XF86TouchpadToggle ] }; key { [ XF86TouchpadOn ] }; key { [ XF86TouchpadOff ] }; key { [ Mode_switch ] }; key { [ NoSymbol, Alt_L ] }; key { [ NoSymbol, Meta_L ] }; key { [ NoSymbol, Super_L ] }; key { [ Hyper_L, Hyper_L ] }; key { [ XF86AudioPlay ] }; key { [ XF86AudioPause ] }; key { [ XF86Launch3 ] }; key { [ XF86Launch4 ] }; key { [ XF86LaunchB ] }; key { [ XF86Suspend ] }; key { [ XF86Close ] }; key { [ XF86AudioPlay ] }; key { [ XF86AudioForward ] }; key { [ Print ] }; key { [ XF86WebCam ] }; key { [ XF86AudioPreset ] }; key { [ XF86Mail ] }; key { [ XF86Messenger ] }; key { [ XF86Search ] }; key { [ XF86Go ] }; key { [ XF86Finance ] }; key { [ XF86Game ] }; key { [ XF86Shop ] }; key { [ Cancel ] }; key { [ XF86MonBrightnessDown ] }; key { [ XF86MonBrightnessUp ] }; key { [ XF86AudioMedia ] }; key { [ XF86Display ] }; key { [ XF86KbdLightOnOff ] }; key { [ XF86KbdBrightnessDown ] }; key { [ XF86KbdBrightnessUp ] }; key { [ XF86Send ] }; key { [ XF86Reply ] }; key { [ XF86MailForward ] }; key { [ XF86Save ] }; key { [ XF86Documents ] }; key { [ XF86Battery ] }; key { [ XF86Bluetooth ] }; key { [ XF86WLAN ] }; key { [ XF86MonBrightnessCycle ] }; key { [ XF86WWAN ] }; key { [ XF86RFKill ] }; modifier_map Control { }; modifier_map Shift { }; modifier_map Shift { }; modifier_map Mod1 { }; modifier_map Lock { }; modifier_map Mod2 { }; modifier_map Mod5 { }; modifier_map Control { }; modifier_map Mod1 { }; modifier_map Mod4 { }; modifier_map Mod4 { }; modifier_map Mod5 { }; modifier_map Mod1 { }; // modifier_map Mod4 { }; modifier_map Mod3 { }; }; xkb_geometry "pc(pc105)" { width= 470; height= 180; alias = ; alias = ; baseColor= "white"; labelColor= "black"; xfont= "-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1"; description= "Generic 105-key PC"; shape "NORM" { corner= 1, { [ 18, 18 ] }, { [ 2, 1 ], [ 16, 16 ] } }; shape "BKSP" { corner= 1, { [ 38, 18 ] }, { [ 2, 1 ], [ 36, 16 ] } }; shape "TABK" { corner= 1, { [ 28, 18 ] }, { [ 2, 1 ], [ 26, 16 ] } }; shape "BKSL" { corner= 1, { [ 28, 18 ] }, { [ 2, 1 ], [ 26, 16 ] } }; shape "RTRN" { corner= 1, { [ 0, 0 ], [ 28, 0 ], [ 28, 37 ], [ 5, 37 ], [ 5, 18 ], [ 0, 18 ] }, { [ 2, 1 ], [ 26, 1 ], [ 26, 35 ], [ 7, 35 ], [ 7, 16 ], [ 2, 16 ] }, approx= { [ 5, 0 ], [ 28, 37 ] } }; shape "CAPS" { corner= 1, { [ 33, 18 ] }, { [ 2, 1 ], [ 31, 16 ] } }; shape "LFSH" { corner= 1, { [ 25, 18 ] }, { [ 2, 1 ], [ 23, 16 ] } }; shape "RTSH" { corner= 1, { [ 50, 18 ] }, { [ 2, 1 ], [ 48, 16 ] } }; shape "MODK" { corner= 1, { [ 27, 18 ] }, { [ 2, 1 ], [ 25, 16 ] } }; shape "SMOD" { corner= 1, { [ 23, 18 ] }, { [ 2, 1 ], [ 21, 16 ] } }; shape "SPCE" { corner= 1, { [ 113, 18 ] }, { [ 2, 1 ], [ 111, 16 ] } }; shape "KP0" { corner= 1, { [ 37, 18 ] }, { [ 2, 1 ], [ 35, 16 ] } }; shape "KPAD" { corner= 1, { [ 18, 37 ] }, { [ 2, 1 ], [ 16, 35 ] } }; shape "LEDS" { { [ 75, 20 ] } }; shape "LED" { { [ 5, 1 ] } }; section "Function" { key.color= "grey20"; priority= 7; top= 22; left= 19; width= 351; height= 19; row { top= 1; left= 1; keys { { , "NORM", 1 }, { , "NORM", 20, color="white" }, { , "NORM", 1, color="white" }, { , "NORM", 1, color="white" }, { , "NORM", 1, color="white" }, { , "NORM", 11, color="white" }, { , "NORM", 1, color="white" }, { , "NORM", 1, color="white" }, { , "NORM", 1, color="white" }, { , "NORM", 11, color="white" }, { , "NORM", 1, color="white" }, { , "NORM", 1, color="white" }, { , "NORM", 1, color="white" }, { , "NORM", 8, color="white" }, { , "NORM", 1, color="white" }, { , "NORM", 1, color="white" } }; }; }; // End of "Function" section section "Alpha" { key.color= "white"; priority= 8; top= 61; left= 19; width= 287; height= 95; row { top= 1; left= 1; keys { { , "NORM", 1 }, { , "NORM", 1 }, { , "NORM", 1 }, { , "NORM", 1 }, { , "NORM", 1 }, { , "NORM", 1 }, { , "NORM", 1 }, { , "NORM", 1 }, { , "NORM", 1 }, { , "NORM", 1 }, { , "NORM", 1 }, { , "NORM", 1 }, { , "NORM", 1 }, { , "BKSP", 1, color="grey20" } }; }; row { top= 20; left= 1; keys { { , "TABK", 1, color="grey20" }, { , "NORM", 1 }, { , "NORM", 1 }, { , "NORM", 1 }, { , "NORM", 1 }, { , "NORM", 1 }, { , "NORM", 1 }, { , "NORM", 1 }, { , "NORM", 1 }, { , "NORM", 1 }, { , "NORM", 1 }, { , "NORM", 1 }, { , "NORM", 1 }, { , "RTRN", 1, color="grey20" } }; }; row { top= 39; left= 1; keys { { , "CAPS", 1, color="grey20" }, { , "NORM", 1 }, { , "NORM", 1 }, { , "NORM", 1 }, { , "NORM", 1 }, { , "NORM", 1 }, { , "NORM", 1 }, { , "NORM", 1 }, { , "NORM", 1 }, { , "NORM", 1 }, { , "NORM", 1 }, { , "NORM", 1 }, { , "NORM", 1 } }; }; row { top= 58; left= 1; keys { { , "LFSH", 1, color="grey20" }, { , "NORM", 1 }, { , "NORM", 1 }, { , "NORM", 1 }, { , "NORM", 1 }, { , "NORM", 1 }, { , "NORM", 1 }, { , "NORM", 1 }, { , "NORM", 1 }, { , "NORM", 1 }, { , "NORM", 1 }, { , "NORM", 1 }, { , "RTSH", 1, color="grey20" } }; }; row { top= 77; left= 1; keys { { , "MODK", 1, color="grey20" }, { , "SMOD", 1, color="grey20" }, { , "SMOD", 1, color="grey20" }, { , "SPCE", 1 }, { , "SMOD", 1, color="grey20" }, { , "SMOD", 1, color="grey20" }, { , "SMOD", 1, color="grey20" }, { , "SMOD", 1, color="grey20" } }; }; }; // End of "Alpha" section section "Editing" { key.color= "grey20"; priority= 9; top= 61; left= 312; width= 58; height= 95; row { top= 1; left= 1; keys { { , "NORM", 1 }, { , "NORM", 1 }, { , "NORM", 1 } }; }; row { top= 20; left= 1; keys { { , "NORM", 1 }, { , "NORM", 1 }, { , "NORM", 1 } }; }; row { top= 58; left= 20; keys { { , "NORM", 1 } }; }; row { top= 77; left= 1; keys { { , "NORM", 1 }, { , "NORM", 1 }, { , "NORM", 1 } }; }; }; // End of "Editing" section section "Keypad" { key.color= "grey20"; priority= 10; top= 61; left= 376; width= 77; height= 95; row { top= 1; left= 1; keys { { , "NORM", 1 }, { , "NORM", 1 }, { , "NORM", 1 }, { , "NORM", 1 } }; }; row { top= 20; left= 1; keys { { , "NORM", 1, color="white" }, { , "NORM", 1, color="white" }, { , "NORM", 1, color="white" }, { , "KPAD", 1 } }; }; row { top= 39; left= 1; keys { { , "NORM", 1, color="white" }, { , "NORM", 1, color="white" }, { , "NORM", 1, color="white" } }; }; row { top= 58; left= 1; keys { { , "NORM", 1, color="white" }, { , "NORM", 1, color="white" }, { , "NORM", 1, color="white" }, { , "KPAD", 1 } }; }; row { top= 77; left= 1; keys { { , "KP0", 1, color="white" }, { , "NORM", 1, color="white" } }; }; }; // End of "Keypad" section solid "LedPanel" { top= 22; left= 377; priority= 0; color= "grey10"; shape= "LEDS"; }; indicator "Num Lock" { top= 37; left= 382; priority= 1; onColor= "green"; offColor= "green30"; shape= "LED"; }; indicator "Caps Lock" { top= 37; left= 407; priority= 2; onColor= "green"; offColor= "green30"; shape= "LED"; }; indicator "Scroll Lock" { top= 37; left= 433; priority= 3; onColor= "green"; offColor= "green30"; shape= "LED"; }; text "NumLockLabel" { top= 25; left= 378; priority= 4; width= 19.8; height= 10; XFont= "-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1"; text= "Num\nLock"; }; text "CapsLockLabel" { top= 25; left= 403; priority= 5; width= 26.4; height= 10; XFont= "-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1"; text= "Caps\nLock"; }; text "ScrollLockLabel" { top= 25; left= 428; priority= 6; width= 39.6; height= 10; XFont= "-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1"; text= "Scroll\nLock"; }; }; };
user202729 commented 3 years ago

You might have different xkb configuration for these 2 different keyboards.

Everything that you've posted shows that 66 is CAPS, not any ctrl key.

You can use xinput to get list of all id and xkbcomp -xkb -i <id> file.xkb $DISPLAY ($DISPLAY is usually :0) to dump the configuration of keyboard <id> to file.xkb.


Does xdotool work? For example xdotool key ctrl+l ? (optionally add a sleep to switch the focus first)