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;
}
|| 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 {