Introduction
Introduction Statistics Contact Development Disclaimer Help
dwm-uselessgap-20211119-58414bee958f2.diff - sites - public wiki contents of su…
git clone git://git.suckless.org/sites
Log
Files
Refs
---
dwm-uselessgap-20211119-58414bee958f2.diff (3798B)
---
1 From 58414bee958f2e7ed91d6fe31f503ec4a406981b Mon Sep 17 00:00:00 2001
2 From: cirala <[email protected]>
3 Date: Fri, 19 Nov 2021 18:14:07 +0100
4 Subject: [PATCH] Fix for dwm-uselessgap
5 Previous versions of the patch doubles the
6 gap between the master and slave stacks.
7
8 ---
9 config.def.h | 3 ++-
10 dwm.c | 38 +++++++++++++++++++++++++++++++-------
11 2 files changed, 33 insertions(+), 8 deletions(-)
12
13 diff --git a/config.def.h b/config.def.h
14 index a2ac963..17a205f 100644
15 --- a/config.def.h
16 +++ b/config.def.h
17 @@ -2,6 +2,7 @@
18
19 /* appearance */
20 static const unsigned int borderpx = 1; /* border pixel of wind…
21 +static const unsigned int gappx = 6; /* gaps between windows…
22 static const unsigned int snap = 32; /* snap pixel */
23 static const int showbar = 1; /* 0 means no bar */
24 static const int topbar = 1; /* 0 means bottom bar */
25 @@ -34,7 +35,7 @@ static const Rule rules[] = {
26 /* layout(s) */
27 static const float mfact = 0.55; /* factor of master area size [0.0…
28 static const int nmaster = 1; /* number of clients in master are…
29 -static const int resizehints = 1; /* 1 means respect size hints in t…
30 +static const int resizehints = 0; /* 1 means respect size hints in t…
31 static const int lockfullscreen = 1; /* 1 will force focus on the fulls…
32
33 static const Layout layouts[] = {
34 diff --git a/dwm.c b/dwm.c
35 index 5e4d494..b626e89 100644
36 --- a/dwm.c
37 +++ b/dwm.c
38 @@ -52,8 +52,8 @@
39 #define ISVISIBLE(C) ((C->tags & C->mon->tagset[C->mon->selt…
40 #define LENGTH(X) (sizeof X / sizeof X[0])
41 #define MOUSEMASK (BUTTONMASK|PointerMotionMask)
42 -#define WIDTH(X) ((X)->w + 2 * (X)->bw)
43 -#define HEIGHT(X) ((X)->h + 2 * (X)->bw)
44 +#define WIDTH(X) ((X)->w + 2 * (X)->bw + gappx)
45 +#define HEIGHT(X) ((X)->h + 2 * (X)->bw + gappx)
46 #define TAGMASK ((1 << LENGTH(tags)) - 1)
47 #define TEXTW(X) (drw_fontset_getwidth(drw, (X)) + lrpad)
48
49 @@ -1277,12 +1277,36 @@ void
50 resizeclient(Client *c, int x, int y, int w, int h)
51 {
52 XWindowChanges wc;
53 + unsigned int n;
54 + unsigned int gapoffset;
55 + unsigned int gapincr;
56 + Client *nbc;
57
58 - c->oldx = c->x; c->x = wc.x = x;
59 - c->oldy = c->y; c->y = wc.y = y;
60 - c->oldw = c->w; c->w = wc.width = w;
61 - c->oldh = c->h; c->h = wc.height = h;
62 wc.border_width = c->bw;
63 +
64 + /* Get number of clients for the client's monitor */
65 + for (n = 0, nbc = nexttiled(c->mon->clients); nbc; nbc = nextti…
66 +
67 + /* Do nothing if layout is floating */
68 + if (c->isfloating || c->mon->lt[c->mon->sellt]->arrange == NULL…
69 + gapincr = gapoffset = 0;
70 + } else {
71 + /* Remove border and gap if layout is monocle or only o…
72 + if (c->mon->lt[c->mon->sellt]->arrange == monocle || n …
73 + gapoffset = 0;
74 + gapincr = -2 * borderpx;
75 + wc.border_width = 0;
76 + } else {
77 + gapoffset = gappx;
78 + gapincr = 2 * gappx;
79 + }
80 + }
81 +
82 + c->oldx = c->x; c->x = wc.x = x + gapoffset;
83 + c->oldy = c->y; c->y = wc.y = y + gapoffset;
84 + c->oldw = c->w; c->w = wc.width = w - gapincr;
85 + c->oldh = c->h; c->h = wc.height = h - gapincr;
86 +
87 XConfigureWindow(dpy, c->win, CWX|CWY|CWWidth|CWHeight|CWBorder…
88 configure(c);
89 XSync(dpy, False);
90 @@ -1688,7 +1712,7 @@ tile(Monitor *m)
91 for (i = my = ty = 0, c = nexttiled(m->clients); c; c = nexttil…
92 if (i < m->nmaster) {
93 h = (m->wh - my) / (MIN(n, m->nmaster) - i);
94 - resize(c, m->wx, m->wy + my, mw - (2*c->bw), h …
95 + resize(c, m->wx, m->wy + my, mw - (2*c->bw) + (…
96 if (my + HEIGHT(c) < m->wh)
97 my += HEIGHT(c);
98 } else {
99 --
100 2.33.1
101
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.