On Mon, Aug 1, 2011 at 1:34 PM, anonymous <p37si...@lavabit.com> wrote: > I think my patch is better. There is no special case for 0 mask and state > and when we match for Ctrl and Shift it works only when they both are > pressed. With your patch it will work for Ctrl only or for Shift only.
When a key in config.h has mask = 0 it's matched with <any modifier>, not <no modifier>. Instead we could: #define XK_NO_MOD UINT_MAX #define XK_ANY_MOD 0 When numlock is on, each keypress has a state of 0x10. I suppose nobody actually use keybindings involving numlock so kmap() could clear the numlock mask from state before looking for a match in key[].