On Sat, Jun 25, 2011 at 09:32:24AM +0100, garbeam wrote: > Hi there, > > I'd like you to test it and let me know any issues.
Hello. dwm hotkeys and mouse buttons doesn't work for me when Num Lock is on. Patch attached. My keyboard setup: setxkbmap us,ru xmodmap -e "keysym Caps_Lock = ISO_First_Group ISO_Last_Group" numlockx on xmodmap output: xmodmap: up to 4 keys per modifier, (keycodes in parentheses): shift Shift_L (0x32), Shift_R (0x3e) lock ISO_First_Group (0x42) control Control_L (0x25), Control_R (0x69) mod1 Alt_L (0x40), Alt_R (0x6c), Meta_L (0xcd) mod2 Num_Lock (0x4d) mod3 mod4 Super_L (0x85), Super_R (0x86), Super_L (0xce), Hyper_L (0xcf) mod5 ISO_Level3_Shift (0x5c), Mode_switch (0xcb) x86-64 Linux system, X.Org 7.6, evdev, 105 key PC keyboard.
diff -r 014df3c34b64 dwm.c --- a/dwm.c Sat Jun 25 09:07:28 2011 +0100 +++ b/dwm.c Sun Jun 26 10:22:08 2011 +0600 @@ -42,7 +42,7 @@ /* macros */ #define BUTTONMASK (ButtonPressMask|ButtonReleaseMask) -#define CLEANMASK(mask) (mask & (ShiftMask|ControlMask|Mod1Mask|Mod2Mask|Mod3Mask|Mod4Mask|Mod5Mask)) +#define CLEANMASK(mask) (mask & ~numlockmask & (ShiftMask|ControlMask|Mod1Mask|Mod2Mask|Mod3Mask|Mod4Mask|Mod5Mask)) #define INRECT(X,Y,RX,RY,RW,RH) ((X) >= (RX) && (X) < (RX) + (RW) && (Y) >= (RY) && (Y) < (RY) + (RH)) #define ISVISIBLE(C) ((C->tags & C->mon->tagset[C->mon->seltags])) #define LENGTH(X) (sizeof X / sizeof X[0])