summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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 4afa7052..c20c517e 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 1439f59d..a6a04cab 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 a0b3c0e7..58df2816 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 21eb9fa2..f7ab6b91 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;