dwm-singularbordersbar-6.2.diff - sites - public wiki contents of suckless.org
(HTM) git clone git://git.suckless.org/sites
(DIR) Log
(DIR) Files
(DIR) Refs
---
dwm-singularbordersbar-6.2.diff (2518B)
---
1 From f67d4db0bcef0eb4f601cd25995fd964d60b2a2d Mon Sep 17 00:00:00 2001
2 From: aleks <aleks.stier@icloud.com>
3 Date: Wed, 27 Jan 2021 16:52:55 +0100
4 Subject: [PATCH] [dwm][patch] apply singularbordersbar
5
6 `singularbordersbar` changes the way DWM handles the borders. Firstly,
7 borders against the left, right, top and bottom screen-edges are removed
8 (they are placed off-screen) and secondly, borders between clients now
9 overlap eachother. A border between the clients and the bar is also
10 created.
11 ---
12 dwm.c | 24 +++++++++++++++++++-----
13 1 file changed, 19 insertions(+), 5 deletions(-)
14
15 diff --git a/dwm.c b/dwm.c
16 index 4465af1..d359d0a 100644
17 --- a/dwm.c
18 +++ b/dwm.c
19 @@ -205,6 +205,7 @@ static void setup(void);
20 static void seturgent(Client *c, int urg);
21 static void showhide(Client *c);
22 static void sigchld(int unused);
23 +static int singularborder_baradjustment(Client *c);
24 static void spawn(const Arg *arg);
25 static void tag(const Arg *arg);
26 static void tagmon(const Arg *arg);
27 @@ -1112,7 +1113,8 @@ monocle(Monitor *m)
28 if (n > 0) /* override layout symbol */
29 snprintf(m->ltsymbol, sizeof m->ltsymbol, "[%d]", n);
30 for (c = nexttiled(m->clients); c; c = nexttiled(c->next))
31 - resize(c, m->wx, m->wy, m->ww - 2 * c->bw, m->wh - 2 * c->bw, 0);
32 + resize(c, m->wx - c->bw, m->wy - singularborder_baradjustment(c),
33 + m->ww, m->wh - c->bw * m->showbar, False);
34 }
35
36 void
37 @@ -1636,6 +1638,12 @@ sigchld(int unused)
38 while (0 < waitpid(-1, NULL, WNOHANG));
39 }
40
41 +int
42 +singularborder_baradjustment(Client *c)
43 +{
44 + return c->bw * !(c->mon->showbar && topbar);
45 +}
46 +
47 void
48 spawn(const Arg *arg)
49 {
50 @@ -1687,12 +1695,18 @@ tile(Monitor *m)
51 for (i = my = ty = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), i++)
52 if (i < m->nmaster) {
53 h = (m->wh - my) / (MIN(n, m->nmaster) - i);
54 - resize(c, m->wx, m->wy + my, mw - (2*c->bw), h - (2*c->bw), 0);
55 - my += HEIGHT(c);
56 + if (n == 1)
57 + resize(c, m->wx - c->bw, m->wy - singularborder_baradjustment(c),
58 + m->ww, m->wh - c->bw * m->showbar, False);
59 + else
60 + resize(c, m->wx - c->bw, m->wy + my - singularborder_baradjustment(c),
61 + mw - c->bw, h - c->bw * m->showbar, False);
62 + my += HEIGHT(c) - c->bw;
63 } else {
64 h = (m->wh - ty) / (n - i);
65 - resize(c, m->wx + mw, m->wy + ty, m->ww - mw - (2*c->bw), h - (2*c->bw), 0);
66 - ty += HEIGHT(c);
67 + resize(c, m->wx + mw - c->bw, m->wy + ty - singularborder_baradjustment(c),
68 + m->ww - mw, h - c->bw * m->showbar, False);
69 + ty += HEIGHT(c) - c->bw;
70 }
71 }
72
73 --
74 2.30.0
75