about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorarg@10ksloc.org <unknown>2006-07-21 07:37:52 +0200
committerarg@10ksloc.org <unknown>2006-07-21 07:37:52 +0200
commitcd8d8e120857329800e93e22572e35560d1b0e80 (patch)
treed8558f0a5e9c80c63947562f53752e71602ed241
parent04eb016e782743ec88f150ec6f5389703bed3ce2 (diff)
downloaddwm-cd8d8e120857329800e93e22572e35560d1b0e80.tar.gz
sanitization of several clunky stuff, removed heretag (rarely of use), simplified pop(), changed shortcuts to always contain MODKEY
-rw-r--r--client.c17
-rw-r--r--dwm.h22
-rw-r--r--event.c23
-rw-r--r--tag.c26
4 files changed, 40 insertions, 48 deletions
diff --git a/client.c b/client.c
index 4afa705..c20c517 100644
--- a/client.c
+++ b/client.c
@@ -476,7 +476,7 @@ unmanage(Client *c)
 void
 zoom(Arg *arg)
 {
-	Client *c;
+	Client *c, **l;
 
 	if(!sel)
 		return;
@@ -486,6 +486,19 @@ zoom(Arg *arg)
 			sel = c;
 	}
 
-	pop(sel);
+	/* pop */
+	for(l = &clients; *l && *l != sel; l = &(*l)->next);
+	if(sel->prev)
+		sel->prev->next = sel->next;
+	if(sel->next)
+		sel->next->prev = sel->prev;
+	*l = sel->next;
+
+	sel->prev = NULL;
+	if(clients)
+		clients->prev = sel;
+	sel->next = clients;
+	clients = sel;
+	arrange(NULL);
 	focus(sel);
 }
diff --git a/dwm.h b/dwm.h
index 1439f59..a6a04ca 100644
--- a/dwm.h
+++ b/dwm.h
@@ -7,21 +7,21 @@
 
 /* CUSTOMIZE */
 
-#define FONT				"-*-terminus-medium-*-*-*-13-*-*-*-*-*-iso10646-*"
-#define BGCOLOR				"#0a2c2d"
-#define FGCOLOR				"#ddeeee"
-#define BORDERCOLOR			"#176164"
-#define MODKEY				 Mod1Mask /* Mod4Mask */
+#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 BGCOLOR			"#666699"
+#define FGCOLOR			"#eeeeee"
+#define BORDERCOLOR		"#9999CC"
 */
-#define MASTERW				52 /* percent */
+#define MASTERW			52 /* percent */
 #define WM_PROTOCOL_DELWIN	1
 
 /* tags */
-enum { Tscratch, Tdev, Twww, Twork, TLast };
+enum { Tfnord, Tdev, Tnet, Twork, Tmisc, TLast };
 
 /* END CUSTOMIZE */
 
@@ -105,7 +105,6 @@ extern void higher(Client *c);
 extern void killclient(Arg *arg);
 extern void lower(Client *c);
 extern void manage(Window w, XWindowAttributes *wa);
-extern void pop(Client *c);
 extern void resize(Client *c, Bool sizehints, Corner sticky);
 extern void setsize(Client *c);
 extern void settitle(Client *c);
@@ -136,7 +135,6 @@ extern void dofloat(Arg *arg);
 extern void dotile(Arg *arg);
 extern Client *getnext(Client *c, unsigned int t);
 extern Client *getprev(Client *c);
-extern void heretag(Arg *arg);
 extern void replacetag(Arg *arg);
 extern void settags(Client *c);
 extern void togglemode(Arg *arg);
diff --git a/event.c b/event.c
index a0b3c0e..58df281 100644
--- a/event.c
+++ b/event.c
@@ -30,27 +30,26 @@ const char *xlock[] = { "xlock", NULL };
 
 static Key key[] = {
 	/* modifier		key		function	arguments */
-	{ ControlMask,		XK_0,		appendtag,	{ .i = Tscratch } }, 
-	{ ControlMask,		XK_1,		appendtag,	{ .i = Tdev } }, 
-	{ ControlMask,		XK_2,		appendtag,	{ .i = Twww } }, 
-	{ ControlMask,		XK_3,		appendtag,	{ .i = Twork } }, 
-	{ MODKEY,		XK_0,		view,		{ .i = Tscratch } }, 
+	{ MODKEY,		XK_0,		view,		{ .i = Tfnord } }, 
 	{ MODKEY,		XK_1,		view,		{ .i = Tdev } }, 
-	{ MODKEY,		XK_2,		view,		{ .i = Twww } }, 
+	{ MODKEY,		XK_2,		view,		{ .i = Tnet } }, 
 	{ MODKEY,		XK_3,		view,		{ .i = Twork } }, 
+	{ MODKEY,		XK_4,		view,		{ .i = Tmisc} }, 
 	{ MODKEY,		XK_j,		focusnext,	{ 0 } }, 
 	{ MODKEY,		XK_k,		focusprev,	{ 0 } },
 	{ MODKEY,		XK_m,		togglemax,	{ 0 } }, 
 	{ MODKEY,		XK_space,	togglemode,	{ 0 } }, 
 	{ MODKEY,		XK_Return,	zoom,		{ 0 } },
-	{ ControlMask|ShiftMask,XK_0,		heretag,	{ .i = Tscratch } }, 
-	{ ControlMask|ShiftMask,XK_1,		heretag,	{ .i = Tdev } }, 
-	{ ControlMask|ShiftMask,XK_2,		heretag,	{ .i = Twww } }, 
-	{ ControlMask|ShiftMask,XK_3,		heretag,	{ .i = Twork } }, 
-	{ MODKEY|ShiftMask,	XK_0,		replacetag,	{ .i = Tscratch } }, 
+	{ 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 = Twww } }, 
+	{ 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_g,		spawn,		{ .argv = gimp } },
 	{ MODKEY|ShiftMask,	XK_l,		spawn,		{ .argv = xlock } },
diff --git a/tag.c b/tag.c
index 21eb9fa..f7ab6b9 100644
--- a/tag.c
+++ b/tag.c
@@ -21,15 +21,16 @@ typedef struct {
 /* CUSTOMIZE */ 
 static Rule rule[] = {
 	/* class:instance	tags				isfloat */
-	{ "Firefox.*",		{ [Twww] = "www" },		False },
+	{ "Firefox.*",		{ [Tnet] = "net" },		False },
 	{ "Gimp.*",		{ 0 },				True},
 };
 
 char *tags[TLast] = {
-	[Tscratch] = "scratch",
+	[Tfnord] = "fnord",
 	[Tdev] = "dev",
-	[Twww] = "www",
+	[Tnet] = "net",
 	[Twork] = "work",
+	[Tmisc] = "misc",
 };
 
 void (*arrange)(Arg *) = dotile;
@@ -148,25 +149,6 @@ getprev(Client *c)
 }
 
 void
-heretag(Arg *arg)
-{
-	int i;
-	Client *c;
-
-	if(arg->i == tsel)
-		return;
-
-	if(!(c = getnext(clients, arg->i)))
-		return;
-
-	for(i = 0; i < TLast; i++)
-		c->tags[i] = NULL;
-	c->tags[tsel] = tags[tsel];
-	pop(c);
-	focus(c);
-}
-
-void
 replacetag(Arg *arg)
 {
 	int i;