dwm

dynamic window manager
git clone git://git.suckless.org/dwm
Log | Files | Refs | README | LICENSE

commit d6a6eca71d760fb3b61e35b187b9b9fd51092c71
parent 39ffc18635686b1a65cd80d19828c4fe2aed982f
Author: Anselm R. Garbe <arg@10kloc.org>
Date:   Wed, 23 Aug 2006 12:08:37 +0200

implemented class:inst:title matching
Diffstat:
Mconfig.arg.h | 2+-
Mconfig.default.h | 6+++---
Mtag.c | 8++++----
3 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/config.arg.h b/config.arg.h @@ -46,7 +46,7 @@ static Key key[] = { \ #define RULES \ static Rule rule[] = { \ - /* class:instance regex tags regex isfloat */ \ + /* class:instance:title regex tags regex isfloat */ \ { "Firefox.*", "net", False }, \ { "Gimp.*", NULL, True}, \ { "MPlayer.*", NULL, True}, \ diff --git a/config.default.h b/config.default.h @@ -47,11 +47,11 @@ static Key key[] = { \ { MODKEY|ShiftMask, XK_q, quit, { 0 } }, \ }; -/* Query class:instance for regex matching info with following command: - * xprop | awk -F'"' '/^WM_CLASS/ { printf "%s:%s\n", $4, $2 }'*/ +/* Query class:instance:title for regex matching info with following command: + * xprop | awk -F '"' '/^WM_CLASS/ { printf("%s:%s:",$4,$2) }; /^WM_NAME/{ printf("%s\n",$2) }' */ #define RULES \ static Rule rule[] = { \ - /* class:instance regex tags regex isfloat */ \ + /* class:instance:title regex tags regex isfloat */ \ { "Firefox.*", "2", False }, \ { "Gimp.*", NULL, True}, \ }; diff --git a/tag.c b/tag.c @@ -78,18 +78,18 @@ initrregs() void settags(Client *c) { - char classinst[256]; + char prop[512]; unsigned int i, j; regmatch_t tmp; Bool matched = False; XClassHint ch; if(XGetClassHint(dpy, c->win, &ch)) { - snprintf(classinst, sizeof(classinst), "%s:%s", + snprintf(prop, sizeof(prop), "%s:%s:%s", ch.res_class ? ch.res_class : "", - ch.res_name ? ch.res_name : ""); + ch.res_name ? ch.res_name : "", c->name); for(i = 0; !matched && i < len; i++) - if(rreg[i].clregex && !regexec(rreg[i].clregex, classinst, 1, &tmp, 0)) { + if(rreg[i].clregex && !regexec(rreg[i].clregex, prop, 1, &tmp, 0)) { c->isfloat = rule[i].isfloat; for(j = 0; rreg[i].tregex && j < ntags; j++) { if(!regexec(rreg[i].tregex, tags[j], 1, &tmp, 0)) {