summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnselm R Garbe <garbeam@gmail.com>2008-03-24 14:23:28 +0000
committerAnselm R Garbe <garbeam@gmail.com>2008-03-24 14:23:28 +0000
commita355782a7795c8c26a05e8bda1505ff46d5d0289 (patch)
tree466aa459fb7e0bd8b641e85596b8df59237f983c
parent20cd3360876f551c0f3b4c9c5a827a64b829e6ef (diff)
downloaddwm-a355782a7795c8c26a05e8bda1505ff46d5d0289.tar.gz
revival of mfact and setmfact
-rw-r--r--config.def.h5
-rw-r--r--dwm.16
-rw-r--r--dwm.c21
3 files changed, 31 insertions, 1 deletions
diff --git a/config.def.h b/config.def.h
index 9c15313..ddecedd 100644
--- 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
index 56cd2ab..a9f8cee 100644
--- 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
index e1c8c20..d264e48 100644
--- 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;