sites

public wiki contents of suckless.org
git clone git://git.suckless.org/sites
Log | Files | Refs

dwm-focusedborder-6.8.diff (1253B)


      1 From c8db7977d3d9332ca71987d2e0833a81e4fb2b99 Mon Sep 17 00:00:00 2001
      2 From: venus brock <venus@brock-v.dev>
      3 Date: Sun, 15 Feb 2026 16:11:13 -0600
      4 Subject: [PATCH] only display border on focused window
      5 
      6 This patch removes the borders on all unfocused windows, and resizes
      7 windows to use the space left behind.
      8 ---
      9  dwm.c | 13 ++++++++++++-
     10  1 file changed, 12 insertions(+), 1 deletion(-)
     11 
     12 diff --git a/dwm.c b/dwm.c
     13 index 53b393e..0ea2e9a 100644
     14 --- a/dwm.c
     15 +++ b/dwm.c
     16 @@ -800,6 +800,12 @@ focus(Client *c)
     17  		detachstack(c);
     18  		attachstack(c);
     19  		grabbuttons(c, 1);
     20 +		if (!c->bw) {
     21 +			c->bw = borderpx;
     22 +			c->w -= borderpx * 2;
     23 +			c->h -= borderpx * 2;
     24 +			resizeclient(c, c->x, c->y, c->w, c->h);
     25 +		}
     26  		XSetWindowBorder(dpy, c->win, scheme[SchemeSel][ColBorder].pixel);
     27  		setfocus(c);
     28  	} else {
     29 @@ -1768,7 +1774,12 @@ unfocus(Client *c, int setfocus)
     30  	if (!c)
     31  		return;
     32  	grabbuttons(c, 0);
     33 -	XSetWindowBorder(dpy, c->win, scheme[SchemeNorm][ColBorder].pixel);
     34 +	if (c->bw) {
     35 +		c->bw = 0;
     36 +		c->w += borderpx * 2;
     37 +		c->h += borderpx * 2;
     38 +		resizeclient(c, c->x, c->y, c->w, c->h);
     39 +	}
     40  	if (setfocus) {
     41  		XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime);
     42  		XDeleteProperty(dpy, root, netatom[NetActiveWindow]);
     43 -- 
     44 2.53.0
     45