diff options
author | Anselm R. Garbe <arg@10kloc.org> | 2006-08-23 12:08:37 +0200 |
---|---|---|
committer | Anselm R. Garbe <arg@10kloc.org> | 2006-08-23 12:08:37 +0200 |
commit | d6a6eca71d760fb3b61e35b187b9b9fd51092c71 (patch) | |
tree | 40416b29fb7df46aa8f35a4201a49dd73d66840b | |
parent | 39ffc18635686b1a65cd80d19828c4fe2aed982f (diff) |
implemented class:inst:title matching
-rw-r--r-- | config.arg.h | 2 | ||||
-rw-r--r-- | config.default.h | 6 | ||||
-rw-r--r-- | tag.c | 8 |
3 files changed, 8 insertions, 8 deletions
diff --git a/config.arg.h b/config.arg.h index d346856e..70c245f3 100644 --- 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 index 453da71d..c0102b07 100644 --- 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}, \ }; @@ -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)) { |