chore: some metaworkspace changes

This commit is contained in:
Arthur Khachaturov 2024-08-01 23:46:48 +03:00
parent 88bd704613
commit d6a34a353e
No known key found for this signature in database
GPG key ID: CAC2B7EB6DF45D55
2 changed files with 24 additions and 21 deletions

View file

@ -14,7 +14,7 @@ static const int topbar = 1;
static const char *fonts[] = { "Mononoki Nerd Font:size=12", "Noto Color Emoji:size=11" }; static const char *fonts[] = { "Mononoki Nerd Font:size=12", "Noto Color Emoji:size=11" };
static const char dmenufont[] = "Mononoki Nerd Font:size=12"; static const char dmenufont[] = "Mononoki Nerd Font:size=12";
static const char col_gray1[] = "#3a3a3a"; static const char col_gray1[] = "#3a3a3a";
static const char col_gray2[] = "#5c5c5c"; static const char col_gray2[] = "#4b4b4b";
static const char col_gray3[] = "#bbbbbb"; static const char col_gray3[] = "#bbbbbb";
static const char col_gray4[] = "#eeeeee"; static const char col_gray4[] = "#eeeeee";
static const char col_accent[] = "#db8402"; static const char col_accent[] = "#db8402";
@ -34,9 +34,8 @@ static const unsigned int alphas[][3] = {
}; };
/* tagging */ /* tagging */
static const unsigned int nerdfont_icons = (1 << 8) | (1 << 7);
static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "", "" }; static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "", "" };
static const char *metaworkspaces[] = { "1", "2", "3", "4" }; static const char *metaworkspaces[] = { "", "", "", "" };
static const Rule rules[] = { static const Rule rules[] = {
/* xprop(1): /* xprop(1):
@ -61,9 +60,10 @@ static const int spawnmaster = 0;
#define FORCE_VSPLIT 1 #define FORCE_VSPLIT 1
#include "vanitygaps.c" #include "vanitygaps.c"
static const int draw_ltsymbol = 0;
static const Layout layouts[] = { static const Layout layouts[] = {
/* symbol reverse function */ /* symbol reverse function */
{ "[]=", "=[]", tile }, { "", "", tile },
{ "[/]", "[\\]", dwindle}, { "[/]", "[\\]", dwindle},
{ "[M]", "[M]", monocle }, { "[M]", "[M]", monocle },
{ "><>", "<><", NULL }, { "><>", "<><", NULL },

25
dwm.c
View file

@ -61,8 +61,9 @@
#define WIDTH(X) ((X)->w + 2 * (X)->bw) #define WIDTH(X) ((X)->w + 2 * (X)->bw)
#define HEIGHT(X) ((X)->h + 2 * (X)->bw) #define HEIGHT(X) ((X)->h + 2 * (X)->bw)
#define TAGMASK ((1 << LENGTH(tags)) - 1) #define TAGMASK ((1 << LENGTH(tags)) - 1)
#define TEXTW(X) (drw_fontset_getwidth(drw, (X)) + lrpad) #define TEXTW(X) (drw_fontset_getwidth(drw, (X)) + lrpad + (X[0] > 32 && X[0] < 127 ? 0 : 6))
#define TEXTWN(X) (drw_fontset_getwidth(drw, (X)) + lrpad+6) #define TEXTWN(X) (TEXTW(X))
// #define TEXTWN(X) (TEXTW(X) + 0)
#define OPAQUE 0xffU #define OPAQUE 0xffU
/* enums */ /* enums */
@ -553,7 +554,7 @@ buttonpress(XEvent *e)
do { do {
if (!(occ & 1 << i || m->tagset[m->seltags] & 1 << i)) if (!(occ & 1 << i || m->tagset[m->seltags] & 1 << i))
continue; continue;
x += (1 << i) & nerdfont_icons ? TEXTWN(tags[i]) : TEXTW(tags[i]); x += TEXTW(tags[i]);
} while (ev->x >= x && ++i < LENGTH(tags)); } while (ev->x >= x && ++i < LENGTH(tags));
if (ev->x < TEXTW(mwsymbol)) if (ev->x < TEXTW(mwsymbol))
@ -561,7 +562,7 @@ buttonpress(XEvent *e)
else if (i < LENGTH(tags)) { else if (i < LENGTH(tags)) {
click = ClkTagBar; click = ClkTagBar;
arg.ui = 1 << i; arg.ui = 1 << i;
} else if (ev->x < x + TEXTW(selmon->ltsymbol)) } else if (ev->x < x + TEXTW(selmon->ltsymbol) && draw_ltsymbol)
click = ClkLtSymbol; click = ClkLtSymbol;
else if (ev->x > selmon->ww - (int)TEXTW(stext)) else if (ev->x > selmon->ww - (int)TEXTW(stext))
click = ClkStatusText; click = ClkStatusText;
@ -850,13 +851,14 @@ drawbar(Monitor *m)
urg |= c->tags[metaws]; urg |= c->tags[metaws];
} }
drw_setscheme(drw, scheme[m == selmon ? SchemeSel : SchemeNorm]);
w = TEXTW(mwsymbol); w = TEXTW(mwsymbol);
x = drw_text(drw, x, 0, w, bh, lrpad / 2, mwsymbol, 0); x = drw_text(drw, x, 0, w, bh, lrpad / 2, mwsymbol, 0);
for (i = 0; i < LENGTH(tags); i++) { for (i = 0; i < LENGTH(tags); i++) {
if(!(occ & 1 << i || m->tagset[m->seltags] & 1 << i)) if(!(occ & 1 << i || m->tagset[m->seltags] & 1 << i))
continue; continue;
w = (1 << i) & nerdfont_icons ? TEXTWN(tags[i]) : TEXTW(tags[i]); w = TEXTW(tags[i]);
drw_setscheme(drw, scheme[m->tagset[m->seltags] & 1 << i ? SchemeSel : SchemeNorm]); 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, lrpad / 2, tags[i], urg & 1 << i);
if (occ & 1 << i && m == selmon && if (occ & 1 << i && m == selmon &&
@ -865,15 +867,16 @@ drawbar(Monitor *m)
x += w; x += w;
} }
if (draw_ltsymbol) {
w = TEXTW(m->ltsymbol); w = TEXTW(m->ltsymbol);
drw_setscheme(drw, scheme[SchemeNorm]); drw_setscheme(drw, scheme[SchemeNorm]);
x = drw_text(drw, x, 0, w, bh, lrpad / 2, m->ltsymbol, 0); x = drw_text(drw, x, 0, w, bh, lrpad / 2, m->ltsymbol, 0);
}
if ((w = m->ww - tw - x) > bh) { if ((w = m->ww - tw - x) > bh) {
if (m->sel) { if (m->sel) {
drw_setscheme(drw, scheme[m == selmon ? SchemeSel : SchemeNorm]); drw_setscheme(drw, scheme[SchemeNorm]);
// drw_setscheme(drw, scheme[m == selmon ? SchemeSel : SchemeNorm]);
drw_text(drw, x, 0, w, bh, lrpad / 2, m->sel->name, 0); drw_text(drw, x, 0, w, bh, lrpad / 2, m->sel->name, 0);
if (m->sel->isfloating) if (m->sel->isfloating)
drw_rect(drw, x + boxs, boxs, boxw, boxw, m->sel->isfixed, 0); drw_rect(drw, x + boxs, boxs, boxw, boxw, m->sel->isfixed, 0);
@ -1825,7 +1828,7 @@ setup(void)
scheme = ecalloc(LENGTH(colors), sizeof(Clr *)); scheme = ecalloc(LENGTH(colors), sizeof(Clr *));
for (i = 0; i < LENGTH(colors); i++) for (i = 0; i < LENGTH(colors); i++)
scheme[i] = drw_scm_create(drw, colors[i], alphas[i], 3); scheme[i] = drw_scm_create(drw, colors[i], alphas[i], 3);
snprintf(mwsymbol, LENGTH(mwsymbol), "[%s]", metaworkspaces[metaws]); snprintf(mwsymbol, LENGTH(mwsymbol), "%s", metaworkspaces[metaws]);
/* init bars */ /* init bars */
updatebars(); updatebars();
updatestatus(); updatestatus();
@ -2072,7 +2075,7 @@ traversemetaws(const Arg *arg)
{ {
if (!arg->i) return; if (!arg->i) return;
metaws = (metaws + arg->i + (LENGTH(metaworkspaces))) % LENGTH(metaworkspaces); metaws = (metaws + arg->i + (LENGTH(metaworkspaces))) % LENGTH(metaworkspaces);
snprintf(mwsymbol, LENGTH(mwsymbol), "[%s]", metaworkspaces[metaws]); snprintf(mwsymbol, LENGTH(mwsymbol), "%s", metaworkspaces[metaws]);
focus(NULL); focus(NULL);
arrange(NULL); arrange(NULL);
drawbars(); drawbars();
@ -2407,7 +2410,7 @@ viewmetaws(const Arg *arg)
{ {
if (arg->ui < LENGTH(metaworkspaces)) { if (arg->ui < LENGTH(metaworkspaces)) {
metaws = arg->ui; metaws = arg->ui;
snprintf(mwsymbol, LENGTH(mwsymbol), "[%s]", metaworkspaces[metaws]); snprintf(mwsymbol, LENGTH(mwsymbol), "%s", metaworkspaces[metaws]);
focus(NULL); focus(NULL);
arrange(NULL); arrange(NULL);
drawbars(); drawbars();