dwm

my fork of dwm
Index Commits Files Refs README LICENSE
commit a355782a7795c8c26a05e8bda1505ff46d5d0289
parent 20cd3360876f551c0f3b4c9c5a827a64b829e6ef
Author: Anselm R Garbe <garbeam@gmail.com>
Date:   Mon, 24 Mar 2008 14:23:28 +0000

revival of mfact and setmfact
Diffstat:
Mconfig.def.h | 5++++-
Mdwm.1 | 6++++++
Mdwm.c | 21+++++++++++++++++++++
3 files changed, 31 insertions(+), 1 deletion(-)
diff --git a/config.def.h b/config.def.h
@@ -20,7 +20,8 @@ Rule rules[] = {
 
 /* geometries, s{x,y,w,h} and bh are already initualized here */
 /*   func name  bx  by  bw  wx  wy  ww     wh  mx  my       mw  mh     tx  ty     tw  th  mox moy mow moh */
-DEFGEOM(single,  0,  0, sw,  0, bh, sw, sh-bh, wx, wy, 0.55*sw, wh, mx+mw, wy, ww-mw, wh,  wx, wy, ww, wh)
+double mfact = 0.55;
+DEFGEOM(single,  0,  0, sw,  0, bh, sw, sh-bh, wx, wy, mfact*sw, wh, mx+mw, wy, ww-mw, wh,  wx, wy, ww, wh)
 DEFGEOM(dual,    0,  0,1280, 0, bh, ww, wh-bh, wx, wy, 1280,800-bh,  1280,  0, ww-mw, sh,  mx, my, mw, mh)
 
 Geom geoms[] = {
@@ -51,6 +52,8 @@ Key keys[] = {
     { MODKEY,            XK_j,        focusnext,    NULL },
     { MODKEY,            XK_k,        focusprev,    NULL },
     { MODKEY,            XK_r,        reapply,    NULL },
+    { MODKEY,            XK_h,        setmfact,    "-0.05" },
+    { MODKEY,            XK_l,        setmfact,    "+0.05" },
     { MODKEY,            XK_Return,    zoom,        NULL },
     { MODKEY,            XK_Tab,        viewprevtag,    NULL },
     { MODKEY|ShiftMask,        XK_c,        killclient,    NULL },
diff --git a/dwm.1 b/dwm.1
@@ -69,6 +69,12 @@ Focus next window.
 .B Mod1\-k
 Focus previous window.
 .TP
+.B Mod1\-h
+Decrease master area size.
+.TP
+.B Mod1\-l
+Increase master area size.
+.TP
 .B Mod1\-Return
 Zooms/cycles focused window to/from master area (tiled layouts only).
 .TP
diff --git a/dwm.c b/dwm.c
@@ -178,6 +178,7 @@ void scan(void);
 void setclientstate(Client *c, long state);
 void setgeom(const char *arg);
 void setlayout(const char *arg);
+void setmfact(const char *arg);
 void setup(void);
 void spawn(const char *arg);
 void tag(const char *arg);
@@ -1463,6 +1464,26 @@ setlayout(const char *arg) {
 }
 
 void
+setmfact(const char *arg) {
+    double delta;
+
+    if(!arg)
+        return;
+    delta = strtod(arg, NULL);
+    if(arg[0] == '-' || arg[0] == '+') {
+        if(mfact + delta < 0.1 || mfact + delta > 0.9)
+            return;
+        mfact += delta;
+    }
+    else {
+        if(delta < 0.1 || delta > 0.9)
+            return;
+        mfact = delta;
+    }
+    arrange();
+}
+
+void
 setup(void) {
     unsigned int i, w;
     XSetWindowAttributes wa;