diff -r 08bc44d1f985 -r a8efbb301ef4 dwm.h --- a/dwm.h Tue Oct 16 19:07:51 2007 +0200 +++ b/dwm.h Wed Oct 17 11:19:14 2007 +0200 @@ -1,5 +1,4 @@ /* See LICENSE file for copyright and license details. */ -#include /* enums */ enum { BarTop, BarBot, BarOff }; /* bar position */ @@ -53,6 +52,17 @@ void (*arrange)(void); } Layout; +typedef struct { + const char *prop; + const char *tags; + Bool isfloating; +} Rule; + +typedef struct { + regex_t *propregex; + regex_t *tagregex; +} Regs; + /* functions */ void applyrules(Client *c); void arrange(void); @@ -132,3 +142,50 @@ int xerrordummy(Display *dsply, XErrorEvent *ee); int xerrorstart(Display *dsply, XErrorEvent *ee); void zoom(const char *arg); + +/* variables */ +char stext[256]; +double mwfact; +int screen, sx, sy, sw, sh, wax, way, waw, wah; +int (*xerrorxlib)(Display *, XErrorEvent *); +unsigned int bh, bpos; +unsigned int blw = 0; +unsigned int ltidx = 0; /* default */ +unsigned int nlayouts = 0; +unsigned int nrules = 0; +unsigned int numlockmask = 0; +void (*handler[LASTEvent]) (XEvent *) = { + [ButtonPress] = buttonpress, + [ConfigureRequest] = configurerequest, + [ConfigureNotify] = configurenotify, + [DestroyNotify] = destroynotify, + [EnterNotify] = enternotify, + [LeaveNotify] = leavenotify, + [Expose] = expose, + [KeyPress] = keypress, + [MappingNotify] = mappingnotify, + [MapRequest] = maprequest, + [PropertyNotify] = propertynotify, + [UnmapNotify] = unmapnotify +}; +Atom wmatom[WMLast], netatom[NetLast]; +Bool otherwm, readin; +Bool running = True; +Bool selscreen = True; +Client *clients = NULL; +Client *sel = NULL; +Client *stack = NULL; +Cursor cursor[CurLast]; +Display *dpy; +DC dc = {0}; +Window barwin, root; +Regs *regs = NULL; + +/* configuration, allows nested code to access above variables */ +#include "config.h" + +/* Statically define the number of tags. */ +unsigned int ntags = sizeof tags / sizeof tags[0]; +Bool seltags[sizeof tags / sizeof tags[0]] = {[0] = True}; +Bool prevtags[sizeof tags / sizeof tags[0]] = {[0] = True}; +