Introduction
Introduction Statistics Contact Development Disclaimer Help
dwm-rulerefresher-6.2.diff - sites - public wiki contents of suckless.org
git clone git://git.suckless.org/sites
Log
Files
Refs
---
dwm-rulerefresher-6.2.diff (2156B)
---
1 From 5728e3bc46ef38cfcc0f2cbf04626a28ecc57379 Mon Sep 17 00:00:00 2001
2 From: Lars Niesen <[email protected]>
3 Date: Thu, 9 Dec 2021 13:40:17 +0100
4 Subject: [PATCH] rulerefresher
5
6 ---
7 dwm.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++
8 1 file changed, 50 insertions(+)
9
10 diff --git a/dwm.c b/dwm.c
11 index 4465af1..5f8ba9c 100644
12 --- a/dwm.c
13 +++ b/dwm.c
14 @@ -223,6 +223,7 @@ static int updategeom(void);
15 static void updatenumlockmask(void);
16 static void updatesizehints(Client *c);
17 static void updatestatus(void);
18 +static void updaterules(Client *c);
19 static void updatetitle(Client *c);
20 static void updatewindowtype(Client *c);
21 static void updatewmhints(Client *c);
22 @@ -1237,6 +1238,7 @@ propertynotify(XEvent *e)
23 }
24 if (ev->atom == XA_WM_NAME || ev->atom == netatom[NetWM…
25 updatetitle(c);
26 + updaterules(c);
27 if (c == c->mon->sel)
28 drawbar(c->mon);
29 }
30 @@ -1992,6 +1994,54 @@ updatestatus(void)
31 drawbar(selmon);
32 }
33
34 +void
35 +updaterules(Client *c)
36 +{
37 + //applyrules(c)
38 + const char *class, *instance;
39 + unsigned int i;
40 + const Rule *r;
41 + Monitor *m;
42 + XClassHint ch = { NULL, NULL };
43 +
44 + /* rule matching */
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 + char found_rule = 0;
49 +
50 + for (i = 0; i < LENGTH(rules); i++) {
51 + r = &rules[i];
52 + if ((!r->title || strstr(c->name, r->title))
53 + && (!r->class || strstr(class, r->class))
54 + && (!r->instance || strstr(instance, r->instance)))
55 + {
56 + c->isfloating = r->isfloating;
57 +
58 + if(!found_rule)
59 + {
60 + c->tags=0;
61 + found_rule=1;
62 + }
63 + c->tags |= r->tags;
64 + for (m = mons; m && m->num != r->monitor; m = m->next);
65 + if (m)
66 + c->mon = m;
67 + }
68 + }
69 + if (ch.res_class)
70 + XFree(ch.res_class);
71 + if (ch.res_name)
72 + XFree(ch.res_name);
73 + c->tags = c->tags & TAGMASK ? c->tags & TAGMASK : c->mon->tagse…
74 +
75 + // end apply rules
76 + if (c->isfloating)
77 + resize(c, c->x, c->y,
78 + c->w, c->h, 0);
79 + arrange(c->mon);
80 +}
81 +
82 void
83 updatetitle(Client *c)
84 {
85 --
86 2.34.1
87
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.