diff --git a/src/config/keybind.c b/src/config/keybind.c index f741b2bd..1de02513 100644 --- a/src/config/keybind.c +++ b/src/config/keybind.c @@ -15,14 +15,19 @@ uint32_t parse_modifier(const char *symname) { + /* Mod2 == NumLock */ if (!strcmp(symname, "S")) { return WLR_MODIFIER_SHIFT; } else if (!strcmp(symname, "C")) { return WLR_MODIFIER_CTRL; - } else if (!strcmp(symname, "A")) { + } else if (!strcmp(symname, "A") || !strcmp(symname, "Mod1")) { return WLR_MODIFIER_ALT; - } else if (!strcmp(symname, "W")) { + } else if (!strcmp(symname, "W") || !strcmp(symname, "Mod4")) { return WLR_MODIFIER_LOGO; + } else if (!strcmp(symname, "M") || !strcmp(symname, "Mod5")) { + return WLR_MODIFIER_MOD5; + } else if (!strcmp(symname, "H") || !strcmp(symname, "Mod3")) { + return WLR_MODIFIER_MOD3; } else { return 0; } diff --git a/src/keyboard.c b/src/keyboard.c index 43c84755..2b705140 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -130,7 +130,10 @@ static bool is_modifier_key(xkb_keysym_t sym) || sym == XKB_KEY_Control_L || sym == XKB_KEY_Control_R || sym == XKB_KEY_Super_L - || sym == XKB_KEY_Super_R; + || sym == XKB_KEY_Super_R + /* Right hand Alt key for Mod5 */ + || sym == XKB_KEY_Mode_switch + || sym == XKB_KEY_ISO_Level3_Shift; } struct keysyms {