From 9e4091ea1296cba763acc6b49d5d28e6a3c94146 Mon Sep 17 00:00:00 2001 From: coast Date: Thu, 29 May 2025 22:43:43 +0200 Subject: [PATCH] Upload files to ".suckless/patch" --- .suckless/patch/bar_status.c | 20 +++++++++ .suckless/patch/bar_status.h | 4 ++ .suckless/patch/bar_tagicons.c | 9 ++++ .suckless/patch/bar_tagicons.h | 8 ++++ .suckless/patch/bar_tags.c | 81 ++++++++++++++++++++++++++++++++++ 5 files changed, 122 insertions(+) create mode 100644 .suckless/patch/bar_status.c create mode 100644 .suckless/patch/bar_status.h create mode 100644 .suckless/patch/bar_tagicons.c create mode 100644 .suckless/patch/bar_tagicons.h create mode 100644 .suckless/patch/bar_tags.c diff --git a/.suckless/patch/bar_status.c b/.suckless/patch/bar_status.c new file mode 100644 index 0000000..65595e0 --- /dev/null +++ b/.suckless/patch/bar_status.c @@ -0,0 +1,20 @@ +int +width_status(Bar *bar, BarArg *a) +{ + return TEXTWM(stext); +} + + +int +draw_status(Bar *bar, BarArg *a) +{ + return drw_text(drw, a->x, a->y, a->w, a->h, lrpad / 2, stext, 0, True); +} + + +int +click_status(Bar *bar, Arg *arg, BarArg *a) +{ + return ClkStatusText; +} + diff --git a/.suckless/patch/bar_status.h b/.suckless/patch/bar_status.h new file mode 100644 index 0000000..c580597 --- /dev/null +++ b/.suckless/patch/bar_status.h @@ -0,0 +1,4 @@ +static int width_status(Bar *bar, BarArg *a); +static int draw_status(Bar *bar, BarArg *a); +static int click_status(Bar *bar, Arg *arg, BarArg *a); + diff --git a/.suckless/patch/bar_tagicons.c b/.suckless/patch/bar_tagicons.c new file mode 100644 index 0000000..57d1629 --- /dev/null +++ b/.suckless/patch/bar_tagicons.c @@ -0,0 +1,9 @@ +char * +tagicon(Monitor *m, int tag) +{ + int tagindex = tag + NUMTAGS * m->num; + if (tagindex >= LENGTH(tagicons[DEFAULT_TAGS])) + tagindex = tagindex % LENGTH(tagicons[DEFAULT_TAGS]); + return tagicons[DEFAULT_TAGS][tagindex]; +} + diff --git a/.suckless/patch/bar_tagicons.h b/.suckless/patch/bar_tagicons.h new file mode 100644 index 0000000..16fad2a --- /dev/null +++ b/.suckless/patch/bar_tagicons.h @@ -0,0 +1,8 @@ +enum { + DEFAULT_TAGS, + ALTERNATIVE_TAGS, + ALT_TAGS_DECORATION, +}; + +static char * tagicon(Monitor *m, int tag); + diff --git a/.suckless/patch/bar_tags.c b/.suckless/patch/bar_tags.c new file mode 100644 index 0000000..8aa37b2 --- /dev/null +++ b/.suckless/patch/bar_tags.c @@ -0,0 +1,81 @@ +int +width_tags(Bar *bar, BarArg *a) +{ + int w, i; + Client *c; + unsigned int occ = 0; + for (c = bar->mon->clients; c; c = c->next) + occ |= c->tags == 255 ? 0 : c->tags; + + for (w = 0, i = 0; i < NUMTAGS; i++) { + if (!(occ & 1 << i || bar->mon->tagset[bar->mon->seltags] & 1 << i)) + continue; + w += TEXTW(tagicon(bar->mon, i)); + } + return w; +} + +int +draw_tags(Bar *bar, BarArg *a) +{ + int invert; + int w, x = a->x; + unsigned int i, occ = 0, urg = 0; + char *icon; + Client *c; + Monitor *m = bar->mon; + + for (c = m->clients; c; c = c->next) { + occ |= c->tags == 255 ? 0 : c->tags; + if (c->isurgent) + urg |= c->tags; + } + for (i = 0; i < NUMTAGS; i++) { + /* do not draw vacant tags */ + if (!(occ & 1 << i || m->tagset[m->seltags] & 1 << i)) + continue; + + icon = tagicon(bar->mon, i); + invert = 0; + w = TEXTW(icon); + drw_setscheme(drw, scheme[ + m->tagset[m->seltags] & 1 << i + ? SchemeTagsSel + : urg & 1 << i + ? SchemeUrg + : SchemeTagsNorm + ]); + drw_text(drw, x, a->y, w, a->h, lrpad / 2, icon, invert, False); + drawindicator(m, NULL, occ, x, a->y, w, a->h, i, -1, invert, tagindicatortype); + x += w; + } + + return 1; +} + +int +click_tags(Bar *bar, Arg *arg, BarArg *a) +{ + int i = 0, x = 0; + Client *c; + unsigned int occ = 0; + for (c = bar->mon->clients; c; c = c->next) + occ |= c->tags == 255 ? 0 : c->tags; + + do { + if (!(occ & 1 << i || bar->mon->tagset[bar->mon->seltags] & 1 << i)) + continue; + x += TEXTW(tagicon(bar->mon, i)); + } while (a->x >= x && ++i < NUMTAGS); + if (i < NUMTAGS) { + arg->ui = 1 << i; + } + return ClkTagBar; +} + +int +hover_tags(Bar *bar, BarArg *a, XMotionEvent *ev) +{ + + return 1; +}