12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- From 25aa44b5998a2aac840a0eecf9d8a479695b2577 Mon Sep 17 00:00:00 2001
- From: Piyush Pangtey <gokuvsvegita@gmail.com>
- Date: Sat, 13 Apr 2019 00:24:23 +0530
- Subject: [PATCH] alternative tags
- Having icons as tags sure makes dwm look awesome, but having tags number
- simplifies tags related operations. This patch introduces alternative
- tags which can be switched on the fly for the sole purpose of providing
- visual aid.
- Signed-off-by: Piyush Pangtey <gokuvsvegita@gmail.com>
- ---
- config.def.h | 2 ++
- dwm.c | 14 ++++++++++++--
- 2 files changed, 14 insertions(+), 2 deletions(-)
- diff --git a/config.def.h b/config.def.h
- index 1c0b587..e6c2565 100644
- --- a/config.def.h
- +++ b/config.def.h
- @@ -20,6 +20,7 @@ static const char *colors[][3] = {
-
- /* tagging */
- static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
- +static const char *tagsalt[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
-
- static const Rule rules[] = {
- /* xprop(1):
- @@ -84,6 +85,7 @@ static Key keys[] = {
- { MODKEY, XK_period, focusmon, {.i = +1 } },
- { MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } },
- { MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } },
- + { MODKEY, XK_n, togglealttag, {0} },
- TAGKEYS( XK_1, 0)
- TAGKEYS( XK_2, 1)
- TAGKEYS( XK_3, 2)
- diff --git a/dwm.c b/dwm.c
- index 4465af1..ee292e1 100644
- --- a/dwm.c
- +++ b/dwm.c
- @@ -130,6 +130,7 @@ struct Monitor {
- Monitor *next;
- Window barwin;
- const Layout *lt[2];
- + unsigned int alttag;
- };
-
- typedef struct {
- @@ -209,6 +210,7 @@ static void spawn(const Arg *arg);
- static void tag(const Arg *arg);
- static void tagmon(const Arg *arg);
- static void tile(Monitor *);
- +static void togglealttag();
- static void togglebar(const Arg *arg);
- static void togglefloating(const Arg *arg);
- static void toggletag(const Arg *arg);
- @@ -695,7 +697,7 @@ dirtomon(int dir)
- void
- drawbar(Monitor *m)
- {
- - int x, w, sw = 0;
- + int x, w, wdelta, sw = 0;
- int boxs = drw->fonts->h / 9;
- int boxw = drw->fonts->h / 6 + 2;
- unsigned int i, occ = 0, urg = 0;
- @@ -716,8 +718,9 @@ drawbar(Monitor *m)
- x = 0;
- for (i = 0; i < LENGTH(tags); i++) {
- w = TEXTW(tags[i]);
- + wdelta = selmon->alttag ? abs(TEXTW(tags[i]) - TEXTW(tagsalt[i])) / 2 : 0;
- 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);
- + drw_text(drw, x, 0, w, bh, wdelta + lrpad / 2, (selmon->alttag ? tagsalt[i] : 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,
- @@ -1696,6 +1699,13 @@ tile(Monitor *m)
- }
- }
-
- +void
- +togglealttag()
- +{
- + selmon->alttag = !selmon->alttag;
- + drawbar(selmon);
- +}
- +
- void
- togglebar(const Arg *arg)
- {
- --
- 2.21.0
|