| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -49,41 +49,7 @@ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					#define CLEANMASK(mask)		(mask & ~(numlockmask | LockMask)) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					#define MOUSEMASK		(BUTTONMASK | PointerMotionMask) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					/* enums */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					enum { BarTop, BarBot, BarOff };			/* bar position */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					enum { CurNormal, CurResize, CurMove, CurLast };	/* cursor */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					enum { ColBorder, ColFG, ColBG, ColLast };		/* color */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					enum { NetSupported, NetWMName, NetLast };		/* EWMH atoms */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					enum { WMProtocols, WMDelete, WMName, WMState, WMLast };/* default atoms */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					/* typedefs */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					typedef struct { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						int x, y, w, h; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						unsigned long norm[ColLast]; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						unsigned long sel[ColLast]; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						Drawable drawable; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						GC gc; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						struct { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							int ascent; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							int descent; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							int height; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							XFontSet set; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							XFontStruct *xfont; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} font; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} DC; /* draw context */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					typedef struct { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						unsigned long mod; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						KeySym keysym; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						void (*func)(const char *arg); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						const char *arg; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} Key; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					typedef struct { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						const char *symbol; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						void (*arrange)(void); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} Layout; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					/* local typedefs */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					typedef struct { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						const char *prop; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						const char *tags; | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -95,86 +61,6 @@ typedef struct { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						regex_t *tagregex; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} Regs; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					/* forward declarations */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void applyrules(Client *c); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void arrange(void); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void attach(Client *c); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void attachstack(Client *c); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void ban(Client *c); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void buttonpress(XEvent *e); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void checkotherwm(void); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void cleanup(void); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void compileregs(void); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void configure(Client *c); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void configurenotify(XEvent *e); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void configurerequest(XEvent *e); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void destroynotify(XEvent *e); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void detach(Client *c); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void detachstack(Client *c); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void drawbar(void); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void drawsquare(Bool filled, Bool empty, unsigned long col[ColLast]); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void drawtext(const char *text, unsigned long col[ColLast]); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void *emallocz(unsigned int size); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void enternotify(XEvent *e); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void eprint(const char *errstr, ...); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void expose(XEvent *e); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void floating(void); /* default floating layout */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void focus(Client *c); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void focusnext(const char *arg); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void focusprev(const char *arg); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					Client *getclient(Window w); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					unsigned long getcolor(const char *colstr); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					long getstate(Window w); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					Bool gettextprop(Window w, Atom atom, char *text, unsigned int size); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void grabbuttons(Client *c, Bool focused); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					unsigned int idxoftag(const char *tag); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void initfont(const char *fontstr); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					Bool isarrange(void (*func)()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					Bool isoccupied(unsigned int t); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					Bool isprotodel(Client *c); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					Bool isvisible(Client *c); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void keypress(XEvent *e); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void killclient(const char *arg); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void leavenotify(XEvent *e); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void manage(Window w, XWindowAttributes *wa); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void mappingnotify(XEvent *e); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void maprequest(XEvent *e); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void movemouse(Client *c); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					Client *nexttiled(Client *c); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void propertynotify(XEvent *e); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void quit(const char *arg); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void resize(Client *c, int x, int y, int w, int h, Bool sizehints); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void resizemouse(Client *c); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void restack(void); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void run(void); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void scan(void); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void setclientstate(Client *c, long state); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void setlayout(const char *arg); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void setmwfact(const char *arg); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void setup(void); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void spawn(const char *arg); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void tag(const char *arg); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					unsigned int textnw(const char *text, unsigned int len); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					unsigned int textw(const char *text); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void tile(void); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void togglebar(const char *arg); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void togglefloating(const char *arg); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void togglemax(const char *arg); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void toggletag(const char *arg); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void toggleview(const char *arg); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void unban(Client *c); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void unmanage(Client *c); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void unmapnotify(XEvent *e); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void updatebarpos(void); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void updatesizehints(Client *c); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void updatetitle(Client *c); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void view(const char *arg); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void viewprevtag(const char *arg);	/* views previous selected tags */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					int xerror(Display *dpy, XErrorEvent *ee); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					int xerrordummy(Display *dsply, XErrorEvent *ee); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					int xerrorstart(Display *dsply, XErrorEvent *ee); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void zoom(const char *arg); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					/* variables */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					char stext[256]; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					double mwfact; | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |