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) | |
| download | dwm-d6a6eca71d760fb3b61e35b187b9b9fd51092c71.tar.gz | |
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 d346856..70c245f 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 453da71..c0102b0 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)) { | 
