I am using a device with a builtin keyboard and run ARM Debian on it with i3 as Window Manager. There is one Alt
key (keysym Alt_L
), and two keys for special characters that look similar to AltGr
since they correspond to ISO_Level3_Shift
according to xev
:
KeyPress event, serial 34, synthetic NO, window 0x2200001,
root 0x38c, subw 0x0, time 86851282, (270,736), root:(1903,793),
state 0x0, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 34, synthetic NO, window 0x2200001,
root 0x38c, subw 0x0, time 86851413, (270,736), root:(1903,793),
state 0x8, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 34, synthetic NO, window 0x2200001,
root 0x38c, subw 0x0, time 86854252, (270,736), root:(1903,793),
state 0x0, keycode 108 (keysym 0xfe03, ISO_Level3_Shift), same_screen YES,
XKeysymToKeycode returns keycode: 92
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 34, synthetic NO, window 0x2200001,
root 0x38c, subw 0x0, time 86854362, (270,736), root:(1903,793),
state 0x8, keycode 108 (keysym 0xfe03, ISO_Level3_Shift), same_screen YES,
XKeysymToKeycode returns keycode: 92
XLookupString gives 0 bytes:
XFilterEvent returns: False
Yet, despite different keysyms, all three keys are considered the same by Debian and i3 WM: regardless of the key I press, they all serve as the modifier key in i3 after I set $mod
to Mod1
in my i3 config. I haven't found a way too make my system distinguish them.
Is there a way to separate the two keysims and keep Alt
base function, i.e., make it open menus in GUI applications but not trigger i3 modifier? Or, alternatively, my preference would be to use Alt_L
to reach third-level xkb symbols, and ISO_Level3_Shift
as my i3 modifier; how could I do that?