# HG changeset patch # User arg@10ksloc.org # Date 1154433553 -7200 # Node ID f328ce9c558cb3377b9e9cbf6e4cb2a8a7516f4d # Parent 774754477c356bbce626642c7d2edc4ca402bc68 centralized/externalized configuration to config.h diff -r 774754477c35 -r f328ce9c558c README --- a/README Tue Aug 01 12:41:38 2006 +0200 +++ b/README Tue Aug 01 13:59:13 2006 +0200 @@ -18,6 +18,11 @@ make clean install +If you want to use a customized config.h, you can use the following +command for installing dwm: + + make CONFIG=.h clean install + Running dwm ----------- @@ -47,5 +52,4 @@ Configuration ------------- -The configuration of dwm is done by customizing its source code -(grep for the CUSTOMIZE keyword). +The configuration of dwm is done by editing config.h. diff -r 774754477c35 -r f328ce9c558c config.arg.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/config.arg.h Tue Aug 01 13:59:13 2006 +0200 @@ -0,0 +1,76 @@ +/* + * (C)opyright MMVI Anselm R. Garbe + * See LICENSE file for license details. + */ + +#define FONT "-*-terminus-medium-*-*-*-13-*-*-*-*-*-iso10646-*" +#define BGCOLOR "#0a2c2d" +#define FGCOLOR "#ddeeee" +#define BORDERCOLOR "#176164" +#define MODKEY Mod1Mask +#define NUMLOCKMASK Mod2Mask +#define MASTERW 52 /* percent */ +#define WM_PROTOCOL_DELWIN 1 + +enum { Tfnord, Tdev, Tnet, Twork, Tmisc, TLast }; +#define TAGS \ +char *tags[TLast] = { \ + [Tfnord] = "fnord", \ + [Tdev] = "dev", \ + [Tnet] = "net", \ + [Twork] = "work", \ + [Tmisc] = "misc", \ +}; +#define DEFTAG Tdev + + +#define CMDS \ + const char *browse[] = { "firefox", NULL }; \ + const char *gimp[] = { "gimp", NULL }; \ + const char *term[] = { \ + "urxvt", "-tr", "+sb", "-bg", "black", "-fg", "white", "-cr", "white", \ + "-fn", "-*-terminus-medium-*-*-*-13-*-*-*-*-*-iso10646-*", NULL \ + }; \ + const char *xlock[] = { "xlock", NULL }; + +#define KEYS \ +static Key key[] = { \ + /* modifier key function arguments */ \ + { MODKEY, XK_0, view, { .i = Tfnord } }, \ + { MODKEY, XK_1, view, { .i = Tdev } }, \ + { MODKEY, XK_2, view, { .i = Tnet } }, \ + { MODKEY, XK_3, view, { .i = Twork } }, \ + { MODKEY, XK_4, view, { .i = Tmisc} }, \ + { MODKEY, XK_h, viewprev, { 0 } }, \ + { MODKEY, XK_j, focusnext, { 0 } }, \ + { MODKEY, XK_k, focusprev, { 0 } }, \ + { MODKEY, XK_l, viewnext, { 0 } }, \ + { MODKEY, XK_m, togglemax, { 0 } }, \ + { MODKEY, XK_space, togglemode, { 0 } }, \ + { MODKEY, XK_Return, zoom, { 0 } }, \ + { MODKEY|ControlMask, XK_0, appendtag, { .i = Tfnord } }, \ + { MODKEY|ControlMask, XK_1, appendtag, { .i = Tdev } }, \ + { MODKEY|ControlMask, XK_2, appendtag, { .i = Tnet } }, \ + { MODKEY|ControlMask, XK_3, appendtag, { .i = Twork } }, \ + { MODKEY|ControlMask, XK_4, appendtag, { .i = Tmisc } }, \ + { MODKEY|ShiftMask, XK_0, replacetag, { .i = Tfnord } }, \ + { MODKEY|ShiftMask, XK_1, replacetag, { .i = Tdev } }, \ + { MODKEY|ShiftMask, XK_2, replacetag, { .i = Tnet } }, \ + { MODKEY|ShiftMask, XK_3, replacetag, { .i = Twork } }, \ + { MODKEY|ShiftMask, XK_4, replacetag, { .i = Tmisc } }, \ + { MODKEY|ShiftMask, XK_c, killclient, { 0 } }, \ + { MODKEY|ShiftMask, XK_q, quit, { 0 } }, \ + { MODKEY|ShiftMask, XK_Return, spawn, { .argv = term } }, \ + { MODKEY|ShiftMask, XK_g, spawn, { .argv = gimp } }, \ + { MODKEY|ShiftMask, XK_l, spawn, { .argv = xlock } }, \ + { MODKEY|ShiftMask, XK_w, spawn, { .argv = browse } }, \ +}; + +#define RULES \ +static Rule rule[] = { \ + /* class:instance tags isfloat */ \ + { "Firefox.*", { [Tnet] = "net" }, False }, \ + { "Gimp.*", { 0 }, True}, \ +}; + +#define ARRANGE dotile diff -r 774754477c35 -r f328ce9c558c config.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/config.h Tue Aug 01 13:59:13 2006 +0200 @@ -0,0 +1,67 @@ +/* + * (C)opyright MMVI Anselm R. Garbe + * See LICENSE file for license details. + */ + +#define FONT "fixed" +#define BGCOLOR "#666699" +#define FGCOLOR "#eeeeee" +#define BORDERCOLOR "#9999CC" +#define MODKEY Mod1Mask +#define NUMLOCKMASK Mod2Mask +#define MASTERW 52 /* percent */ +#define WM_PROTOCOL_DELWIN 1 + +enum { Tfnord, Tdev, Tnet, Twork, Tmisc, TLast }; +#define TAGS \ +char *tags[TLast] = { \ + [Tfnord] = "fnord", \ + [Tdev] = "dev", \ + [Tnet] = "net", \ + [Twork] = "work", \ + [Tmisc] = "misc", \ +}; +#define DEFTAG Tdev + + +#define CMDS \ + const char *term[] = { "xterm", NULL }; + +#define KEYS \ +static Key key[] = { \ + /* modifier key function arguments */ \ + { MODKEY, XK_0, view, { .i = Tfnord } }, \ + { MODKEY, XK_1, view, { .i = Tdev } }, \ + { MODKEY, XK_2, view, { .i = Tnet } }, \ + { MODKEY, XK_3, view, { .i = Twork } }, \ + { MODKEY, XK_4, view, { .i = Tmisc} }, \ + { MODKEY, XK_h, viewprev, { 0 } }, \ + { MODKEY, XK_j, focusnext, { 0 } }, \ + { MODKEY, XK_k, focusprev, { 0 } }, \ + { MODKEY, XK_l, viewnext, { 0 } }, \ + { MODKEY, XK_m, togglemax, { 0 } }, \ + { MODKEY, XK_space, togglemode, { 0 } }, \ + { MODKEY, XK_Return, zoom, { 0 } }, \ + { MODKEY|ControlMask, XK_0, appendtag, { .i = Tfnord } }, \ + { MODKEY|ControlMask, XK_1, appendtag, { .i = Tdev } }, \ + { MODKEY|ControlMask, XK_2, appendtag, { .i = Tnet } }, \ + { MODKEY|ControlMask, XK_3, appendtag, { .i = Twork } }, \ + { MODKEY|ControlMask, XK_4, appendtag, { .i = Tmisc } }, \ + { MODKEY|ShiftMask, XK_0, replacetag, { .i = Tfnord } }, \ + { MODKEY|ShiftMask, XK_1, replacetag, { .i = Tdev } }, \ + { MODKEY|ShiftMask, XK_2, replacetag, { .i = Tnet } }, \ + { MODKEY|ShiftMask, XK_3, replacetag, { .i = Twork } }, \ + { MODKEY|ShiftMask, XK_4, replacetag, { .i = Tmisc } }, \ + { MODKEY|ShiftMask, XK_c, killclient, { 0 } }, \ + { MODKEY|ShiftMask, XK_q, quit, { 0 } }, \ + { MODKEY|ShiftMask, XK_Return, spawn, { .argv = term } }, \ +}; + +#define RULES \ +static Rule rule[] = { \ + /* class:instance tags isfloat */ \ + { "Firefox.*", { [Tnet] = "net" }, False }, \ + { "Gimp.*", { 0 }, True}, \ +}; + +#define ARRANGE dotile diff -r 774754477c35 -r f328ce9c558c config.mk --- a/config.mk Tue Aug 01 12:41:38 2006 +0200 +++ b/config.mk Tue Aug 01 13:59:13 2006 +0200 @@ -12,9 +12,9 @@ LIBS = -L/usr/lib -lc -L${X11LIB} -lX11 # flags -CFLAGS = -O3 ${INCS} -DVERSION=\"${VERSION}\" +CFLAGS = -O3 ${INCS} -DVERSION=\"${VERSION}\" -DCONFIG=\"${CONFIG}\" LDFLAGS = ${LIBS} -#CFLAGS = -g -Wall -O2 ${INCS} -DVERSION=\"${VERSION}\" +#CFLAGS = -g -Wall -O2 ${INCS} -DVERSION=\"${VERSION}\" -DCONFIG=\"${CONFIGH}\" #LDFLAGS = -g ${LIBS} # compiler @@ -22,3 +22,6 @@ # dwm version VERSION = 0.6 + +# default config.h +CONFIG = config.h diff -r 774754477c35 -r f328ce9c558c dwm.1 --- a/dwm.1 Tue Aug 01 12:41:38 2006 +0200 +++ b/dwm.1 Tue Aug 01 13:59:13 2006 +0200 @@ -98,7 +98,5 @@ while dragging .SH CUSTOMIZATION .B dwm -is customized through editing its source code. This keeps it fast, secure and -simple. The source code contains the -.I CUSTOMIZE -keyword to highlight relevant portions for customization. +is customized through editing config.h of the source code. This keeps it fast, +secure and simple. diff -r 774754477c35 -r f328ce9c558c dwm.h --- a/dwm.h Tue Aug 01 12:41:38 2006 +0200 +++ b/dwm.h Tue Aug 01 13:59:13 2006 +0200 @@ -4,26 +4,7 @@ */ #include - -/* CUSTOMIZE */ - -#define FONT "-*-terminus-medium-*-*-*-13-*-*-*-*-*-iso10646-*" -#define BGCOLOR "#0a2c2d" -#define FGCOLOR "#ddeeee" -#define BORDERCOLOR "#176164" -#define MODKEY Mod1Mask /* Mod4Mask */ -/* -#define BGCOLOR "#666699" -#define FGCOLOR "#eeeeee" -#define BORDERCOLOR "#9999CC" -*/ -#define MASTERW 52 /* percent */ -#define WM_PROTOCOL_DELWIN 1 - -/* tags */ -enum { Tfnord, Tdev, Tnet, Twork, Tmisc, TLast }; - -/* END CUSTOMIZE */ +#include CONFIG /* mask shorthands, used in event.c and client.c */ #define ButtonMask (ButtonPressMask | ButtonReleaseMask) diff -r 774754477c35 -r f328ce9c558c event.c --- a/event.c Tue Aug 01 12:41:38 2006 +0200 +++ b/event.c Tue Aug 01 13:59:13 2006 +0200 @@ -8,7 +8,7 @@ #include #include -/* CUSTOMIZE */ +/* static */ typedef struct { unsigned long mod; @@ -17,52 +17,10 @@ Arg arg; } Key; -const char *browse[] = { "firefox", NULL }; -const char *gimp[] = { "gimp", NULL }; -const char *term[] = { /*"xterm", NULL };*/ - "urxvt", "-tr", "+sb", "-bg", "black", "-fg", "white", "-cr", "white", - "-fn", "-*-terminus-medium-*-*-*-13-*-*-*-*-*-iso10646-*", NULL -}; -const char *xlock[] = { "xlock", NULL }; +CMDS +KEYS -static Key key[] = { - /* modifier key function arguments */ - { MODKEY, XK_0, view, { .i = Tfnord } }, - { MODKEY, XK_1, view, { .i = Tdev } }, - { MODKEY, XK_2, view, { .i = Tnet } }, - { MODKEY, XK_3, view, { .i = Twork } }, - { MODKEY, XK_4, view, { .i = Tmisc} }, - { MODKEY, XK_h, viewprev, { 0 } }, - { MODKEY, XK_j, focusnext, { 0 } }, - { MODKEY, XK_k, focusprev, { 0 } }, - { MODKEY, XK_l, viewnext, { 0 } }, - { MODKEY, XK_m, togglemax, { 0 } }, - { MODKEY, XK_space, togglemode, { 0 } }, - { MODKEY, XK_Return, zoom, { 0 } }, - { MODKEY|ControlMask, XK_0, appendtag, { .i = Tfnord } }, - { MODKEY|ControlMask, XK_1, appendtag, { .i = Tdev } }, - { MODKEY|ControlMask, XK_2, appendtag, { .i = Tnet } }, - { MODKEY|ControlMask, XK_3, appendtag, { .i = Twork } }, - { MODKEY|ControlMask, XK_4, appendtag, { .i = Tmisc } }, - { MODKEY|ShiftMask, XK_0, replacetag, { .i = Tfnord } }, - { MODKEY|ShiftMask, XK_1, replacetag, { .i = Tdev } }, - { MODKEY|ShiftMask, XK_2, replacetag, { .i = Tnet } }, - { MODKEY|ShiftMask, XK_3, replacetag, { .i = Twork } }, - { MODKEY|ShiftMask, XK_4, replacetag, { .i = Tmisc } }, - { MODKEY|ShiftMask, XK_c, killclient, { 0 } }, - { MODKEY|ShiftMask, XK_q, quit, { 0 } }, - { MODKEY|ShiftMask, XK_Return, spawn, { .argv = term } }, - { MODKEY|ShiftMask, XK_g, spawn, { .argv = gimp } }, - { MODKEY|ShiftMask, XK_l, spawn, { .argv = xlock } }, - { MODKEY|ShiftMask, XK_w, spawn, { .argv = browse } }, -}; - -#define NumLockMask Mod2Mask -unsigned int valid_mask = 255 & ~( NumLockMask | LockMask); - -/* END CUSTOMIZE */ - -/* static */ +static unsigned int valid_mask = 255 & ~(NUMLOCKMASK | LockMask); static void movemouse(Client *c) @@ -381,19 +339,13 @@ for(i = 0; i < len; i++) { code = XKeysymToKeycode(dpy, key[i].keysym); XUngrabKey(dpy, code, key[i].mod, root); - if (NumLockMask) - { - XUngrabKey(dpy, code, key[i].mod | NumLockMask, root); - XUngrabKey(dpy, code, key[i].mod | NumLockMask | LockMask, root); - } + XUngrabKey(dpy, code, key[i].mod | NUMLOCKMASK, root); + XUngrabKey(dpy, code, key[i].mod | NUMLOCKMASK | LockMask, root); XGrabKey(dpy, code, key[i].mod, root, True, GrabModeAsync, GrabModeAsync); - if (NumLockMask) - { - XGrabKey(dpy, code, key[i].mod | NumLockMask, root, True, - GrabModeAsync, GrabModeAsync); - XGrabKey(dpy, code, key[i].mod | NumLockMask | LockMask, root, True, - GrabModeAsync, GrabModeAsync); - } + XGrabKey(dpy, code, key[i].mod | NUMLOCKMASK, root, True, + GrabModeAsync, GrabModeAsync); + XGrabKey(dpy, code, key[i].mod | NUMLOCKMASK | LockMask, root, True, + GrabModeAsync, GrabModeAsync); } } diff -r 774754477c35 -r f328ce9c558c main.c --- a/main.c Tue Aug 01 12:41:38 2006 +0200 +++ b/main.c Tue Aug 01 13:59:13 2006 +0200 @@ -85,9 +85,7 @@ /* extern */ char stext[1024]; -/* CUSTOMIZE */ -int tsel = Tdev; /* default tag */ -/* END CUSTOMIZE */ +int tsel = DEFTAG; int screen, sx, sy, sw, sh, bx, by, bw, bh, mw; Atom wmatom[WMLast], netatom[NetLast]; Bool running = True; diff -r 774754477c35 -r f328ce9c558c tag.c --- a/tag.c Tue Aug 01 12:41:38 2006 +0200 +++ b/tag.c Tue Aug 01 13:59:13 2006 +0200 @@ -18,24 +18,10 @@ Bool isfloat; } Rule; -/* CUSTOMIZE */ -static Rule rule[] = { - /* class:instance tags isfloat */ - { "Firefox.*", { [Tnet] = "net" }, False }, - { "Gimp.*", { 0 }, True}, -}; +TAGS +RULES -char *tags[TLast] = { - [Tfnord] = "fnord", - [Tdev] = "dev", - [Tnet] = "net", - [Twork] = "work", - [Tmisc] = "misc", -}; - -void (*arrange)(Arg *) = dotile; - -/* END CUSTOMIZE */ +void (*arrange)(Arg *) = ARRANGE; /* extern */