aewl
changeset 146:f328ce9c558c
centralized/externalized configuration to config.h
author | arg@10ksloc.org |
---|---|
date | Tue, 01 Aug 2006 13:59:13 +0200 |
parents | 774754477c35 |
children | a94577c9de73 |
files | README config.arg.h config.h config.mk dwm.1 dwm.h event.c main.c tag.c |
diffstat | 9 files changed, 171 insertions(+), 106 deletions(-) [+] |
line diff
1.1 --- a/README Tue Aug 01 12:41:38 2006 +0200 1.2 +++ b/README Tue Aug 01 13:59:13 2006 +0200 1.3 @@ -18,6 +18,11 @@ 1.4 1.5 make clean install 1.6 1.7 +If you want to use a customized config.h, you can use the following 1.8 +command for installing dwm: 1.9 + 1.10 + make CONFIG=<your-config>.h clean install 1.11 + 1.12 1.13 Running dwm 1.14 ----------- 1.15 @@ -47,5 +52,4 @@ 1.16 1.17 Configuration 1.18 ------------- 1.19 -The configuration of dwm is done by customizing its source code 1.20 -(grep for the CUSTOMIZE keyword). 1.21 +The configuration of dwm is done by editing config.h.
2.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 2.2 +++ b/config.arg.h Tue Aug 01 13:59:13 2006 +0200 2.3 @@ -0,0 +1,76 @@ 2.4 +/* 2.5 + * (C)opyright MMVI Anselm R. Garbe <garbeam at gmail dot com> 2.6 + * See LICENSE file for license details. 2.7 + */ 2.8 + 2.9 +#define FONT "-*-terminus-medium-*-*-*-13-*-*-*-*-*-iso10646-*" 2.10 +#define BGCOLOR "#0a2c2d" 2.11 +#define FGCOLOR "#ddeeee" 2.12 +#define BORDERCOLOR "#176164" 2.13 +#define MODKEY Mod1Mask 2.14 +#define NUMLOCKMASK Mod2Mask 2.15 +#define MASTERW 52 /* percent */ 2.16 +#define WM_PROTOCOL_DELWIN 1 2.17 + 2.18 +enum { Tfnord, Tdev, Tnet, Twork, Tmisc, TLast }; 2.19 +#define TAGS \ 2.20 +char *tags[TLast] = { \ 2.21 + [Tfnord] = "fnord", \ 2.22 + [Tdev] = "dev", \ 2.23 + [Tnet] = "net", \ 2.24 + [Twork] = "work", \ 2.25 + [Tmisc] = "misc", \ 2.26 +}; 2.27 +#define DEFTAG Tdev 2.28 + 2.29 + 2.30 +#define CMDS \ 2.31 + const char *browse[] = { "firefox", NULL }; \ 2.32 + const char *gimp[] = { "gimp", NULL }; \ 2.33 + const char *term[] = { \ 2.34 + "urxvt", "-tr", "+sb", "-bg", "black", "-fg", "white", "-cr", "white", \ 2.35 + "-fn", "-*-terminus-medium-*-*-*-13-*-*-*-*-*-iso10646-*", NULL \ 2.36 + }; \ 2.37 + const char *xlock[] = { "xlock", NULL }; 2.38 + 2.39 +#define KEYS \ 2.40 +static Key key[] = { \ 2.41 + /* modifier key function arguments */ \ 2.42 + { MODKEY, XK_0, view, { .i = Tfnord } }, \ 2.43 + { MODKEY, XK_1, view, { .i = Tdev } }, \ 2.44 + { MODKEY, XK_2, view, { .i = Tnet } }, \ 2.45 + { MODKEY, XK_3, view, { .i = Twork } }, \ 2.46 + { MODKEY, XK_4, view, { .i = Tmisc} }, \ 2.47 + { MODKEY, XK_h, viewprev, { 0 } }, \ 2.48 + { MODKEY, XK_j, focusnext, { 0 } }, \ 2.49 + { MODKEY, XK_k, focusprev, { 0 } }, \ 2.50 + { MODKEY, XK_l, viewnext, { 0 } }, \ 2.51 + { MODKEY, XK_m, togglemax, { 0 } }, \ 2.52 + { MODKEY, XK_space, togglemode, { 0 } }, \ 2.53 + { MODKEY, XK_Return, zoom, { 0 } }, \ 2.54 + { MODKEY|ControlMask, XK_0, appendtag, { .i = Tfnord } }, \ 2.55 + { MODKEY|ControlMask, XK_1, appendtag, { .i = Tdev } }, \ 2.56 + { MODKEY|ControlMask, XK_2, appendtag, { .i = Tnet } }, \ 2.57 + { MODKEY|ControlMask, XK_3, appendtag, { .i = Twork } }, \ 2.58 + { MODKEY|ControlMask, XK_4, appendtag, { .i = Tmisc } }, \ 2.59 + { MODKEY|ShiftMask, XK_0, replacetag, { .i = Tfnord } }, \ 2.60 + { MODKEY|ShiftMask, XK_1, replacetag, { .i = Tdev } }, \ 2.61 + { MODKEY|ShiftMask, XK_2, replacetag, { .i = Tnet } }, \ 2.62 + { MODKEY|ShiftMask, XK_3, replacetag, { .i = Twork } }, \ 2.63 + { MODKEY|ShiftMask, XK_4, replacetag, { .i = Tmisc } }, \ 2.64 + { MODKEY|ShiftMask, XK_c, killclient, { 0 } }, \ 2.65 + { MODKEY|ShiftMask, XK_q, quit, { 0 } }, \ 2.66 + { MODKEY|ShiftMask, XK_Return, spawn, { .argv = term } }, \ 2.67 + { MODKEY|ShiftMask, XK_g, spawn, { .argv = gimp } }, \ 2.68 + { MODKEY|ShiftMask, XK_l, spawn, { .argv = xlock } }, \ 2.69 + { MODKEY|ShiftMask, XK_w, spawn, { .argv = browse } }, \ 2.70 +}; 2.71 + 2.72 +#define RULES \ 2.73 +static Rule rule[] = { \ 2.74 + /* class:instance tags isfloat */ \ 2.75 + { "Firefox.*", { [Tnet] = "net" }, False }, \ 2.76 + { "Gimp.*", { 0 }, True}, \ 2.77 +}; 2.78 + 2.79 +#define ARRANGE dotile
3.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 3.2 +++ b/config.h Tue Aug 01 13:59:13 2006 +0200 3.3 @@ -0,0 +1,67 @@ 3.4 +/* 3.5 + * (C)opyright MMVI Anselm R. Garbe <garbeam at gmail dot com> 3.6 + * See LICENSE file for license details. 3.7 + */ 3.8 + 3.9 +#define FONT "fixed" 3.10 +#define BGCOLOR "#666699" 3.11 +#define FGCOLOR "#eeeeee" 3.12 +#define BORDERCOLOR "#9999CC" 3.13 +#define MODKEY Mod1Mask 3.14 +#define NUMLOCKMASK Mod2Mask 3.15 +#define MASTERW 52 /* percent */ 3.16 +#define WM_PROTOCOL_DELWIN 1 3.17 + 3.18 +enum { Tfnord, Tdev, Tnet, Twork, Tmisc, TLast }; 3.19 +#define TAGS \ 3.20 +char *tags[TLast] = { \ 3.21 + [Tfnord] = "fnord", \ 3.22 + [Tdev] = "dev", \ 3.23 + [Tnet] = "net", \ 3.24 + [Twork] = "work", \ 3.25 + [Tmisc] = "misc", \ 3.26 +}; 3.27 +#define DEFTAG Tdev 3.28 + 3.29 + 3.30 +#define CMDS \ 3.31 + const char *term[] = { "xterm", NULL }; 3.32 + 3.33 +#define KEYS \ 3.34 +static Key key[] = { \ 3.35 + /* modifier key function arguments */ \ 3.36 + { MODKEY, XK_0, view, { .i = Tfnord } }, \ 3.37 + { MODKEY, XK_1, view, { .i = Tdev } }, \ 3.38 + { MODKEY, XK_2, view, { .i = Tnet } }, \ 3.39 + { MODKEY, XK_3, view, { .i = Twork } }, \ 3.40 + { MODKEY, XK_4, view, { .i = Tmisc} }, \ 3.41 + { MODKEY, XK_h, viewprev, { 0 } }, \ 3.42 + { MODKEY, XK_j, focusnext, { 0 } }, \ 3.43 + { MODKEY, XK_k, focusprev, { 0 } }, \ 3.44 + { MODKEY, XK_l, viewnext, { 0 } }, \ 3.45 + { MODKEY, XK_m, togglemax, { 0 } }, \ 3.46 + { MODKEY, XK_space, togglemode, { 0 } }, \ 3.47 + { MODKEY, XK_Return, zoom, { 0 } }, \ 3.48 + { MODKEY|ControlMask, XK_0, appendtag, { .i = Tfnord } }, \ 3.49 + { MODKEY|ControlMask, XK_1, appendtag, { .i = Tdev } }, \ 3.50 + { MODKEY|ControlMask, XK_2, appendtag, { .i = Tnet } }, \ 3.51 + { MODKEY|ControlMask, XK_3, appendtag, { .i = Twork } }, \ 3.52 + { MODKEY|ControlMask, XK_4, appendtag, { .i = Tmisc } }, \ 3.53 + { MODKEY|ShiftMask, XK_0, replacetag, { .i = Tfnord } }, \ 3.54 + { MODKEY|ShiftMask, XK_1, replacetag, { .i = Tdev } }, \ 3.55 + { MODKEY|ShiftMask, XK_2, replacetag, { .i = Tnet } }, \ 3.56 + { MODKEY|ShiftMask, XK_3, replacetag, { .i = Twork } }, \ 3.57 + { MODKEY|ShiftMask, XK_4, replacetag, { .i = Tmisc } }, \ 3.58 + { MODKEY|ShiftMask, XK_c, killclient, { 0 } }, \ 3.59 + { MODKEY|ShiftMask, XK_q, quit, { 0 } }, \ 3.60 + { MODKEY|ShiftMask, XK_Return, spawn, { .argv = term } }, \ 3.61 +}; 3.62 + 3.63 +#define RULES \ 3.64 +static Rule rule[] = { \ 3.65 + /* class:instance tags isfloat */ \ 3.66 + { "Firefox.*", { [Tnet] = "net" }, False }, \ 3.67 + { "Gimp.*", { 0 }, True}, \ 3.68 +}; 3.69 + 3.70 +#define ARRANGE dotile
4.1 --- a/config.mk Tue Aug 01 12:41:38 2006 +0200 4.2 +++ b/config.mk Tue Aug 01 13:59:13 2006 +0200 4.3 @@ -12,9 +12,9 @@ 4.4 LIBS = -L/usr/lib -lc -L${X11LIB} -lX11 4.5 4.6 # flags 4.7 -CFLAGS = -O3 ${INCS} -DVERSION=\"${VERSION}\" 4.8 +CFLAGS = -O3 ${INCS} -DVERSION=\"${VERSION}\" -DCONFIG=\"${CONFIG}\" 4.9 LDFLAGS = ${LIBS} 4.10 -#CFLAGS = -g -Wall -O2 ${INCS} -DVERSION=\"${VERSION}\" 4.11 +#CFLAGS = -g -Wall -O2 ${INCS} -DVERSION=\"${VERSION}\" -DCONFIG=\"${CONFIGH}\" 4.12 #LDFLAGS = -g ${LIBS} 4.13 4.14 # compiler 4.15 @@ -22,3 +22,6 @@ 4.16 4.17 # dwm version 4.18 VERSION = 0.6 4.19 + 4.20 +# default config.h 4.21 +CONFIG = config.h
5.1 --- a/dwm.1 Tue Aug 01 12:41:38 2006 +0200 5.2 +++ b/dwm.1 Tue Aug 01 13:59:13 2006 +0200 5.3 @@ -98,7 +98,5 @@ 5.4 while dragging 5.5 .SH CUSTOMIZATION 5.6 .B dwm 5.7 -is customized through editing its source code. This keeps it fast, secure and 5.8 -simple. The source code contains the 5.9 -.I CUSTOMIZE 5.10 -keyword to highlight relevant portions for customization. 5.11 +is customized through editing config.h of the source code. This keeps it fast, 5.12 +secure and simple.
6.1 --- a/dwm.h Tue Aug 01 12:41:38 2006 +0200 6.2 +++ b/dwm.h Tue Aug 01 13:59:13 2006 +0200 6.3 @@ -4,26 +4,7 @@ 6.4 */ 6.5 6.6 #include <X11/Xlib.h> 6.7 - 6.8 -/* CUSTOMIZE */ 6.9 - 6.10 -#define FONT "-*-terminus-medium-*-*-*-13-*-*-*-*-*-iso10646-*" 6.11 -#define BGCOLOR "#0a2c2d" 6.12 -#define FGCOLOR "#ddeeee" 6.13 -#define BORDERCOLOR "#176164" 6.14 -#define MODKEY Mod1Mask /* Mod4Mask */ 6.15 -/* 6.16 -#define BGCOLOR "#666699" 6.17 -#define FGCOLOR "#eeeeee" 6.18 -#define BORDERCOLOR "#9999CC" 6.19 -*/ 6.20 -#define MASTERW 52 /* percent */ 6.21 -#define WM_PROTOCOL_DELWIN 1 6.22 - 6.23 -/* tags */ 6.24 -enum { Tfnord, Tdev, Tnet, Twork, Tmisc, TLast }; 6.25 - 6.26 -/* END CUSTOMIZE */ 6.27 +#include CONFIG 6.28 6.29 /* mask shorthands, used in event.c and client.c */ 6.30 #define ButtonMask (ButtonPressMask | ButtonReleaseMask)
7.1 --- a/event.c Tue Aug 01 12:41:38 2006 +0200 7.2 +++ b/event.c Tue Aug 01 13:59:13 2006 +0200 7.3 @@ -8,7 +8,7 @@ 7.4 #include <X11/keysym.h> 7.5 #include <X11/Xatom.h> 7.6 7.7 -/* CUSTOMIZE */ 7.8 +/* static */ 7.9 7.10 typedef struct { 7.11 unsigned long mod; 7.12 @@ -17,52 +17,10 @@ 7.13 Arg arg; 7.14 } Key; 7.15 7.16 -const char *browse[] = { "firefox", NULL }; 7.17 -const char *gimp[] = { "gimp", NULL }; 7.18 -const char *term[] = { /*"xterm", NULL };*/ 7.19 - "urxvt", "-tr", "+sb", "-bg", "black", "-fg", "white", "-cr", "white", 7.20 - "-fn", "-*-terminus-medium-*-*-*-13-*-*-*-*-*-iso10646-*", NULL 7.21 -}; 7.22 -const char *xlock[] = { "xlock", NULL }; 7.23 +CMDS 7.24 +KEYS 7.25 7.26 -static Key key[] = { 7.27 - /* modifier key function arguments */ 7.28 - { MODKEY, XK_0, view, { .i = Tfnord } }, 7.29 - { MODKEY, XK_1, view, { .i = Tdev } }, 7.30 - { MODKEY, XK_2, view, { .i = Tnet } }, 7.31 - { MODKEY, XK_3, view, { .i = Twork } }, 7.32 - { MODKEY, XK_4, view, { .i = Tmisc} }, 7.33 - { MODKEY, XK_h, viewprev, { 0 } }, 7.34 - { MODKEY, XK_j, focusnext, { 0 } }, 7.35 - { MODKEY, XK_k, focusprev, { 0 } }, 7.36 - { MODKEY, XK_l, viewnext, { 0 } }, 7.37 - { MODKEY, XK_m, togglemax, { 0 } }, 7.38 - { MODKEY, XK_space, togglemode, { 0 } }, 7.39 - { MODKEY, XK_Return, zoom, { 0 } }, 7.40 - { MODKEY|ControlMask, XK_0, appendtag, { .i = Tfnord } }, 7.41 - { MODKEY|ControlMask, XK_1, appendtag, { .i = Tdev } }, 7.42 - { MODKEY|ControlMask, XK_2, appendtag, { .i = Tnet } }, 7.43 - { MODKEY|ControlMask, XK_3, appendtag, { .i = Twork } }, 7.44 - { MODKEY|ControlMask, XK_4, appendtag, { .i = Tmisc } }, 7.45 - { MODKEY|ShiftMask, XK_0, replacetag, { .i = Tfnord } }, 7.46 - { MODKEY|ShiftMask, XK_1, replacetag, { .i = Tdev } }, 7.47 - { MODKEY|ShiftMask, XK_2, replacetag, { .i = Tnet } }, 7.48 - { MODKEY|ShiftMask, XK_3, replacetag, { .i = Twork } }, 7.49 - { MODKEY|ShiftMask, XK_4, replacetag, { .i = Tmisc } }, 7.50 - { MODKEY|ShiftMask, XK_c, killclient, { 0 } }, 7.51 - { MODKEY|ShiftMask, XK_q, quit, { 0 } }, 7.52 - { MODKEY|ShiftMask, XK_Return, spawn, { .argv = term } }, 7.53 - { MODKEY|ShiftMask, XK_g, spawn, { .argv = gimp } }, 7.54 - { MODKEY|ShiftMask, XK_l, spawn, { .argv = xlock } }, 7.55 - { MODKEY|ShiftMask, XK_w, spawn, { .argv = browse } }, 7.56 -}; 7.57 - 7.58 -#define NumLockMask Mod2Mask 7.59 -unsigned int valid_mask = 255 & ~( NumLockMask | LockMask); 7.60 - 7.61 -/* END CUSTOMIZE */ 7.62 - 7.63 -/* static */ 7.64 +static unsigned int valid_mask = 255 & ~(NUMLOCKMASK | LockMask); 7.65 7.66 static void 7.67 movemouse(Client *c) 7.68 @@ -381,19 +339,13 @@ 7.69 for(i = 0; i < len; i++) { 7.70 code = XKeysymToKeycode(dpy, key[i].keysym); 7.71 XUngrabKey(dpy, code, key[i].mod, root); 7.72 - if (NumLockMask) 7.73 - { 7.74 - XUngrabKey(dpy, code, key[i].mod | NumLockMask, root); 7.75 - XUngrabKey(dpy, code, key[i].mod | NumLockMask | LockMask, root); 7.76 - } 7.77 + XUngrabKey(dpy, code, key[i].mod | NUMLOCKMASK, root); 7.78 + XUngrabKey(dpy, code, key[i].mod | NUMLOCKMASK | LockMask, root); 7.79 XGrabKey(dpy, code, key[i].mod, root, True, 7.80 GrabModeAsync, GrabModeAsync); 7.81 - if (NumLockMask) 7.82 - { 7.83 - XGrabKey(dpy, code, key[i].mod | NumLockMask, root, True, 7.84 - GrabModeAsync, GrabModeAsync); 7.85 - XGrabKey(dpy, code, key[i].mod | NumLockMask | LockMask, root, True, 7.86 - GrabModeAsync, GrabModeAsync); 7.87 - } 7.88 + XGrabKey(dpy, code, key[i].mod | NUMLOCKMASK, root, True, 7.89 + GrabModeAsync, GrabModeAsync); 7.90 + XGrabKey(dpy, code, key[i].mod | NUMLOCKMASK | LockMask, root, True, 7.91 + GrabModeAsync, GrabModeAsync); 7.92 } 7.93 }
8.1 --- a/main.c Tue Aug 01 12:41:38 2006 +0200 8.2 +++ b/main.c Tue Aug 01 13:59:13 2006 +0200 8.3 @@ -85,9 +85,7 @@ 8.4 /* extern */ 8.5 8.6 char stext[1024]; 8.7 -/* CUSTOMIZE */ 8.8 -int tsel = Tdev; /* default tag */ 8.9 -/* END CUSTOMIZE */ 8.10 +int tsel = DEFTAG; 8.11 int screen, sx, sy, sw, sh, bx, by, bw, bh, mw; 8.12 Atom wmatom[WMLast], netatom[NetLast]; 8.13 Bool running = True;
9.1 --- a/tag.c Tue Aug 01 12:41:38 2006 +0200 9.2 +++ b/tag.c Tue Aug 01 13:59:13 2006 +0200 9.3 @@ -18,24 +18,10 @@ 9.4 Bool isfloat; 9.5 } Rule; 9.6 9.7 -/* CUSTOMIZE */ 9.8 -static Rule rule[] = { 9.9 - /* class:instance tags isfloat */ 9.10 - { "Firefox.*", { [Tnet] = "net" }, False }, 9.11 - { "Gimp.*", { 0 }, True}, 9.12 -}; 9.13 +TAGS 9.14 +RULES 9.15 9.16 -char *tags[TLast] = { 9.17 - [Tfnord] = "fnord", 9.18 - [Tdev] = "dev", 9.19 - [Tnet] = "net", 9.20 - [Twork] = "work", 9.21 - [Tmisc] = "misc", 9.22 -}; 9.23 - 9.24 -void (*arrange)(Arg *) = dotile; 9.25 - 9.26 -/* END CUSTOMIZE */ 9.27 +void (*arrange)(Arg *) = ARRANGE; 9.28 9.29 /* extern */ 9.30