This doesn't below here, but on the wiki.
You can push it yourself to the wiki repository as described on the wiki page.
On Sun, Nov 21, 2021 at 11:42:05AM +0100, thim wrote:
> The inner gap between the master and slave stack is currently double of
> whatever the gappx variable is. This should be fixed with this patch.
>
> OK?
>
> PS: I sent this patch the other day via git send-mail but I'm not sure
> if it actually sent it, if so ignore this email.
>
>
> From 45c0972e8e2243f29c949a73124dd0be6e146f6a Mon Sep 17 00:00:00 2001
> From: cirala <thim_AT_cederlund.de>
> Date: Fri, 19 Nov 2021 18:24:43 +0100
> Subject: [PATCH] [PATCH] gap fix for uselessgap
>
> Previously there would be an uneven gap between the master and slave
> stack.
> ---
> config.def.h | 3 ++-
> dwm.c | 38 +++++++++++++++++++++++++++++++-------
> 2 files changed, 33 insertions(+), 8 deletions(-)
>
> diff --git a/config.def.h b/config.def.h
> index a2ac963..17a205f 100644
> --- a/config.def.h
> +++ b/config.def.h
> _AT_@ -2,6 +2,7 @@
>
> /* appearance */
> static const unsigned int borderpx = 1; /* border pixel of windows */
> +static const unsigned int gappx = 6; /* gaps between windows */
> static const unsigned int snap = 32; /* snap pixel */
> static const int showbar = 1; /* 0 means no bar */
> static const int topbar = 1; /* 0 means bottom bar */
> _AT_@ -34,7 +35,7 @@ static const Rule rules[] = {
> /* layout(s) */
> static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */
> static const int nmaster = 1; /* number of clients in master area */
> -static const int resizehints = 1; /* 1 means respect size hints in tiled resizals */
> +static const int resizehints = 0; /* 1 means respect size hints in tiled resizals */
> static const int lockfullscreen = 1; /* 1 will force focus on the fullscreen window */
>
> static const Layout layouts[] = {
> diff --git a/dwm.c b/dwm.c
> index 5e4d494..b626e89 100644
> --- a/dwm.c
> +++ b/dwm.c
> _AT_@ -52,8 +52,8 @@
> #define ISVISIBLE(C) ((C->tags & C->mon->tagset[C->mon->seltags]))
> #define LENGTH(X) (sizeof X / sizeof X[0])
> #define MOUSEMASK (BUTTONMASK|PointerMotionMask)
> -#define WIDTH(X) ((X)->w + 2 * (X)->bw)
> -#define HEIGHT(X) ((X)->h + 2 * (X)->bw)
> +#define WIDTH(X) ((X)->w + 2 * (X)->bw + gappx)
> +#define HEIGHT(X) ((X)->h + 2 * (X)->bw + gappx)
> #define TAGMASK ((1 << LENGTH(tags)) - 1)
> #define TEXTW(X) (drw_fontset_getwidth(drw, (X)) + lrpad)
>
> _AT_@ -1277,12 +1277,36 @@ void
> resizeclient(Client *c, int x, int y, int w, int h)
> {
> XWindowChanges wc;
> + unsigned int n;
> + unsigned int gapoffset;
> + unsigned int gapincr;
> + Client *nbc;
>
> - c->oldx = c->x; c->x = wc.x = x;
> - c->oldy = c->y; c->y = wc.y = y;
> - c->oldw = c->w; c->w = wc.width = w;
> - c->oldh = c->h; c->h = wc.height = h;
> wc.border_width = c->bw;
> +
> + /* Get number of clients for the client's monitor */
> + for (n = 0, nbc = nexttiled(c->mon->clients); nbc; nbc = nexttiled(nbc->next), n++);
> +
> + /* Do nothing if layout is floating */
> + if (c->isfloating || c->mon->lt[c->mon->sellt]->arrange == NULL) {
> + gapincr = gapoffset = 0;
> + } else {
> + /* Remove border and gap if layout is monocle or only one client */
> + if (c->mon->lt[c->mon->sellt]->arrange == monocle || n == 1) {
> + gapoffset = 0;
> + gapincr = -2 * borderpx;
> + wc.border_width = 0;
> + } else {
> + gapoffset = gappx;
> + gapincr = 2 * gappx;
> + }
> + }
> +
> + c->oldx = c->x; c->x = wc.x = x + gapoffset;
> + c->oldy = c->y; c->y = wc.y = y + gapoffset;
> + c->oldw = c->w; c->w = wc.width = w - gapincr;
> + c->oldh = c->h; c->h = wc.height = h - gapincr;
> +
> XConfigureWindow(dpy, c->win, CWX|CWY|CWWidth|CWHeight|CWBorderWidth, &wc);
> configure(c);
> XSync(dpy, False);
> _AT_@ -1688,7 +1712,7 @@ 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);
> + resize(c, m->wx, m->wy + my, mw - (2*c->bw) + (n > 1 ? gappx : 0), h - (2*c->bw), 0);
> if (my + HEIGHT(c) < m->wh)
> my += HEIGHT(c);
> } else {
> --
> 2.33.1
>
>
--
Kind regards,
Hiltjo
Received on Sun Nov 21 2021 - 12:26:40 CET