| 
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -61,7 +61,7 @@ | 
															
														
														
													
														
															
																 | 
																 | 
																/* enums */ | 
																 | 
																 | 
																/* enums */ | 
															
														
														
													
														
															
																 | 
																 | 
																enum { CurNormal, CurResize, CurMove, CurLast }; /* cursor */ | 
																 | 
																 | 
																enum { CurNormal, CurResize, CurMove, CurLast }; /* cursor */ | 
															
														
														
													
														
															
																 | 
																 | 
																enum { SchemeNorm, SchemeSel }; /* color schemes */ | 
																 | 
																 | 
																enum { SchemeNorm, SchemeSel }; /* color schemes */ | 
															
														
														
													
														
															
																 | 
																 | 
																enum { NetSupported, NetWMName, NetWMState, | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																enum { NetSupported, NetWMName, NetWMState, NetWMCheck, | 
															
														
														
													
														
															
																 | 
																 | 
																       NetWMFullscreen, NetActiveWindow, NetWMWindowType, | 
																 | 
																 | 
																       NetWMFullscreen, NetActiveWindow, NetWMWindowType, | 
															
														
														
													
														
															
																 | 
																 | 
																       NetWMWindowTypeDialog, NetClientList, NetLast }; /* EWMH atoms */ | 
																 | 
																 | 
																       NetWMWindowTypeDialog, NetClientList, NetLast }; /* EWMH atoms */ | 
															
														
														
													
														
															
																 | 
																 | 
																enum { WMProtocols, WMDelete, WMState, WMTakeFocus, WMLast }; /* default atoms */ | 
																 | 
																 | 
																enum { WMProtocols, WMDelete, WMState, WMTakeFocus, WMLast }; /* default atoms */ | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -267,7 +267,7 @@ static Scm *scheme; | 
															
														
														
													
														
															
																 | 
																 | 
																static Display *dpy; | 
																 | 
																 | 
																static Display *dpy; | 
															
														
														
													
														
															
																 | 
																 | 
																static Drw *drw; | 
																 | 
																 | 
																static Drw *drw; | 
															
														
														
													
														
															
																 | 
																 | 
																static Monitor *mons, *selmon; | 
																 | 
																 | 
																static Monitor *mons, *selmon; | 
															
														
														
													
														
															
																 | 
																 | 
																static Window root; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																static Window root, wmcheckwin; | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																/* configuration, allows nested code to access above variables */ | 
																 | 
																 | 
																/* configuration, allows nested code to access above variables */ | 
															
														
														
													
														
															
																 | 
																 | 
																#include "config.h" | 
																 | 
																 | 
																#include "config.h" | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -485,6 +485,7 @@ cleanup(void) | 
															
														
														
													
														
															
																 | 
																 | 
																		drw_cur_free(drw, cursor[i]); | 
																 | 
																 | 
																		drw_cur_free(drw, cursor[i]); | 
															
														
														
													
														
															
																 | 
																 | 
																	for (i = 0; i < LENGTH(colors); i++) | 
																 | 
																 | 
																	for (i = 0; i < LENGTH(colors); i++) | 
															
														
														
													
														
															
																 | 
																 | 
																		free(scheme[i]); | 
																 | 
																 | 
																		free(scheme[i]); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	XDestroyWindow(dpy, wmcheckwin); | 
															
														
														
													
														
															
																 | 
																 | 
																	drw_free(drw); | 
																 | 
																 | 
																	drw_free(drw); | 
															
														
														
													
														
															
																 | 
																 | 
																	XSync(dpy, False); | 
																 | 
																 | 
																	XSync(dpy, False); | 
															
														
														
													
														
															
																 | 
																 | 
																	XSetInputFocus(dpy, PointerRoot, RevertToPointerRoot, CurrentTime); | 
																 | 
																 | 
																	XSetInputFocus(dpy, PointerRoot, RevertToPointerRoot, CurrentTime); | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -1551,6 +1552,7 @@ setup(void) | 
															
														
														
													
														
															
																 | 
																 | 
																{ | 
																 | 
																 | 
																{ | 
															
														
														
													
														
															
																 | 
																 | 
																	int i; | 
																 | 
																 | 
																	int i; | 
															
														
														
													
														
															
																 | 
																 | 
																	XSetWindowAttributes wa; | 
																 | 
																 | 
																	XSetWindowAttributes wa; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	Atom utf8string; | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																	/* clean up any zombies immediately */ | 
																 | 
																 | 
																	/* clean up any zombies immediately */ | 
															
														
														
													
														
															
																 | 
																 | 
																	sigchld(0); | 
																 | 
																 | 
																	sigchld(0); | 
															
														
														
													
												
													
														
															
																| 
																	
																	
																	
																		
																			
																		
																	
																 | 
																@ -1567,6 +1569,7 @@ setup(void) | 
															
														
														
													
														
															
																 | 
																 | 
																	bh = drw->fonts->h + 2; | 
																 | 
																 | 
																	bh = drw->fonts->h + 2; | 
															
														
														
													
														
															
																 | 
																 | 
																	updategeom(); | 
																 | 
																 | 
																	updategeom(); | 
															
														
														
													
														
															
																 | 
																 | 
																	/* init atoms */ | 
																 | 
																 | 
																	/* init atoms */ | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	utf8string = XInternAtom(dpy, "UTF8_STRING", False); | 
															
														
														
													
														
															
																 | 
																 | 
																	wmatom[WMProtocols] = XInternAtom(dpy, "WM_PROTOCOLS", False); | 
																 | 
																 | 
																	wmatom[WMProtocols] = XInternAtom(dpy, "WM_PROTOCOLS", False); | 
															
														
														
													
														
															
																 | 
																 | 
																	wmatom[WMDelete] = XInternAtom(dpy, "WM_DELETE_WINDOW", False); | 
																 | 
																 | 
																	wmatom[WMDelete] = XInternAtom(dpy, "WM_DELETE_WINDOW", False); | 
															
														
														
													
														
															
																 | 
																 | 
																	wmatom[WMState] = XInternAtom(dpy, "WM_STATE", False); | 
																 | 
																 | 
																	wmatom[WMState] = XInternAtom(dpy, "WM_STATE", False); | 
															
														
														
													
												
													
														
															
																| 
																	
																	
																	
																		
																			
																		
																	
																 | 
																@ -1575,6 +1578,7 @@ setup(void) | 
															
														
														
													
														
															
																 | 
																 | 
																	netatom[NetSupported] = XInternAtom(dpy, "_NET_SUPPORTED", False); | 
																 | 
																 | 
																	netatom[NetSupported] = XInternAtom(dpy, "_NET_SUPPORTED", False); | 
															
														
														
													
														
															
																 | 
																 | 
																	netatom[NetWMName] = XInternAtom(dpy, "_NET_WM_NAME", False); | 
																 | 
																 | 
																	netatom[NetWMName] = XInternAtom(dpy, "_NET_WM_NAME", False); | 
															
														
														
													
														
															
																 | 
																 | 
																	netatom[NetWMState] = XInternAtom(dpy, "_NET_WM_STATE", False); | 
																 | 
																 | 
																	netatom[NetWMState] = XInternAtom(dpy, "_NET_WM_STATE", False); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	netatom[NetWMCheck] = XInternAtom(dpy, "_NET_SUPPORTING_WM_CHECK", False); | 
															
														
														
													
														
															
																 | 
																 | 
																	netatom[NetWMFullscreen] = XInternAtom(dpy, "_NET_WM_STATE_FULLSCREEN", False); | 
																 | 
																 | 
																	netatom[NetWMFullscreen] = XInternAtom(dpy, "_NET_WM_STATE_FULLSCREEN", False); | 
															
														
														
													
														
															
																 | 
																 | 
																	netatom[NetWMWindowType] = XInternAtom(dpy, "_NET_WM_WINDOW_TYPE", False); | 
																 | 
																 | 
																	netatom[NetWMWindowType] = XInternAtom(dpy, "_NET_WM_WINDOW_TYPE", False); | 
															
														
														
													
														
															
																 | 
																 | 
																	netatom[NetWMWindowTypeDialog] = XInternAtom(dpy, "_NET_WM_WINDOW_TYPE_DIALOG", False); | 
																 | 
																 | 
																	netatom[NetWMWindowTypeDialog] = XInternAtom(dpy, "_NET_WM_WINDOW_TYPE_DIALOG", False); | 
															
														
														
													
												
													
														
															
																| 
																	
																	
																	
																		
																			
																		
																	
																 | 
																@ -1590,6 +1594,14 @@ setup(void) | 
															
														
														
													
														
															
																 | 
																 | 
																	/* init bars */ | 
																 | 
																 | 
																	/* init bars */ | 
															
														
														
													
														
															
																 | 
																 | 
																	updatebars(); | 
																 | 
																 | 
																	updatebars(); | 
															
														
														
													
														
															
																 | 
																 | 
																	updatestatus(); | 
																 | 
																 | 
																	updatestatus(); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	/* supporting window for NetWMCheck */ | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	wmcheckwin = XCreateSimpleWindow(dpy, root, 0, 0, 1, 1, 0, 0, 0); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	XChangeProperty(dpy, wmcheckwin, netatom[NetWMCheck], XA_WINDOW, 32, | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																		PropModeReplace, (unsigned char *) &wmcheckwin, 1); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	XChangeProperty(dpy, wmcheckwin, netatom[NetWMName], utf8string, 8, | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																		PropModeReplace, (unsigned char *) "dwm", 4); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	XChangeProperty(dpy, root, netatom[NetWMCheck], XA_WINDOW, 32, | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																		PropModeReplace, (unsigned char *) &wmcheckwin, 1); | 
															
														
														
													
														
															
																 | 
																 | 
																	/* EWMH support per view */ | 
																 | 
																 | 
																	/* EWMH support per view */ | 
															
														
														
													
														
															
																 | 
																 | 
																	XChangeProperty(dpy, root, netatom[NetSupported], XA_ATOM, 32, | 
																 | 
																 | 
																	XChangeProperty(dpy, root, netatom[NetSupported], XA_ATOM, 32, | 
															
														
														
													
														
															
																 | 
																 | 
																			PropModeReplace, (unsigned char *) netatom, NetLast); | 
																 | 
																 | 
																			PropModeReplace, (unsigned char *) netatom, NetLast); | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																	
																 | 
																
  |