diff options
author | Squibid <me@zacharyscheiman.com> | 2025-02-11 15:49:36 -0600 |
---|---|---|
committer | Squibid <me@zacharyscheiman.com> | 2025-02-11 21:03:55 -0600 |
commit | 6539e07bbd39f0f2ed04331121f511d7b28a442f (patch) | |
tree | ec36b858b680bac384d2802f50704031b7efb4f5 | |
parent | d06ea7dcb8d51bf7cff3800dcfcd7ae852e3cb7f (diff) | |
download | dwl-6539e07bbd39f0f2ed04331121f511d7b28a442f.tar.gz dwl-6539e07bbd39f0f2ed04331121f511d7b28a442f.tar.bz2 dwl-6539e07bbd39f0f2ed04331121f511d7b28a442f.zip |
add keybind to reset mfact and nmaster
-rw-r--r-- | client.h | 2 | ||||
-rw-r--r-- | config.def.h | 2 | ||||
-rw-r--r-- | dwl.c | 21 |
3 files changed, 21 insertions, 4 deletions
@@ -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} }, @@ -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); } |