dwm

my fork of dwm
Index Commits Files Refs README LICENSE
commit cd8d8e120857329800e93e22572e35560d1b0e80
parent 04eb016e782743ec88f150ec6f5389703bed3ce2
Author: arg@10ksloc.org <unknown>
Date:   Fri, 21 Jul 2006 07:37:52 +0200

sanitization of several clunky stuff, removed heretag (rarely of use), simplified pop(), changed shortcuts to always contain MODKEY

Diffstat:
Mclient.c | 17+++++++++++++++--
Mdwm.h | 22++++++++++------------
Mevent.c | 23+++++++++++------------
Mtag.c | 26++++----------------------
4 files changed, 40 insertions(+), 48 deletions(-)
diff --git 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
@@ -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
@@ -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
@@ -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;