diff -up dwm-6.5_winview+gaplessgrid/config.def.h dwm-6.5_gridall/config.def.h --- dwm-6.5_winview+gaplessgrid/config.def.h 2025-06-13 08:46:42.388851558 -0300 +++ dwm-6.5_gridall/config.def.h 2025-06-13 08:50:53.706890303 -0300 @@ -98,6 +98,8 @@ static const Key keys[] = { TAGKEYS( XK_9, 8) { MODKEY|ShiftMask, XK_q, quit, {0} }, { MODKEY, XK_o, winview, {0} }, + { MODKEY, XK_g, gridall, {} }, + { MODKEY, XK_r, winviewmono, {} }, }; /* button definitions */ diff -up dwm-6.5_winview+gaplessgrid/dwm.c dwm-6.5_gridall/dwm.c --- dwm-6.5_winview+gaplessgrid/dwm.c 2025-06-13 08:55:19.724867025 -0300 +++ dwm-6.5_gridall/dwm.c 2025-06-13 08:49:14.708874297 -0300 @@ -234,6 +234,8 @@ static int xerror(Display *dpy, XErrorEv static int xerrordummy(Display *dpy, XErrorEvent *ee); static int xerrorstart(Display *dpy, XErrorEvent *ee); static void zoom(const Arg *arg); +static void gridall(const Arg *arg); +static void winviewmono(const Arg *arg); /* variables */ static const char broken[] = "broken"; @@ -2113,6 +2115,21 @@ winview(const Arg* arg){ view(&a); } +/* by desgua */ +void +gridall(const Arg *arg) +{ + setlayout(&(Arg){.v = &layouts[3]}); + view(&(Arg){.ui = ~0}); +} + +void +winviewmono(const Arg *arg) +{ + winview(&(Arg){0}); + setlayout(&(Arg){.v = &layouts[2]}); +} + /* There's no way to check accesses to destroyed windows, thus those cases are * ignored (especially on UnmapNotify's). Other types of errors call Xlibs * default error handler, which may call exit. */