summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--config.h12
-rw-r--r--drw.obin10968 -> 10968 bytes
-rwxr-xr-xdwmbin75896 -> 76144 bytes
-rw-r--r--dwm.obin63672 -> 64096 bytes
-rw-r--r--patch/dwm-6.0-smfact.diff117
-rw-r--r--util.obin2080 -> 2080 bytes
6 files changed, 124 insertions, 5 deletions
diff --git a/config.h b/config.h
index d5144d9..e8458dd 100644
--- a/config.h
+++ b/config.h
@@ -10,7 +10,7 @@ static const unsigned int gappih = 10; /* horiz inner gap between windo
static const unsigned int gappiv = 10; /* vert inner gap between windows */
static const unsigned int gappoh = 10; /* horiz outer gap between windows and screen edge */
static const unsigned int gappov = 10; /* vert outer gap between windows and screen edge */
-static const int smartgaps = 0; /* 1 means no outer gap when there is only one window */
+static const int smartgaps = 1; /* 1 means no outer gap when there is only one window */
static const int swallowfloating = 0; /* 1 means swallow floating windows by default */
static const int showbar = 1; /* 0 means no bar */
static const int topbar = 1; /* 0 means bottom bar */
@@ -113,12 +113,14 @@ static Key keys[] = {
{ MODKEY, XK_period, focusmon, {.i = +1 } },
{ MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } },
{ MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } },
+ { MODKEY, XK_b, spawn, {.v = (const char*[]){ "firefox", NULL } } },
+ { MODKEY, XK_v, spawn, {.v = (const char*[]){ "firefox", "-P", "other", NULL } } },
+ { MODKEY, XK_e, spawn, {.v = (const char*[]){ "emacsclient", "-c", "-a", "emacs", NULL } } },
+ { MODKEY|ShiftMask, XK_v, spawn, {.v = (const char*[]){ TERMINAL, "pulsemixer", NULL } } },
+ { MODKEY|ShiftMask, XK_n, spawn, {.v = (const char*[]){ TERMINAL, "newsboat", NULL } } },
+ { MODKEY|ShiftMask, XK_y, spawn, {.v = (const char*[]){ TERMINAL, "ytdl", NULL } } },
{ MODKEY|ControlMask, XK_b, spawn, SHCMD("xdotool type $( grep -v '^#' ~/docs/random/bookmarks.txt | dmenu -i -l 50 | cut -d' ' -f1 )") },
{ MODKEY|ControlMask, XK_l, spawn, SHCMD("xdotool type \"cat $( /usr/bin/ls -d ~/docs/lyrics/* | dmenu -i -l 50)\"") },
- { MODKEY, XK_b, spawn, SHCMD("firefox") },
- { MODKEY, XK_e, spawn, SHCMD("emacsclient -c -a 'emacs'") },
- { MODKEY, XK_v, spawn, SHCMD("st pulsemixer") },
- { MODKEY, XK_n, spawn, SHCMD("st newsboat") },
{ MODKEY, XK_Print, spawn, SHCMD("sleep 0.3s; scrot -s -e 'mv $f ~/pics/'") },
{ 0, XK_Print, spawn, SHCMD("scrot -u -e 'mv $f ~/pics/'") },
TAGKEYS( XK_1, 0)
diff --git a/drw.o b/drw.o
index 07e1c0e..bcc1c77 100644
--- a/drw.o
+++ b/drw.o
Binary files differ
diff --git a/dwm b/dwm
index 7ef2d18..717d3ef 100755
--- a/dwm
+++ b/dwm
Binary files differ
diff --git a/dwm.o b/dwm.o
index 76a87e1..73c7308 100644
--- a/dwm.o
+++ b/dwm.o
Binary files differ
diff --git a/patch/dwm-6.0-smfact.diff b/patch/dwm-6.0-smfact.diff
new file mode 100644
index 0000000..2032ef0
--- /dev/null
+++ b/patch/dwm-6.0-smfact.diff
@@ -0,0 +1,117 @@
+--- config.def.h 2013-04-06 21:01:27.750829760 +0200
++++ config.def.h 2013-04-06 21:02:19.557495556 +0200
+@@ -10,6 +10,7 @@ static const char selbgcolor[] = "#
+ static const char selfgcolor[] = "#eeeeee";
+ static const unsigned int borderpx = 1; /* border pixel of windows */
+ static const unsigned int snap = 32; /* snap pixel */
++static const unsigned int minwsz = 20; /* Minimal heigt of a client for smfact */
+ static const Bool showbar = True; /* False means no bar */
+ static const Bool topbar = True; /* False means bottom bar */
+
+@@ -24,6 +25,7 @@ static const Rule rules[] = {
+
+ /* layout(s) */
+ static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */
++static const float smfact = 0.00; /* factor of tiled clients [0.00..0.95] */
+ static const int nmaster = 1; /* number of clients in master area */
+ static const Bool resizehints = True; /* True means respect size hints in tiled resizals */
+
+@@ -60,6 +62,8 @@ static Key keys[] = {
+ { MODKEY, XK_d, incnmaster, {.i = -1 } },
+ { MODKEY, XK_h, setmfact, {.f = -0.05} },
+ { MODKEY, XK_l, setmfact, {.f = +0.05} },
++ { MODKEY|ShiftMask, XK_h, setsmfact, {.f = +0.05} },
++ { MODKEY|ShiftMask, XK_l, setsmfact, {.f = -0.05} },
+ { MODKEY, XK_Return, zoom, {0} },
+ { MODKEY, XK_Tab, view, {0} },
+ { MODKEY|ShiftMask, XK_c, killclient, {0} },
+--- dwm.c 2011-12-19 16:02:46.000000000 +0100
++++ dwm.c 2013-04-06 21:00:46.620830452 +0200
+@@ -69,6 +69,7 @@ typedef union {
+ int i;
+ unsigned int ui;
+ float f;
++ float sf;
+ const void *v;
+ } Arg;
+
+@@ -127,6 +128,7 @@ typedef struct {
+ struct Monitor {
+ char ltsymbol[16];
+ float mfact;
++ float smfact;
+ int nmaster;
+ int num;
+ int by; /* bar geometry */
+@@ -220,6 +222,7 @@ static void setfocus(Client *c);
+ static void setfullscreen(Client *c, Bool fullscreen);
+ static void setlayout(const Arg *arg);
+ static void setmfact(const Arg *arg);
++static void setsmfact(const Arg *arg);
+ static void setup(void);
+ static void showhide(Client *c);
+ static void sigchld(int unused);
+@@ -651,6 +654,7 @@ createmon(void) {
+ die("fatal: could not malloc() %u bytes\n", sizeof(Monitor));
+ m->tagset[0] = m->tagset[1] = 1;
+ m->mfact = mfact;
++ m->smfact = smfact;
+ m->nmaster = nmaster;
+ m->showbar = showbar;
+ m->topbar = topbar;
+@@ -1581,6 +1585,19 @@ setmfact(const Arg *arg) {
+ }
+
+ void
++setsmfact(const Arg *arg) {
++ float sf;
++
++ if(!arg || !selmon->lt[selmon->sellt]->arrange)
++ return;
++ sf = arg->sf < 1.0 ? arg->sf + selmon->smfact : arg->sf - 1.0;
++ if(sf < 0 || sf > 0.9)
++ return;
++ selmon->smfact = sf;
++ arrange(selmon);
++}
++
++void
+ setup(void) {
+ XSetWindowAttributes wa;
+
+@@ -1703,7 +1720,7 @@ textnw(const char *text, unsigned int le
+
+ void
+ tile(Monitor *m) {
+- unsigned int i, n, h, mw, my, ty;
++ unsigned int i, n, h, smh, mw, my, ty;
+ Client *c;
+
+ for(n = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), n++);
+@@ -1721,9 +1738,23 @@ tile(Monitor *m) {
+ my += HEIGHT(c);
+ }
+ else {
+- h = (m->wh - ty) / (n - i);
+- resize(c, m->wx + mw, m->wy + ty, m->ww - mw - (2*c->bw), h - (2*c->bw), False);
+- ty += HEIGHT(c);
++ smh = m->mh * m->smfact;
++ if(!(nexttiled(c->next)))
++ h = (m->wh - ty) / (n - i);
++ else
++ h = (m->wh - smh - ty) / (n - i);
++ if(h < minwsz) {
++ c->isfloating = True;
++ XRaiseWindow(dpy, c->win);
++ resize(c, m->mx + (m->mw / 2 - WIDTH(c) / 2), m->my + (m->mh / 2 - HEIGHT(c) / 2), m->ww - mw - (2*c->bw), h - (2*c->bw), False);
++ ty -= HEIGHT(c);
++ }
++ else
++ resize(c, m->wx + mw, m->wy + ty, m->ww - mw - (2*c->bw), h - (2*c->bw), False);
++ if(!(nexttiled(c->next)))
++ ty += HEIGHT(c) + smh;
++ else
++ ty += HEIGHT(c);
+ }
+ }
+
diff --git a/util.o b/util.o
index 1396f4b..04ef62b 100644
--- a/util.o
+++ b/util.o
Binary files differ