aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBryson Steck <brysonsteck@protonmail.com>2022-11-06 20:33:40 -0700
committerBryson Steck <brysonsteck@protonmail.com>2022-11-06 20:33:40 -0700
commit89ea6276f5a62cd53d4f145633b0f8a3a74a26b6 (patch)
treeb2d5c5b0c11ef1a9a8ec97f37f079222351fdb6b
parent7b657cf04dafb6e046e041184d88dbf8802f0d15 (diff)
downloaddwm-89ea6276f5a62cd53d4f145633b0f8a3a74a26b6.tar
dwm-89ea6276f5a62cd53d4f145633b0f8a3a74a26b6.tar.gz
dwm-89ea6276f5a62cd53d4f145633b0f8a3a74a26b6.tar.bz2
added hide vacant tags patch
-rw-r--r--config.h4
-rw-r--r--dwm.c17
2 files changed, 13 insertions, 8 deletions
diff --git a/config.h b/config.h
index 2489c4b..352af79 100644
--- a/config.h
+++ b/config.h
@@ -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} }, \
diff --git a/dwm.c b/dwm.c
index 9480e56..faf8d9a 100644
--- a/dwm.c
+++ b/dwm.c
@@ -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);