removed dwm.h, just include C-files in config.h if you extend dwm, that's simplier and most flexible than all other possibilities
parent
8dc03d6e6b
commit
cd7ebaad25
3 changed files with 190 additions and 194 deletions
@ -1,190 +0,0 @@ |
||||
/* See LICENSE file for copyright and license details. */ |
||||
|
||||
/* 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 Client Client; |
||||
struct Client { |
||||
char name[256]; |
||||
int x, y, w, h; |
||||
int rx, ry, rw, rh; /* revert geometry */ |
||||
int basew, baseh, incw, inch, maxw, maxh, minw, minh; |
||||
int minax, maxax, minay, maxay; |
||||
long flags; |
||||
unsigned int border, oldborder; |
||||
Bool isbanned, isfixed, ismax, isfloating, wasfloating; |
||||
Bool *tags; |
||||
Client *next; |
||||
Client *prev; |
||||
Client *snext; |
||||
Window win; |
||||
}; |
||||
|
||||
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; |
||||
|
||||
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); |
||||
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; |
||||
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}; |
Loading…
Reference in new issue