sanitization of several clunky stuff, removed heretag (rarely of use), simplified pop(), changed shortcuts to always contain MODKEY cd8d8e12
arg@10ksloc.org · 2006-07-21 07:37 4 file(s) · +40 −48
client.c +15 −2
476 476
void
477 477
zoom(Arg *arg)
478 478
{
479 -
	Client *c;
479 +
	Client *c, **l;
480 480
481 481
	if(!sel)
482 482
		return;
486 486
			sel = c;
487 487
	}
488 488
489 -
	pop(sel);
489 +
	/* pop */
490 +
	for(l = &clients; *l && *l != sel; l = &(*l)->next);
491 +
	if(sel->prev)
492 +
		sel->prev->next = sel->next;
493 +
	if(sel->next)
494 +
		sel->next->prev = sel->prev;
495 +
	*l = sel->next;
496 +
497 +
	sel->prev = NULL;
498 +
	if(clients)
499 +
		clients->prev = sel;
500 +
	sel->next = clients;
501 +
	clients = sel;
502 +
	arrange(NULL);
490 503
	focus(sel);
491 504
}
dwm.h +10 −12
7 7
8 8
/* CUSTOMIZE */
9 9
10 -
#define FONT				"-*-terminus-medium-*-*-*-13-*-*-*-*-*-iso10646-*"
11 -
#define BGCOLOR				"#0a2c2d"
12 -
#define FGCOLOR				"#ddeeee"
13 -
#define BORDERCOLOR			"#176164"
14 -
#define MODKEY				 Mod1Mask /* Mod4Mask */
10 +
#define FONT			"-*-terminus-medium-*-*-*-13-*-*-*-*-*-iso10646-*"
11 +
#define BGCOLOR			"#0a2c2d"
12 +
#define FGCOLOR			"#ddeeee"
13 +
#define BORDERCOLOR		"#176164"
14 +
#define MODKEY			Mod1Mask /* Mod4Mask */
15 15
/*
16 -
#define BGCOLOR				"#666699"
17 -
#define FGCOLOR				"#eeeeee"
18 -
#define BORDERCOLOR			"#9999CC"
16 +
#define BGCOLOR			"#666699"
17 +
#define FGCOLOR			"#eeeeee"
18 +
#define BORDERCOLOR		"#9999CC"
19 19
*/
20 -
#define MASTERW				52 /* percent */
20 +
#define MASTERW			52 /* percent */
21 21
#define WM_PROTOCOL_DELWIN	1
22 22
23 23
/* tags */
24 -
enum { Tscratch, Tdev, Twww, Twork, TLast };
24 +
enum { Tfnord, Tdev, Tnet, Twork, Tmisc, TLast };
25 25
26 26
/* END CUSTOMIZE */
27 27
105 105
extern void killclient(Arg *arg);
106 106
extern void lower(Client *c);
107 107
extern void manage(Window w, XWindowAttributes *wa);
108 -
extern void pop(Client *c);
109 108
extern void resize(Client *c, Bool sizehints, Corner sticky);
110 109
extern void setsize(Client *c);
111 110
extern void settitle(Client *c);
136 135
extern void dotile(Arg *arg);
137 136
extern Client *getnext(Client *c, unsigned int t);
138 137
extern Client *getprev(Client *c);
139 -
extern void heretag(Arg *arg);
140 138
extern void replacetag(Arg *arg);
141 139
extern void settags(Client *c);
142 140
extern void togglemode(Arg *arg);
event.c +11 −12
30 30
31 31
static Key key[] = {
32 32
	/* modifier		key		function	arguments */
33 -
	{ ControlMask,		XK_0,		appendtag,	{ .i = Tscratch } }, 
34 -
	{ ControlMask,		XK_1,		appendtag,	{ .i = Tdev } }, 
35 -
	{ ControlMask,		XK_2,		appendtag,	{ .i = Twww } }, 
36 -
	{ ControlMask,		XK_3,		appendtag,	{ .i = Twork } }, 
37 -
	{ MODKEY,		XK_0,		view,		{ .i = Tscratch } }, 
33 +
	{ MODKEY,		XK_0,		view,		{ .i = Tfnord } }, 
38 34
	{ MODKEY,		XK_1,		view,		{ .i = Tdev } }, 
39 -
	{ MODKEY,		XK_2,		view,		{ .i = Twww } }, 
35 +
	{ MODKEY,		XK_2,		view,		{ .i = Tnet } }, 
40 36
	{ MODKEY,		XK_3,		view,		{ .i = Twork } }, 
37 +
	{ MODKEY,		XK_4,		view,		{ .i = Tmisc} }, 
41 38
	{ MODKEY,		XK_j,		focusnext,	{ 0 } }, 
42 39
	{ MODKEY,		XK_k,		focusprev,	{ 0 } },
43 40
	{ MODKEY,		XK_m,		togglemax,	{ 0 } }, 
44 41
	{ MODKEY,		XK_space,	togglemode,	{ 0 } }, 
45 42
	{ MODKEY,		XK_Return,	zoom,		{ 0 } },
46 -
	{ ControlMask|ShiftMask,XK_0,		heretag,	{ .i = Tscratch } }, 
47 -
	{ ControlMask|ShiftMask,XK_1,		heretag,	{ .i = Tdev } }, 
48 -
	{ ControlMask|ShiftMask,XK_2,		heretag,	{ .i = Twww } }, 
49 -
	{ ControlMask|ShiftMask,XK_3,		heretag,	{ .i = Twork } }, 
50 -
	{ MODKEY|ShiftMask,	XK_0,		replacetag,	{ .i = Tscratch } }, 
43 +
	{ MODKEY|ControlMask,	XK_0,		appendtag,	{ .i = Tfnord } }, 
44 +
	{ MODKEY|ControlMask,	XK_1,		appendtag,	{ .i = Tdev } }, 
45 +
	{ MODKEY|ControlMask,	XK_2,		appendtag,	{ .i = Tnet } }, 
46 +
	{ MODKEY|ControlMask,	XK_3,		appendtag,	{ .i = Twork } }, 
47 +
	{ MODKEY|ControlMask,	XK_4,		appendtag,	{ .i = Tmisc } }, 
48 +
	{ MODKEY|ShiftMask,	XK_0,		replacetag,	{ .i = Tfnord } }, 
51 49
	{ MODKEY|ShiftMask,	XK_1,		replacetag,	{ .i = Tdev } }, 
52 -
	{ MODKEY|ShiftMask,	XK_2,		replacetag,	{ .i = Twww } }, 
50 +
	{ MODKEY|ShiftMask,	XK_2,		replacetag,	{ .i = Tnet } }, 
53 51
	{ MODKEY|ShiftMask,	XK_3,		replacetag,	{ .i = Twork } }, 
52 +
	{ MODKEY|ShiftMask,	XK_4,		replacetag,	{ .i = Tmisc } }, 
54 53
	{ MODKEY|ShiftMask,	XK_c,		killclient,	{ 0 } }, 
55 54
	{ MODKEY|ShiftMask,	XK_g,		spawn,		{ .argv = gimp } },
56 55
	{ MODKEY|ShiftMask,	XK_l,		spawn,		{ .argv = xlock } },
tag.c +4 −22
21 21
/* CUSTOMIZE */ 
22 22
static Rule rule[] = {
23 23
	/* class:instance	tags				isfloat */
24 -
	{ "Firefox.*",		{ [Twww] = "www" },		False },
24 +
	{ "Firefox.*",		{ [Tnet] = "net" },		False },
25 25
	{ "Gimp.*",		{ 0 },				True},
26 26
};
27 27
28 28
char *tags[TLast] = {
29 -
	[Tscratch] = "scratch",
29 +
	[Tfnord] = "fnord",
30 30
	[Tdev] = "dev",
31 -
	[Twww] = "www",
31 +
	[Tnet] = "net",
32 32
	[Twork] = "work",
33 +
	[Tmisc] = "misc",
33 34
};
34 35
35 36
void (*arrange)(Arg *) = dotile;
145 146
{
146 147
	for(; c && !c->tags[tsel]; c = c->prev);
147 148
	return c;
148 -
}
149 -
150 -
void
151 -
heretag(Arg *arg)
152 -
{
153 -
	int i;
154 -
	Client *c;
155 -
156 -
	if(arg->i == tsel)
157 -
		return;
158 -
159 -
	if(!(c = getnext(clients, arg->i)))
160 -
		return;
161 -
162 -
	for(i = 0; i < TLast; i++)
163 -
		c->tags[i] = NULL;
164 -
	c->tags[tsel] = tags[tsel];
165 -
	pop(c);
166 -
	focus(c);
167 149
}
168 150
169 151
void