From d279b4d026e2bcf832fe415ea6243bc1bdfb60a7 Mon Sep 17 00:00:00 2001 From: Adrian Amaglio Date: Wed, 9 Feb 2022 11:50:35 +0100 Subject: [PATCH] tmp --- config.h | 119 ------------------------- dwm-hide_vacant_tags-6.3_untested.diff | 38 ++++++++ 2 files changed, 38 insertions(+), 119 deletions(-) delete mode 100644 config.h create mode 100644 dwm-hide_vacant_tags-6.3_untested.diff diff --git a/config.h b/config.h deleted file mode 100644 index 42380d2..0000000 --- a/config.h +++ /dev/null @@ -1,119 +0,0 @@ -/* See LICENSE file for copyright and license details. */ - -/* appearance */ -static const unsigned int borderpx = 1; /* border pixel of windows */ -static const unsigned int snap = 32; /* snap pixel */ -static const int showbar = 0; /* 0 means no bar */ -static const int topbar = 1; /* 0 means bottom bar */ -static const char *fonts[] = { "monospace:size=10" }; -static const char dmenufont[] = "monospace:size=10"; -static const char col_gray1[] = "#222222"; -static const char col_gray2[] = "#444444"; -static const char col_gray3[] = "#bbbbbb"; -static const char col_gray4[] = "#eeeeee"; -static const char col_cyan[] = "#005577"; -static const char *colors[][3] = { - /* fg bg border */ - [SchemeNorm] = { col_gray3, col_gray1, col_gray2 }, - [SchemeSel] = { col_gray4, col_cyan, col_cyan }, -}; - -/* tagging */ -static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" }; - -static const Rule rules[] = { - /* xprop(1): - * WM_CLASS(STRING) = instance, class - * WM_NAME(STRING) = title - */ - /* class instance title tags mask isfloating monitor */ - { "Firefox", NULL, NULL, 7, 0, -1 }, - { "trayer", NULL, NULL, ~0, True, -1 }, - { "stalonetray", NULL, NULL, ~0, True, -1 } -}; - -/* layout(s) */ -static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */ -static const int nmaster = 1; /* number of clients in master area */ -static const int resizehints = 1; /* 1 means respect size hints in tiled resizals */ -static const int lockfullscreen = 1; /* 1 will force focus on the fullscreen window */ - -static const Layout layouts[] = { - /* symbol arrange function */ - { "[]=", tile }, /* first entry is default */ - { "><>", NULL }, /* no layout function means floating behavior */ - { "[M]", monocle }, -}; - -/* key definitions */ -#define MODKEY Mod4Mask -#define TAGKEYS(KEY,TAG) \ - { MODKEY, KEY, view, {.ui = 1 << TAG} }, \ - { MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \ - { MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \ - { MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} }, -#define HOLDKEY 0xffeb // 0 - disable; 0xffe9 - Mod1Mask; 0xffeb - Mod4Mask - -/* helper for spawning shell commands in the pre dwm-5.0 fashion */ -#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } } - -/* commands */ -static char dmenumon[2] = "0"; /* component of dmenucmd, manipulated in spawn() */ -static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_cyan, "-sf", col_gray4, NULL }; -static const char *termcmd[] = { "st", NULL }; - -static Key keys[] = { - /* modifier key function argument */ - { MODKEY, XK_i, spawn, {.v = dmenucmd } }, - { MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } }, - { MODKEY, XK_b, togglebar, {0} }, - { MODKEY, XK_s, focusstack, {.i = +1 } }, - { MODKEY, XK_r, focusstack, {.i = -1 } }, - { MODKEY|ShiftMask, XK_r, incnmaster, {.i = +1 } }, - { MODKEY|ShiftMask, XK_s, incnmaster, {.i = -1 } }, - { MODKEY|ShiftMask, XK_t, setmfact, {.f = -0.05} }, - { MODKEY|ShiftMask, XK_n, setmfact, {.f = +0.05} }, - //{ MODKEY, XK_Return, zoom, {0} }, - //{ MODKEY, XK_Tab, view, {0} }, - { MODKEY|ShiftMask, XK_b, killclient, {0} }, - { MODKEY, XK_t, setlayout, {.v = &layouts[0]} }, - { MODKEY, XK_f, setlayout, {.v = &layouts[1]} }, - { MODKEY, XK_m, setlayout, {.v = &layouts[2]} }, - { MODKEY, XK_space, setlayout, {0} }, - { MODKEY|ShiftMask, XK_space, togglefloating, {0} }, - { MODKEY, XK_asterisk, view, {.ui = ~0 } }, - { MODKEY|ShiftMask, XK_asterisk, tag, {.ui = ~0 } }, - //{ MODKEY, XK_comma, focusmon, {.i = -1 } }, - //{ MODKEY, XK_period, focusmon, {.i = +1 } }, - //{ MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } }, - //{ MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } }, - TAGKEYS( XK_quotedbl, 0) - TAGKEYS( XK_guillemotleft, 1) - TAGKEYS( XK_guillemotright, 2) - TAGKEYS( XK_parenleft, 3) - TAGKEYS( XK_parenright, 4) - TAGKEYS( XK_at, 5) - TAGKEYS( XK_plus, 6) - TAGKEYS( XK_minus, 7) - TAGKEYS( XK_slash, 8) - { MODKEY|ShiftMask, XK_q, quit, {0} }, - { 0, HOLDKEY, holdbar, {0} }, -}; - -/* button definitions */ -/* click can be ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */ -static Button buttons[] = { - /* click event mask button function argument */ - { ClkLtSymbol, 0, Button1, setlayout, {0} }, - { ClkLtSymbol, 0, Button3, setlayout, {.v = &layouts[2]} }, - { ClkWinTitle, 0, Button2, zoom, {0} }, - { ClkStatusText, 0, Button2, spawn, {.v = termcmd } }, - { ClkClientWin, MODKEY, Button1, movemouse, {0} }, - { ClkClientWin, MODKEY, Button2, togglefloating, {0} }, - { ClkClientWin, MODKEY, Button3, resizemouse, {0} }, - { ClkTagBar, 0, Button1, view, {0} }, - { ClkTagBar, 0, Button3, toggleview, {0} }, - { ClkTagBar, MODKEY, Button1, tag, {0} }, - { ClkTagBar, MODKEY, Button3, toggletag, {0} }, -}; - diff --git a/dwm-hide_vacant_tags-6.3_untested.diff b/dwm-hide_vacant_tags-6.3_untested.diff new file mode 100644 index 0000000..e963211 --- /dev/null +++ b/dwm-hide_vacant_tags-6.3_untested.diff @@ -0,0 +1,38 @@ +diff --git a/dwm.c b/dwm.c +index a96f33c..9d614dc 100644 +--- a/dwm.c ++++ b/dwm.c +@@ -432,8 +432,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)); + if (i < LENGTH(tags)) { + click = ClkTagBar; +@@ -719,13 +726,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);