JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
sanitization of several clunky stuff, removed heretag (rarely of use), simplified...
authorarg@10ksloc.org <unknown>
Fri, 21 Jul 2006 05:37:52 +0000 (07:37 +0200)
committerarg@10ksloc.org <unknown>
Fri, 21 Jul 2006 05:37:52 +0000 (07:37 +0200)
client.c
dwm.h
event.c
tag.c

index 4afa705..c20c517 100644 (file)
--- 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 (file)
--- 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 (file)
--- 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 (file)
--- 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;