implemented reapply for re-applying the tagging rules during runtime, Mod-r
authorAnselm R. Garbe <garbeam@gmail.com>
Sat, 8 Dec 2007 19:11:56 +0000 (20:11 +0100)
committerAnselm R. Garbe <garbeam@gmail.com>
Sat, 8 Dec 2007 19:11:56 +0000 (20:11 +0100)
config.def.h
dwm.1
dwm.c

index 169aeec..d76bd0b 100644 (file)
@@ -47,6 +47,7 @@ Key keys[] = {
        { MODKEY,                       XK_h,           setmwfact,      "-0.05" },
        { MODKEY,                       XK_l,           setmwfact,      "+0.05" },
        { MODKEY,                       XK_m,           togglemax,      NULL },
+       { MODKEY,                       XK_r,           reapply,        NULL },
        { MODKEY,                       XK_Return,      zoom,           NULL },
        { MODKEY,                       XK_Tab,         viewprevtag,    NULL },
        { MODKEY|ShiftMask,             XK_space,       togglefloating, NULL },
diff --git a/dwm.1 b/dwm.1
index ba6b3f4..aff7bed 100644 (file)
--- a/dwm.1
+++ b/dwm.1
@@ -80,6 +80,9 @@ Increases the master area width about 5% (tiled layout only).
 .B Mod1\-m
 Toggles maximization of current window.
 .TP
+.B Mod1\-r
+Re-applies tagging rules to all windows.
+.TP
 .B Mod1\-Shift\-[1..n]
 Apply
 .RB nth
diff --git a/dwm.c b/dwm.c
index 53e5cb2..0af37d6 100644 (file)
--- a/dwm.c
+++ b/dwm.c
@@ -161,6 +161,7 @@ void movemouse(Client *c);
 Client *nexttiled(Client *c);
 void propertynotify(XEvent *e);
 void quit(const char *arg);
+void reapply(const char *arg);
 void resize(Client *c, int x, int y, int w, int h, Bool sizehints);
 void resizemouse(Client *c);
 void restack(void);
@@ -1159,6 +1160,17 @@ quit(const char *arg) {
        readin = running = False;
 }
 
+void
+reapply(const char *arg) {
+       static Bool zerotags[LENGTH(tags)] = { 0 };
+       Client *c;
+
+       for(c = clients; c; c = c->next) {
+               memcpy(c->tags, zerotags, sizeof zerotags);
+               applyrules(c);
+       }
+       arrange();
+}
 
 void
 resize(Client *c, int x, int y, int w, int h, Bool sizehints) {