From 6539e07bbd39f0f2ed04331121f511d7b28a442f Mon Sep 17 00:00:00 2001 From: Squibid Date: Tue, 11 Feb 2025 15:49:36 -0600 Subject: add keybind to reset mfact and nmaster --- client.h | 2 +- config.def.h | 2 ++ dwl.c | 21 ++++++++++++++++++--- 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/client.h b/client.h index 74ddd2a..2ac6ad0 100644 --- a/client.h +++ b/client.h @@ -323,7 +323,7 @@ client_set_border_color(Client *c, const float color[static 4]) color = floatcolor; else if (selmon->lt[selmon->sellt] == (Layout*)&layouts[2]) color = monoclecolor; - else if (c->isurgent && client_is_mapped(c)) + else if (c->isurgent) color = urgentcolor; else if (!exclusive_focus && !seat->drag) color = focuscolor; diff --git a/config.def.h b/config.def.h index 93beec4..ec2c729 100644 --- a/config.def.h +++ b/config.def.h @@ -136,8 +136,10 @@ static const Key keys[] = { { MODKEY, XKB_KEY_k, focusstack, {.i = -1} }, { MODKEY, XKB_KEY_i, incnmaster, {.i = +1} }, { MODKEY, XKB_KEY_d, incnmaster, {.i = -1} }, + { MODKEY, XKB_KEY_u, incnmaster, {.i = 0} }, { MODKEY, XKB_KEY_h, setmfact, {.f = -0.05f} }, { MODKEY, XKB_KEY_l, setmfact, {.f = +0.05f} }, + { MODKEY, XKB_KEY_semicolon, setmfact, {.f = 0} }, { MODKEY, XKB_KEY_Return, zoom, {0} }, { MODKEY, XKB_KEY_Tab, view, {0} }, { MODKEY, XKB_KEY_g, togglegaps, {0} }, diff --git a/dwl.c b/dwl.c index 7edb3fd..d076e26 100644 --- a/dwl.c +++ b/dwl.c @@ -213,6 +213,7 @@ struct Monitor { int gamma_lut_changed; int nmaster; char ltsymbol[16]; + char *name; int asleep; }; @@ -1085,6 +1086,7 @@ createmon(struct wl_listener *listener, void *data) m->gappx = gappx; m->tagset[0] = m->tagset[1] = 1; for (r = monrules; r < END(monrules); r++) { + m->name = wlr_output->name; if (!r->name || strstr(wlr_output->name, r->name)) { m->m.x = r->x; m->m.y = r->y; @@ -1778,8 +1780,15 @@ handlesig(int signo) void incnmaster(const Arg *arg) { + const MonitorRule *r; + if (!arg || !selmon) return; + if (arg->i == 0) { + for (r = monrules; r < END(monrules); r++) + if (!r->name || strstr(selmon->name, r->name)) + selmon->nmaster = r->nmaster; + } selmon->nmaster = MAX(selmon->nmaster + arg->i, 0); arrange(selmon); } @@ -2570,13 +2579,19 @@ void setmfact(const Arg *arg) { float f; + const MonitorRule *r; if (!arg || !selmon || !selmon->lt[selmon->sellt]->arrange) return; f = arg->f < 1.0f ? arg->f + selmon->mfact : arg->f - 1.0f; - if (f < 0.1 || f > 0.9) - return; - selmon->mfact = f; + if (arg->f == 0) { + for (r = monrules; r < END(monrules); r++) + if (!r->name || strstr(selmon->name, r->name)) + selmon->mfact = r->mfact; + } else if (f > 0.1 || f < 0.9) + selmon->mfact = f; + else + return; arrange(selmon); } -- cgit v1.2.1