centralized/externalized configuration to config.h
This commit is contained in:
		
							
								
								
									
										8
									
								
								README
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								README
									
									
									
									
									
								
							@@ -18,6 +18,11 @@ necessary as root):
 | 
			
		||||
 | 
			
		||||
    make clean install
 | 
			
		||||
 | 
			
		||||
If you want to use a customized config.h, you can use the following
 | 
			
		||||
command for installing dwm:
 | 
			
		||||
 | 
			
		||||
    make CONFIG=<your-config>.h clean install
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Running dwm
 | 
			
		||||
-----------
 | 
			
		||||
@@ -47,5 +52,4 @@ like this in your .xinitrc:
 | 
			
		||||
 | 
			
		||||
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.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										76
									
								
								config.arg.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										76
									
								
								config.arg.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,76 @@
 | 
			
		||||
/*
 | 
			
		||||
 * (C)opyright MMVI Anselm R. Garbe <garbeam at gmail dot com>
 | 
			
		||||
 * 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
 | 
			
		||||
							
								
								
									
										67
									
								
								config.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								config.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,67 @@
 | 
			
		||||
/*
 | 
			
		||||
 * (C)opyright MMVI Anselm R. Garbe <garbeam at gmail dot com>
 | 
			
		||||
 * 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
 | 
			
		||||
@@ -12,9 +12,9 @@ INCS = -I/usr/lib -I${X11INC}
 | 
			
		||||
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 @@ CC = cc
 | 
			
		||||
 | 
			
		||||
# dwm version
 | 
			
		||||
VERSION = 0.6
 | 
			
		||||
 | 
			
		||||
# default config.h
 | 
			
		||||
CONFIG = config.h
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										6
									
								
								dwm.1
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								dwm.1
									
									
									
									
									
								
							@@ -98,7 +98,5 @@ Resizes current
 | 
			
		||||
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.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										21
									
								
								dwm.h
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								dwm.h
									
									
									
									
									
								
							@@ -4,26 +4,7 @@
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include <X11/Xlib.h>
 | 
			
		||||
 | 
			
		||||
/* 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)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										64
									
								
								event.c
									
									
									
									
									
								
							
							
						
						
									
										64
									
								
								event.c
									
									
									
									
									
								
							@@ -8,7 +8,7 @@
 | 
			
		||||
#include <X11/keysym.h>
 | 
			
		||||
#include <X11/Xatom.h>
 | 
			
		||||
 | 
			
		||||
/* CUSTOMIZE */
 | 
			
		||||
/* static */
 | 
			
		||||
 | 
			
		||||
typedef struct {
 | 
			
		||||
	unsigned long mod;
 | 
			
		||||
@@ -17,52 +17,10 @@ typedef struct {
 | 
			
		||||
	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 @@ grabkeys()
 | 
			
		||||
	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,
 | 
			
		||||
		XGrabKey(dpy, code, key[i].mod | NUMLOCKMASK, root, True,
 | 
			
		||||
				GrabModeAsync, GrabModeAsync);
 | 
			
		||||
			XGrabKey(dpy, code, key[i].mod | NumLockMask | LockMask, root, True,
 | 
			
		||||
		XGrabKey(dpy, code, key[i].mod | NUMLOCKMASK | LockMask, root, True,
 | 
			
		||||
				GrabModeAsync, GrabModeAsync);
 | 
			
		||||
	}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								main.c
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								main.c
									
									
									
									
									
								
							@@ -85,9 +85,7 @@ xerrorstart(Display *dsply, XErrorEvent *ee)
 | 
			
		||||
/* 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;
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										20
									
								
								tag.c
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								tag.c
									
									
									
									
									
								
							@@ -18,24 +18,10 @@ typedef struct {
 | 
			
		||||
	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 */
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user