| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -57,6 +57,9 @@ static Key key[] = { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						{ MODKEY|ShiftMask,	XK_w,		spawn,		{ .argv = browse } }, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					}; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					#define NumLockMask Mod2Mask | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					unsigned int valid_mask =  255 &  ~( NumLockMask | LockMask); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					/* END CUSTOMIZE */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					/* static */ | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -271,10 +274,11 @@ keypress(XEvent *e) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						unsigned int i; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						KeySym keysym; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						XKeyEvent *ev = &e->xkey; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						ev->state &= valid_mask; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						keysym = XKeycodeToKeysym(dpy, (KeyCode)ev->keycode, 0); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						for(i = 0; i < len; i++) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if((keysym == key[i].keysym) && (key[i].mod == ev->state)) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if((keysym == key[i].keysym) && ((key[i].mod & valid_mask) == ev->state)) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								if(key[i].func) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									key[i].func(&key[i].arg); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								return; | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -377,7 +381,19 @@ 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); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							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); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} |