~ctb/dwm

2685a035a20ac69b6dd071383d837a9b4ac63f62 — Christopher Thomas Bohn 2 years ago db0c76a
uselessgaps
2 files changed, 31 insertions(+), 6 deletions(-)

M config.def.h
M dwm.c
M config.def.h => config.def.h +1 -0
@@ 2,6 2,7 @@

/* appearance */
static const unsigned int borderpx  = 3;        /* 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 */

M dwm.c => dwm.c +30 -6
@@ 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)



@@ 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 selected monitor */
	for (n = 0, nbc = nexttiled(selmon->clients); nbc; nbc = nexttiled(nbc->next), n++);

	/* Do nothing if layout is floating */
	if (c->isfloating || selmon->lt[selmon->sellt]->arrange == NULL) {
		gapincr = gapoffset = 0;
	} else {
		/* Remove border and gap if layout is monocle or only one client */
		if (selmon->lt[selmon->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);