sites

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

commit 51496b2d44d97c74cbd862f921f6f2cfaa53a9f8
parent 43e1996fbd6f3bec8264baa47fdca9d53699e9c3
Author: Lars Niesen <lars.niesen@gmx.de>
Date:   Thu,  9 Dec 2021 13:47:54 +0100

fixed bug in patch (window does not stay on tags without rule)

Diffstat:
Mdwm.suckless.org/patches/rulerefresher/dwm-rulerefresher-6.2.diff | 54++++++++++++++++++++++++++++++++++++++++++++++--------
Mdwm.suckless.org/patches/rulerefresher/index.md | 2+-
2 files changed, 47 insertions(+), 9 deletions(-)

diff --git a/dwm.suckless.org/patches/rulerefresher/dwm-rulerefresher-6.2.diff b/dwm.suckless.org/patches/rulerefresher/dwm-rulerefresher-6.2.diff @@ -1,14 +1,14 @@ -From 94b9518be54da9c52d59465f41c403c6e35efb9f Mon Sep 17 00:00:00 2001 +From 5728e3bc46ef38cfcc0f2cbf04626a28ecc57379 Mon Sep 17 00:00:00 2001 From: Lars Niesen <lars.niesen@gmx.de> -Date: Fri, 3 Dec 2021 12:15:04 +0100 -Subject: [PATCH] rerun rules on window name chage +Date: Thu, 9 Dec 2021 13:40:17 +0100 +Subject: [PATCH] rulerefresher --- - dwm.c | 12 ++++++++++++ - 1 file changed, 12 insertions(+) + dwm.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 50 insertions(+) diff --git a/dwm.c b/dwm.c -index 4465af1..8fab7e3 100644 +index 4465af1..5f8ba9c 100644 --- a/dwm.c +++ b/dwm.c @@ -223,6 +223,7 @@ static int updategeom(void); @@ -27,14 +27,52 @@ index 4465af1..8fab7e3 100644 if (c == c->mon->sel) drawbar(c->mon); } -@@ -1992,6 +1994,16 @@ updatestatus(void) +@@ -1992,6 +1994,54 @@ updatestatus(void) drawbar(selmon); } +void +updaterules(Client *c) +{ -+ applyrules(c); ++ //applyrules(c) ++ const char *class, *instance; ++ unsigned int i; ++ const Rule *r; ++ Monitor *m; ++ XClassHint ch = { NULL, NULL }; ++ ++ /* rule matching */ ++ XGetClassHint(dpy, c->win, &ch); ++ class = ch.res_class ? ch.res_class : broken; ++ instance = ch.res_name ? ch.res_name : broken; ++ char found_rule = 0; ++ ++ for (i = 0; i < LENGTH(rules); i++) { ++ r = &rules[i]; ++ if ((!r->title || strstr(c->name, r->title)) ++ && (!r->class || strstr(class, r->class)) ++ && (!r->instance || strstr(instance, r->instance))) ++ { ++ c->isfloating = r->isfloating; ++ ++ if(!found_rule) ++ { ++ c->tags=0; ++ found_rule=1; ++ } ++ c->tags |= r->tags; ++ for (m = mons; m && m->num != r->monitor; m = m->next); ++ if (m) ++ c->mon = m; ++ } ++ } ++ if (ch.res_class) ++ XFree(ch.res_class); ++ if (ch.res_name) ++ XFree(ch.res_name); ++ c->tags = c->tags & TAGMASK ? c->tags & TAGMASK : c->mon->tagset[c->mon->seltags]; ++ ++ // end apply rules + if (c->isfloating) + resize(c, c->x, c->y, + c->w, c->h, 0); diff --git a/dwm.suckless.org/patches/rulerefresher/index.md b/dwm.suckless.org/patches/rulerefresher/index.md @@ -17,7 +17,7 @@ With this patch the rules are reapplied after the rename. Download -------- -* [dwm-rulerefresher-6.2.diff](dwm-rulerefresher-6.2.diff)(2021-12-03) +* [dwm-rulerefresher-6.2.diff](dwm-rulerefresher-6.2.diff)(2021-12-09) Author ------