implemented class:inst:title matching
This commit is contained in:
		
							parent
							
								
									39ffc18635
								
							
						
					
					
						commit
						d6a6eca71d
					
				| @ -46,7 +46,7 @@ static Key key[] = { \ | |||||||
| 
 | 
 | ||||||
| #define RULES \ | #define RULES \ | ||||||
| static Rule rule[] = { \ | static Rule rule[] = { \ | ||||||
| 	/* class:instance regex		tags regex	isfloat */ \ | 	/* class:instance:title regex	tags regex	isfloat */ \ | ||||||
| 	{ "Firefox.*",			"net",		False }, \ | 	{ "Firefox.*",			"net",		False }, \ | ||||||
| 	{ "Gimp.*",			NULL,		True}, \ | 	{ "Gimp.*",			NULL,		True}, \ | ||||||
| 	{ "MPlayer.*",			NULL,		True}, \ | 	{ "MPlayer.*",			NULL,		True}, \ | ||||||
|  | |||||||
| @ -47,11 +47,11 @@ static Key key[] = { \ | |||||||
| 	{ MODKEY|ShiftMask,		XK_q,		quit,		{ 0 } }, \ | 	{ MODKEY|ShiftMask,		XK_q,		quit,		{ 0 } }, \ | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| /* Query class:instance for regex matching info with following command:
 | /* Query class:instance:title for regex matching info with following command:
 | ||||||
|  * xprop | awk -F'"' '/^WM_CLASS/ { printf "%s:%s\n", $4, $2 }'*/ |  * xprop | awk -F '"' '/^WM_CLASS/ { printf("%s:%s:",$4,$2) }; /^WM_NAME/{ printf("%s\n",$2) }' */ | ||||||
| #define RULES \ | #define RULES \ | ||||||
| static Rule rule[] = { \ | static Rule rule[] = { \ | ||||||
| 	/* class:instance regex		tags regex	isfloat */ \ | 	/* class:instance:title regex	tags regex	isfloat */ \ | ||||||
| 	{ "Firefox.*",			"2",		False }, \ | 	{ "Firefox.*",			"2",		False }, \ | ||||||
| 	{ "Gimp.*",			NULL,		True}, \ | 	{ "Gimp.*",			NULL,		True}, \ | ||||||
| }; | }; | ||||||
|  | |||||||
							
								
								
									
										8
									
								
								tag.c
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								tag.c
									
									
									
									
									
								
							| @ -78,18 +78,18 @@ initrregs() | |||||||
| void | void | ||||||
| settags(Client *c) | settags(Client *c) | ||||||
| { | { | ||||||
| 	char classinst[256]; | 	char prop[512]; | ||||||
| 	unsigned int i, j; | 	unsigned int i, j; | ||||||
| 	regmatch_t tmp; | 	regmatch_t tmp; | ||||||
| 	Bool matched = False; | 	Bool matched = False; | ||||||
| 	XClassHint ch; | 	XClassHint ch; | ||||||
| 
 | 
 | ||||||
| 	if(XGetClassHint(dpy, c->win, &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_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++) | 		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; | 				c->isfloat = rule[i].isfloat; | ||||||
| 				for(j = 0; rreg[i].tregex && j < ntags; j++) { | 				for(j = 0; rreg[i].tregex && j < ntags; j++) { | ||||||
| 					if(!regexec(rreg[i].tregex, tags[j], 1, &tmp, 0)) { | 					if(!regexec(rreg[i].tregex, tags[j], 1, &tmp, 0)) { | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user