|  | @@ -8,7 +8,7 @@
 | 
	
		
			
				|  |  |  #include <X11/keysym.h>
 | 
	
		
			
				|  |  |  #include <X11/Xatom.h>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -/* CUSTOMIZE */
 | 
	
		
			
				|  |  | +/* static */
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  typedef struct {
 | 
	
		
			
				|  |  |  	unsigned long mod;
 | 
	
	
		
			
				|  | @@ -17,52 +17,10 @@ typedef struct {
 | 
	
		
			
				|  |  |  	Arg arg;
 | 
	
		
			
				|  |  |  } Key;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -const char *browse[] = { "firefox", NULL };
 | 
	
		
			
				|  |  | -const char *gimp[] = { "gimp", NULL };
 | 
	
		
			
				|  |  | -const char *term[] = { /*"xterm", NULL };*/
 | 
	
		
			
				|  |  | -	"urxvt", "-tr", "+sb", "-bg", "black", "-fg", "white", "-cr", "white",
 | 
	
		
			
				|  |  | -	"-fn", "-*-terminus-medium-*-*-*-13-*-*-*-*-*-iso10646-*", NULL
 | 
	
		
			
				|  |  | -};
 | 
	
		
			
				|  |  | -const char *xlock[] = { "xlock", NULL };
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -static Key key[] = {
 | 
	
		
			
				|  |  | -	/* modifier		key		function	arguments */
 | 
	
		
			
				|  |  | -	{ MODKEY,		XK_0,		view,		{ .i = Tfnord } }, 
 | 
	
		
			
				|  |  | -	{ MODKEY,		XK_1,		view,		{ .i = Tdev } }, 
 | 
	
		
			
				|  |  | -	{ MODKEY,		XK_2,		view,		{ .i = Tnet } }, 
 | 
	
		
			
				|  |  | -	{ MODKEY,		XK_3,		view,		{ .i = Twork } }, 
 | 
	
		
			
				|  |  | -	{ MODKEY,		XK_4,		view,		{ .i = Tmisc} }, 
 | 
	
		
			
				|  |  | -	{ MODKEY,		XK_h,		viewprev,	{ 0 } },
 | 
	
		
			
				|  |  | -	{ MODKEY,		XK_j,		focusnext,	{ 0 } }, 
 | 
	
		
			
				|  |  | -	{ MODKEY,		XK_k,		focusprev,	{ 0 } },
 | 
	
		
			
				|  |  | -	{ MODKEY,		XK_l,		viewnext,	{ 0 } },
 | 
	
		
			
				|  |  | -	{ MODKEY,		XK_m,		togglemax,	{ 0 } }, 
 | 
	
		
			
				|  |  | -	{ MODKEY,		XK_space,	togglemode,	{ 0 } }, 
 | 
	
		
			
				|  |  | -	{ MODKEY,		XK_Return,	zoom,		{ 0 } },
 | 
	
		
			
				|  |  | -	{ MODKEY|ControlMask,	XK_0,		appendtag,	{ .i = Tfnord } }, 
 | 
	
		
			
				|  |  | -	{ MODKEY|ControlMask,	XK_1,		appendtag,	{ .i = Tdev } }, 
 | 
	
		
			
				|  |  | -	{ MODKEY|ControlMask,	XK_2,		appendtag,	{ .i = Tnet } }, 
 | 
	
		
			
				|  |  | -	{ MODKEY|ControlMask,	XK_3,		appendtag,	{ .i = Twork } }, 
 | 
	
		
			
				|  |  | -	{ MODKEY|ControlMask,	XK_4,		appendtag,	{ .i = Tmisc } }, 
 | 
	
		
			
				|  |  | -	{ MODKEY|ShiftMask,	XK_0,		replacetag,	{ .i = Tfnord } }, 
 | 
	
		
			
				|  |  | -	{ MODKEY|ShiftMask,	XK_1,		replacetag,	{ .i = Tdev } }, 
 | 
	
		
			
				|  |  | -	{ MODKEY|ShiftMask,	XK_2,		replacetag,	{ .i = Tnet } }, 
 | 
	
		
			
				|  |  | -	{ MODKEY|ShiftMask,	XK_3,		replacetag,	{ .i = Twork } }, 
 | 
	
		
			
				|  |  | -	{ MODKEY|ShiftMask,	XK_4,		replacetag,	{ .i = Tmisc } }, 
 | 
	
		
			
				|  |  | -	{ MODKEY|ShiftMask,	XK_c,		killclient,	{ 0 } }, 
 | 
	
		
			
				|  |  | -	{ MODKEY|ShiftMask,	XK_q,		quit,		{ 0 } },
 | 
	
		
			
				|  |  | -	{ MODKEY|ShiftMask,	XK_Return,	spawn,		{ .argv = term } },
 | 
	
		
			
				|  |  | -	{ MODKEY|ShiftMask,	XK_g,		spawn,		{ .argv = gimp } },
 | 
	
		
			
				|  |  | -	{ MODKEY|ShiftMask,	XK_l,		spawn,		{ .argv = xlock } },
 | 
	
		
			
				|  |  | -	{ MODKEY|ShiftMask,	XK_w,		spawn,		{ .argv = browse } },
 | 
	
		
			
				|  |  | -};
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -#define NumLockMask Mod2Mask
 | 
	
		
			
				|  |  | -unsigned int valid_mask =  255 &  ~( NumLockMask | LockMask);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -/* END CUSTOMIZE */
 | 
	
		
			
				|  |  | +CMDS
 | 
	
		
			
				|  |  | +KEYS
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -/* static */
 | 
	
		
			
				|  |  | +static unsigned int valid_mask =  255 &  ~(NUMLOCKMASK | LockMask);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  static void
 | 
	
		
			
				|  |  |  movemouse(Client *c)
 | 
	
	
		
			
				|  | @@ -381,19 +339,13 @@ grabkeys()
 | 
	
		
			
				|  |  |  	for(i = 0; i < len; i++) {
 | 
	
		
			
				|  |  |  		code = XKeysymToKeycode(dpy, key[i].keysym);
 | 
	
		
			
				|  |  |  		XUngrabKey(dpy, code, key[i].mod, root);
 | 
	
		
			
				|  |  | -		if (NumLockMask)
 | 
	
		
			
				|  |  | -		{
 | 
	
		
			
				|  |  | -			XUngrabKey(dpy, code, key[i].mod | NumLockMask, root);
 | 
	
		
			
				|  |  | -			XUngrabKey(dpy, code, key[i].mod | NumLockMask | LockMask, root);
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  | +		XUngrabKey(dpy, code, key[i].mod | NUMLOCKMASK, root);
 | 
	
		
			
				|  |  | +		XUngrabKey(dpy, code, key[i].mod | NUMLOCKMASK | LockMask, root);
 | 
	
		
			
				|  |  |  		XGrabKey(dpy, code, key[i].mod, root, True,
 | 
	
		
			
				|  |  |  				GrabModeAsync, GrabModeAsync);
 | 
	
		
			
				|  |  | -		if (NumLockMask)
 | 
	
		
			
				|  |  | -		{
 | 
	
		
			
				|  |  | -			XGrabKey(dpy, code, key[i].mod | NumLockMask, root, True,
 | 
	
		
			
				|  |  | -					GrabModeAsync, GrabModeAsync);
 | 
	
		
			
				|  |  | -			XGrabKey(dpy, code, key[i].mod | NumLockMask | LockMask, root, True,
 | 
	
		
			
				|  |  | -					GrabModeAsync, GrabModeAsync);
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  | +		XGrabKey(dpy, code, key[i].mod | NUMLOCKMASK, root, True,
 | 
	
		
			
				|  |  | +				GrabModeAsync, GrabModeAsync);
 | 
	
		
			
				|  |  | +		XGrabKey(dpy, code, key[i].mod | NUMLOCKMASK | LockMask, root, True,
 | 
	
		
			
				|  |  | +				GrabModeAsync, GrabModeAsync);
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  }
 |