From 8cbbab03fc059e3f6566c01cb3fb90e9eff17aee Mon Sep 17 00:00:00 2001 From: Ronald Regan <1985ronald@tutanota.com> Date: Mon, 11 Mar 2019 00:13:34 +0000 Subject: [PATCH] singleborders --- dwm.c | 12 +++++++--- patches/dwm_single_borders.diff | 40 +++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+), 3 deletions(-) create mode 100644 patches/dwm_single_borders.diff diff --git a/dwm.c b/dwm.c index 6474055..bb04ecd 100644 --- a/dwm.c +++ b/dwm.c @@ -809,6 +809,7 @@ expose(XEvent *e) void focus(Client *c) { + XWindowChanges wc; if (!c || !ISVISIBLE(c)) for (c = selmon->stack; c && !ISVISIBLE(c); c = c->snext); if (selmon->sel && selmon->sel != c) @@ -822,6 +823,11 @@ focus(Client *c) attachstack(c); grabbuttons(c, 1); XSetWindowBorder(dpy, c->win, scheme[SchemeSel][ColBorder].pixel); + if(!c->isfloating) { + wc.sibling = selmon->barwin; + wc.stack_mode = Below; + XConfigureWindow(dpy, c->win, CWSibling | CWStackMode, &wc); + } setfocus(c); } else { XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime); @@ -1713,12 +1719,12 @@ tile(Monitor *m) for (i = my = ty = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), i++) if (i < m->nmaster) { h = (m->wh - my) / (MIN(n, m->nmaster) - i); - resize(c, m->wx, m->wy + my, mw - (2*c->bw), h - (2*c->bw), 0); - my += HEIGHT(c); + resize(c, m->wx, m->wy + my, mw - c->bw, h - (2*c->bw), 0); + my += HEIGHT(c) - c->bw; } 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), 0); - ty += HEIGHT(c); + ty += HEIGHT(c) - c->bw; } } diff --git a/patches/dwm_single_borders.diff b/patches/dwm_single_borders.diff new file mode 100644 index 0000000..8ef41ae --- /dev/null +++ b/patches/dwm_single_borders.diff @@ -0,0 +1,40 @@ +diff --git a/dwm.c b/dwm.c +index 4465af1..84f8fec 100644 +--- a/dwm.c ++++ b/dwm.c +@@ -783,6 +783,7 @@ expose(XEvent *e) + void + focus(Client *c) + { ++ XWindowChanges wc; + if (!c || !ISVISIBLE(c)) + for (c = selmon->stack; c && !ISVISIBLE(c); c = c->snext); + if (selmon->sel && selmon->sel != c) +@@ -796,6 +797,11 @@ focus(Client *c) + attachstack(c); + grabbuttons(c, 1); + XSetWindowBorder(dpy, c->win, scheme[SchemeSel][ColBorder].pixel); ++ if(!c->isfloating) { ++ wc.sibling = selmon->barwin; ++ wc.stack_mode = Below; ++ XConfigureWindow(dpy, c->win, CWSibling | CWStackMode, &wc); ++ } + setfocus(c); + } else { + XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime); +@@ -1687,12 +1693,12 @@ tile(Monitor *m) + for (i = my = ty = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), i++) + if (i < m->nmaster) { + h = (m->wh - my) / (MIN(n, m->nmaster) - i); +- resize(c, m->wx, m->wy + my, mw - (2*c->bw), h - (2*c->bw), 0); +- my += HEIGHT(c); ++ resize(c, m->wx, m->wy + my, mw - c->bw, h - (2*c->bw), 0); ++ my += HEIGHT(c) - c->bw; + } 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), 0); +- ty += HEIGHT(c); ++ ty += HEIGHT(c) - c->bw; + } + } +