| 
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -129,7 +129,6 @@ static void mappingnotify(XEvent *e); | 
															
														
														
													
														
															
																 | 
																 | 
																static void maprequest(XEvent *e); | 
																 | 
																 | 
																static void maprequest(XEvent *e); | 
															
														
														
													
														
															
																 | 
																 | 
																static void propertynotify(XEvent *e); | 
																 | 
																 | 
																static void propertynotify(XEvent *e); | 
															
														
														
													
														
															
																 | 
																 | 
																static void unmapnotify(XEvent *e); | 
																 | 
																 | 
																static void unmapnotify(XEvent *e); | 
															
														
														
													
														
															
																 | 
																 | 
																static void grabkeys(void); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																static unsigned int idxoftag(const char *tag); | 
																 | 
																 | 
																static unsigned int idxoftag(const char *tag); | 
															
														
														
													
														
															
																 | 
																 | 
																static void floating(void); /* default floating layout */ | 
																 | 
																 | 
																static void floating(void); /* default floating layout */ | 
															
														
														
													
														
															
																 | 
																 | 
																static void applyrules(Client *c); | 
																 | 
																 | 
																static void applyrules(Client *c); | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -1070,9 +1069,26 @@ keypress(XEvent *e) { | 
															
														
														
													
														
															
																 | 
																 | 
																	KEYS | 
																 | 
																 | 
																	KEYS | 
															
														
														
													
														
															
																 | 
																 | 
																	unsigned int len = sizeof keys / sizeof keys[0]; | 
																 | 
																 | 
																	unsigned int len = sizeof keys / sizeof keys[0]; | 
															
														
														
													
														
															
																 | 
																 | 
																	unsigned int i; | 
																 | 
																 | 
																	unsigned int i; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	KeyCode code; | 
															
														
														
													
														
															
																 | 
																 | 
																	KeySym keysym; | 
																 | 
																 | 
																	KeySym keysym; | 
															
														
														
													
														
															
																 | 
																 | 
																	XKeyEvent *ev = &e->xkey; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	XKeyEvent *ev; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	if(!e) { /* grabkeys */ | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																		XUngrabKey(dpy, AnyKey, AnyModifier, root); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																		for(i = 0; i < len; i++) { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																			code = XKeysymToKeycode(dpy, keys[i].keysym); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																			XGrabKey(dpy, code, keys[i].mod, root, True, | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																					GrabModeAsync, GrabModeAsync); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																			XGrabKey(dpy, code, keys[i].mod | LockMask, root, True, | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																					GrabModeAsync, GrabModeAsync); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																			XGrabKey(dpy, code, keys[i].mod | numlockmask, root, True, | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																					GrabModeAsync, GrabModeAsync); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																			XGrabKey(dpy, code, keys[i].mod | numlockmask | LockMask, root, True, | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																					GrabModeAsync, GrabModeAsync); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																		} | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																		return; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	} | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	ev = &e->xkey; | 
															
														
														
													
														
															
																 | 
																 | 
																	keysym = XKeycodeToKeysym(dpy, (KeyCode)ev->keycode, 0); | 
																 | 
																 | 
																	keysym = XKeycodeToKeysym(dpy, (KeyCode)ev->keycode, 0); | 
															
														
														
													
														
															
																 | 
																 | 
																	for(i = 0; i < len; i++) | 
																 | 
																 | 
																	for(i = 0; i < len; i++) | 
															
														
														
													
														
															
																 | 
																 | 
																		if(keysym == keys[i].keysym | 
																 | 
																 | 
																		if(keysym == keys[i].keysym | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -1099,7 +1115,7 @@ mappingnotify(XEvent *e) { | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																	XRefreshKeyboardMapping(ev); | 
																 | 
																 | 
																	XRefreshKeyboardMapping(ev); | 
															
														
														
													
														
															
																 | 
																 | 
																	if(ev->request == MappingKeyboard) | 
																 | 
																 | 
																	if(ev->request == MappingKeyboard) | 
															
														
														
													
														
															
																 | 
																 | 
																		grabkeys(); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																		keypress(NULL); | 
															
														
														
													
														
															
																 | 
																 | 
																} | 
																 | 
																 | 
																} | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																static void | 
																 | 
																 | 
																static void | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -1152,27 +1168,6 @@ unmapnotify(XEvent *e) { | 
															
														
														
													
														
															
																 | 
																 | 
																		unmanage(c); | 
																 | 
																 | 
																		unmanage(c); | 
															
														
														
													
														
															
																 | 
																 | 
																} | 
																 | 
																 | 
																} | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																static void | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																grabkeys(void) { | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																	KEYS | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																	unsigned int len = sizeof keys / sizeof keys[0]; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																	unsigned int i; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																	KeyCode code; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																	XUngrabKey(dpy, AnyKey, AnyModifier, root); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																	for(i = 0; i < len; i++) { | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																		code = XKeysymToKeycode(dpy, keys[i].keysym); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																		XGrabKey(dpy, code, keys[i].mod, root, True, | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																				GrabModeAsync, GrabModeAsync); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																		XGrabKey(dpy, code, keys[i].mod | LockMask, root, True, | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																				GrabModeAsync, GrabModeAsync); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																		XGrabKey(dpy, code, keys[i].mod | numlockmask, root, True, | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																				GrabModeAsync, GrabModeAsync); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																		XGrabKey(dpy, code, keys[i].mod | numlockmask | LockMask, root, True, | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																				GrabModeAsync, GrabModeAsync); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																	} | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																} | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																static unsigned int | 
																 | 
																 | 
																static unsigned int | 
															
														
														
													
														
															
																 | 
																 | 
																idxoftag(const char *tag) { | 
																 | 
																 | 
																idxoftag(const char *tag) { | 
															
														
														
													
														
															
																 | 
																 | 
																	unsigned int i; | 
																 | 
																 | 
																	unsigned int i; | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -1546,7 +1541,7 @@ setup(void) { | 
															
														
														
													
														
															
																 | 
																 | 
																	wa.cursor = cursor[CurNormal]; | 
																 | 
																 | 
																	wa.cursor = cursor[CurNormal]; | 
															
														
														
													
														
															
																 | 
																 | 
																	XChangeWindowAttributes(dpy, root, CWEventMask | CWCursor, &wa); | 
																 | 
																 | 
																	XChangeWindowAttributes(dpy, root, CWEventMask | CWCursor, &wa); | 
															
														
														
													
														
															
																 | 
																 | 
																	XSelectInput(dpy, root, wa.event_mask); | 
																 | 
																 | 
																	XSelectInput(dpy, root, wa.event_mask); | 
															
														
														
													
														
															
																 | 
																 | 
																	grabkeys(); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	keypress(NULL); /* grabkeys */ | 
															
														
														
													
														
															
																 | 
																 | 
																	compileregs(); | 
																 | 
																 | 
																	compileregs(); | 
															
														
														
													
														
															
																 | 
																 | 
																	for(ntags = 0; tags[ntags]; ntags++); | 
																 | 
																 | 
																	for(ntags = 0; tags[ntags]; ntags++); | 
															
														
														
													
														
															
																 | 
																 | 
																	seltags = emallocz(sizeof(Bool) * ntags); | 
																 | 
																 | 
																	seltags = emallocz(sizeof(Bool) * ntags); | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																	
																 | 
																
  |