dwm-borderrule-20231226-e7f651b.diff - sites - public wiki contents of suckless.org
(HTM) git clone git://git.suckless.org/sites
(DIR) Log
(DIR) Files
(DIR) Refs
---
dwm-borderrule-20231226-e7f651b.diff (2066B)
---
1 From e7f651b1321747fb92521522f0aa07a01160d4af Mon Sep 17 00:00:00 2001
2 From: Jasper Shovelton <Beanie.github@proton.me>
3 Date: Tue, 26 Dec 2023 12:57:35 +0000
4 Subject: [PATCH] Add a `borderpx` value to `rules` in `config.def.h`.
5
6 ---
7 config.def.h | 6 +++---
8 dwm.c | 5 ++++-
9 2 files changed, 7 insertions(+), 4 deletions(-)
10
11 diff --git a/config.def.h b/config.def.h
12 index 9efa774..bdddfa5 100644
13 --- a/config.def.h
14 +++ b/config.def.h
15 @@ -26,9 +26,9 @@ static const Rule rules[] = {
16 * WM_CLASS(STRING) = instance, class
17 * WM_NAME(STRING) = title
18 */
19 - /* class instance title tags mask isfloating monitor */
20 - { "Gimp", NULL, NULL, 0, 1, -1 },
21 - { "Firefox", NULL, NULL, 1 << 8, 0, -1 },
22 + /* class instance title tags mask isfloating monitor border width */
23 + { "Gimp", NULL, NULL, 0, 1, -1, -1 },
24 + { "Firefox", NULL, NULL, 1 << 8, 0, -1, 0 },
25 };
26
27 /* layout(s) */
28 diff --git a/dwm.c b/dwm.c
29 index f1d86b2..48403c2 100644
30 --- a/dwm.c
31 +++ b/dwm.c
32 @@ -139,6 +139,7 @@ typedef struct {
33 unsigned int tags;
34 int isfloating;
35 int monitor;
36 + int bw;
37 } Rule;
38
39 /* function declarations */
40 @@ -287,6 +288,7 @@ applyrules(Client *c)
41 /* rule matching */
42 c->isfloating = 0;
43 c->tags = 0;
44 + c->bw = borderpx;
45 XGetClassHint(dpy, c->win, &ch);
46 class = ch.res_class ? ch.res_class : broken;
47 instance = ch.res_name ? ch.res_name : broken;
48 @@ -299,6 +301,8 @@ applyrules(Client *c)
49 {
50 c->isfloating = r->isfloating;
51 c->tags |= r->tags;
52 + if (r->bw != -1)
53 + c->bw = r->bw;
54 for (m = mons; m && m->num != r->monitor; m = m->next);
55 if (m)
56 c->mon = m;
57 @@ -1059,7 +1063,6 @@ manage(Window w, XWindowAttributes *wa)
58 c->y = c->mon->wy + c->mon->wh - HEIGHT(c);
59 c->x = MAX(c->x, c->mon->wx);
60 c->y = MAX(c->y, c->mon->wy);
61 - c->bw = borderpx;
62
63 wc.border_width = c->bw;
64 XConfigureWindow(dpy, w, CWBorderWidth, &wc);
65 --
66 2.43.0
67