dwm-gaps-xtile-6.0.diff - sites - public wiki contents of suckless.org
(HTM) git clone git://git.suckless.org/sites
(DIR) Log
(DIR) Files
(DIR) Refs
---
dwm-gaps-xtile-6.0.diff (2842B)
---
1 diff --git a/config.def.h b/config.def.h
2 index ac895db..ef72871 100644
3 --- a/config.def.h
4 +++ b/config.def.h
5 @@ -9,6 +9,7 @@ static const char selbordercolor[] = "#005577";
6 static const char selbgcolor[] = "#005577";
7 static const char selfgcolor[] = "#eeeeee";
8 static const unsigned int borderpx = 1; /* border pixel of windows */
9 +static const unsigned int gappx = 1; /* gap pixel between windows */
10 static const unsigned int snap = 32; /* snap pixel */
11 static const Bool showbar = True; /* False means no bar */
12 static const Bool topbar = True; /* False means bottom bar */
13 diff --git a/dwm.c b/dwm.c
14 index 5dd2673..2c3268e 100644
15 --- a/dwm.c
16 +++ b/dwm.c
17 @@ -1763,7 +1763,7 @@ void
18 tile(Monitor *m) {
19 Client *c;
20 Area *ga = m->pertag->areas[m->pertag->curtag], *ma = ga + 1, *sa = ga + 2, *a;
21 - unsigned int n, i, w, h, ms, ss;
22 + unsigned int n, i, w, h, g, ms, ss;
23 float f;
24
25 /* print layout symbols */
26 @@ -1778,23 +1778,24 @@ tile(Monitor *m) {
27 ma->n = MIN(n, m->nmaster), sa->n = n - ma->n;
28 /* calculate area rectangles */
29 f = ma->n == 0 ? 0 : (sa->n == 0 ? 1 : ga->fact / 2);
30 + g = ma->n == 0 || sa->n == 0 ? 0 : gappx;
31 if(ga->dir == DirHor || ga->dir == DirRotHor)
32 - ms = f * m->ww, ss = m->ww - ms,
33 - ma->x = ga->dir == DirHor ? 0 : ss, ma->y = 0, ma->fx = ma->x + ms, ma->fy = m->wh,
34 - sa->x = ga->dir == DirHor ? ms : 0, sa->y = 0, sa->fx = sa->x + ss, sa->fy = m->wh;
35 + ms = f * (m->ww - g), ss = m->ww - ms - g,
36 + ma->x = ga->dir == DirHor ? 0 : ss + g, ma->y = 0, ma->fx = ma->x + ms, ma->fy = m->wh,
37 + sa->x = ga->dir == DirHor ? ms + g: 0, sa->y = 0, sa->fx = sa->x + ss, sa->fy = m->wh;
38 else
39 - ms = f * m->wh, ss = m->wh - ms,
40 - ma->x = 0, ma->y = ga->dir == DirVer ? 0 : ss, ma->fx = m->ww, ma->fy = ma->y + ms,
41 - sa->x = 0, sa->y = ga->dir == DirVer ? ms : 0, sa->fx = m->ww, sa->fy = sa->y + ss;
42 + ms = f * (m->wh - g), ss = m->wh - ms - g,
43 + ma->x = 0, ma->y = ga->dir == DirVer ? 0 : ss + g, ma->fx = m->ww, ma->fy = ma->y + ms,
44 + sa->x = 0, sa->y = ga->dir == DirVer ? ms + g : 0, sa->fx = m->ww, sa->fy = sa->y + ss;
45 /* tile clients */
46 for(c = nexttiled(m->clients), i = 0; i < n; c = nexttiled(c->next), i++) {
47 a = ma->n > 0 ? ma : sa;
48 f = i == 0 || ma->n == 0 ? a->fact : 1, f /= --a->n + f;
49 - w = (a->dir == DirVer ? 1 : f) * (a->fx - a->x);
50 - h = (a->dir == DirHor ? 1 : f) * (a->fy - a->y);
51 + w = a->dir == DirVer ? a->fx - a->x : f * (a->fx - a->x - a->n * gappx);
52 + h = a->dir == DirHor ? a->fy - a->y : f * (a->fy - a->y - a->n * gappx);;
53 resize(c, m->wx + a->x, m->wy + a->y, w - 2 * c->bw, h - 2 * c->bw, False);
54 - a->x += a->dir == DirHor ? w : 0;
55 - a->y += a->dir == DirVer ? h : 0;
56 + a->x += a->dir == DirHor ? w + gappx : 0;
57 + a->y += a->dir == DirVer ? h + gappx : 0;
58 }
59 }
60