| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -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); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} |