XGetClassHint(dpy, c->win, &ch);
for(i = 0; i < LENGTH(rules); i++) {
r = &rules[i];
- if(r->title && strstr(c->name, r->title)
+ if((r->title && strstr(c->name, r->title))
|| (ch.res_class && r->class && strstr(ch.res_class, r->class))
|| (ch.res_name && r->instance && strstr(ch.res_name, r->instance)))
{
Client *c;
dc.x = 0;
- dc.w = bgw;
- drawtext(geom->symbol, dc.norm, False);
- dc.x += bgw;
+ if(bgw > 0) {
+ dc.w = bgw;
+ drawtext(geom->symbol, dc.norm, False);
+ dc.x += bgw;
+ }
for(c = stack; c && !isvisible(c); c = c->snext);
for(i = 0; i < LENGTH(tags); i++) {
dc.w = textw(tags[i]);
}
dc.x += dc.w;
}
- dc.w = blw;
- drawtext(lt->symbol, dc.norm, False);
- x = dc.x + dc.w;
+ if(blw > 0) {
+ dc.w = blw;
+ drawtext(lt->symbol, dc.norm, False);
+ x = dc.x + dc.w;
+ }
+ else
+ x = dc.x;
dc.w = textw(stext);
dc.x = bw - dc.w;
if(dc.x < x) {
idxoftag(const char *t) {
unsigned int i;
- for(i = 0; (i < LENGTH(tags)) && strcmp(tags[i], t); i++);
+ for(i = 0; (i < LENGTH(tags)) && t && strcmp(tags[i], t); i++);
return (i < LENGTH(tags)) ? i : 0;
}
void
setup(void) {
- unsigned int i;
+ unsigned int i, w;
XSetWindowAttributes wa;
/* init screen */
lt = &layouts[0];
/* init bar */
- for(blw = i = 0; i < LENGTH(layouts); i++) {
- i = textw(layouts[i].symbol);
- if(i > blw)
- blw = i;
+ for(blw = i = 0; LENGTH(layouts) > 1 && i < LENGTH(layouts); i++) {
+ w = textw(layouts[i].symbol);
+ if(w > blw)
+ blw = w;
}
- for(bgw = i = 0; i < LENGTH(geoms); i++) {
- i = textw(geoms[i].symbol);
- if(i > bgw)
- bgw = i;
+ for(bgw = i = 0; LENGTH(geoms) > 1 && i < LENGTH(geoms); i++) {
+ w = textw(geoms[i].symbol);
+ if(w > bgw)
+ bgw = w;
}
wa.override_redirect = 1;