Adding nametag patch
parent
91cb32c3ed
commit
c438eabdc2
@ -0,0 +1,61 @@
|
||||
void
|
||||
nametag(const Arg *arg)
|
||||
{
|
||||
char *p, name[MAX_TAGLEN];
|
||||
FILE *f;
|
||||
int i, group;
|
||||
int tagindex;
|
||||
Monitor *m = selmon;
|
||||
#if BAR_ALTTAGSDECORATION_PATCH
|
||||
Client *c;
|
||||
int occ = 0;
|
||||
|
||||
for (c = m->clients; c; c = c->next)
|
||||
occ |= c->tags == 255 ? 0 : c->tags;
|
||||
#endif // BAR_ALTTAGSDECORATION_PATCH
|
||||
|
||||
errno = 0; // popen(3p) says on failure it "may" set errno
|
||||
if (!(f = popen(NAMETAG_COMMAND, "r"))) {
|
||||
fprintf(stderr, "dwm: popen command failed%s%s\n", errno ? ": " : "", errno ? strerror(errno) : "");
|
||||
return;
|
||||
}
|
||||
|
||||
if (!(p = fgets(name, MAX_TAGLEN, f)) && (i = errno) && ferror(f))
|
||||
fprintf(stderr, "dwm: fgets failed: %s\n", strerror(i));
|
||||
|
||||
pclose(f);
|
||||
|
||||
if (!p)
|
||||
return;
|
||||
if ((p = strchr(name, '\n')))
|
||||
*p = '\0';
|
||||
|
||||
for (i = 0; i < NUMTAGS; i++) {
|
||||
if (m->tagset[m->seltags] & (1 << i)) {
|
||||
|
||||
tagindex = i + NUMTAGS * m->num;
|
||||
if (tagindex >= LENGTH(tagicons[DEFAULT_TAGS]))
|
||||
tagindex = tagindex % LENGTH(tagicons[DEFAULT_TAGS]);
|
||||
|
||||
#if BAR_ALTTAGSDECORATION_PATCH
|
||||
if (occ & 1 << i)
|
||||
group = ALT_TAGS_DECORATION;
|
||||
else
|
||||
#endif // BAR_ALTTAGSDECORATION_PATCH
|
||||
#if BAR_ALTERNATIVE_TAGS_PATCH
|
||||
if (m->alttag)
|
||||
group = ALTERNATIVE_TAGS;
|
||||
else
|
||||
#endif // BAR_ALTERNATIVE_TAGS_PATCH
|
||||
group = DEFAULT_TAGS;
|
||||
|
||||
#if NAMETAG_PREPEND_PATCH
|
||||
if (snprintf(tagicons[group][i], MAX_TAGLEN, NAMETAG_FORMAT, i+1, name) < 0)
|
||||
fprintf(stderr, "nametag: if statement to avoid -Wformat-truncation= warnings\n");
|
||||
#else
|
||||
snprintf(tagicons[group][i], MAX_TAGLEN, NAMETAG_FORMAT, name);
|
||||
#endif // NAMETAG_PREPEND_PATCH
|
||||
}
|
||||
}
|
||||
drawbars();
|
||||
}
|
@ -0,0 +1 @@
|
||||
static void nametag(const Arg *arg);
|
Loading…
Reference in New Issue