added hide vacant tags patch

This commit is contained in:
Bryson Steck 2022-11-06 20:33:40 -07:00
parent 7b657cf04d
commit 89ea6276f5
2 changed files with 13 additions and 8 deletions

View file

@ -27,7 +27,7 @@ static const char *colors[][3] = {
};
/* tagging */
static const char *tags[] = { "!", "@", "#", "$", "%" };
static const char *tags[] = { "!", "@", "#", "$", "%", "^", "*", "(" };
static const Rule rules[] = {
/* xprop(1):
@ -62,7 +62,7 @@ static const Layout layouts[] = {
/* key definitions */
// Mod4Mask is super
// Mod1Mask is alt/meta
#define MODKEY Mod4Mask
#define MODKEY Mod1Mask
#define TAGKEYS(KEY,TAG) \
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \
{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \

17
dwm.c
View file

@ -452,9 +452,15 @@ buttonpress(XEvent *e)
}
if (ev->window == selmon->barwin) {
i = x = 0;
do
unsigned int occ = 0;
for(c = m->clients; c; c=c->next)
occ |= c->tags;
do {
/* Do not reserve space for vacant tags */
if (!(occ & 1 << i || m->tagset[m->seltags] & 1 << i))
continue;
x += TEXTW(tags[i]);
while (ev->x >= x && ++i < LENGTH(tags));
} while (ev->x >= x && ++i < LENGTH(tags));
if (i < LENGTH(tags)) {
click = ClkTagBar;
arg.ui = 1 << i;
@ -763,13 +769,12 @@ drawbar(Monitor *m)
}
x = 0;
for (i = 0; i < LENGTH(tags); i++) {
/* Do not draw vacant tags */
if(!(occ & 1 << i || m->tagset[m->seltags] & 1 << i))
continue;
w = TEXTW(tags[i]);
drw_setscheme(drw, scheme[m->tagset[m->seltags] & 1 << i ? SchemeSel : SchemeNorm]);
drw_text(drw, x, 0, w, bh, lrpad / 2, tags[i], urg & 1 << i);
if (occ & 1 << i)
drw_rect(drw, x + boxs, boxs, boxw, boxw,
m == selmon && selmon->sel && selmon->sel->tags & 1 << i,
urg & 1 << i);
x += w;
}
w = blw = TEXTW(m->ltsymbol);