diff -r -u a/config.def.h b/config.def.h --- a/config.def.h 2022-01-07 06:42:18.000000000 -0500 +++ b/config.def.h 2022-01-17 22:23:37.414513490 -0500 @@ -69,6 +69,7 @@ { MODKEY, XK_k, focusstack, {.i = -1 } }, { MODKEY, XK_i, incnmaster, {.i = +1 } }, { MODKEY, XK_d, incnmaster, {.i = -1 } }, + { MODKEY, XK_o, resetnmaster, {0} }, { MODKEY, XK_h, setmfact, {.f = -0.05} }, { MODKEY, XK_l, setmfact, {.f = +0.05} }, { MODKEY, XK_Return, zoom, {0} }, diff -r -u a/dwm.c b/dwm.c --- a/dwm.c 2022-01-07 06:42:18.000000000 -0500 +++ b/dwm.c 2022-01-17 22:25:05.850511492 -0500 @@ -189,6 +189,7 @@ static void propertynotify(XEvent *e); static void quit(const Arg *arg); static Monitor *recttomon(int x, int y, int w, int h); +static void resetnmaster(const Arg *arg); static void resize(Client *c, int x, int y, int w, int h, int interact); static void resizeclient(Client *c, int x, int y, int w, int h); static void resizemouse(const Arg *arg); @@ -1270,6 +1271,13 @@ } void +resetnmaster(const Arg *arg) +{ + selmon->nmaster = 1; + arrange(selmon); +} + +void resize(Client *c, int x, int y, int w, int h, int interact) { if (applysizehints(c, &x, &y, &w, &h, interact))