lt will point to a foo-layout during cleanup now (Gottox' suggestion), and togglelayout respects Arg->v - dwm - dynamic window manager
 (HTM) git clone https://git.parazyd.org/dwm
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 38a43c2dcc2c75ece9ef1ac5cd82a8d05c7c519f
 (DIR) parent c56533615f84df801f10dedc4d6ff267e0e8df0a
 (HTM) Author: Anselm R Garbe <garbeam@gmail.com>
       Date:   Wed, 11 Jun 2008 10:25:02 +0100
       
       lt will point to a foo-layout during cleanup now (Gottox' suggestion), and togglelayout respects Arg->v
       Diffstat:
         M dwm.c                               |       7 ++++++-
       
       1 file changed, 6 insertions(+), 1 deletion(-)
       ---
 (DIR) diff --git a/dwm.c b/dwm.c
       @@ -363,8 +363,11 @@ checkotherwm(void) {
        void
        cleanup(void) {
                Arg a = {.i = ~0};
       +        Layout foo = { 0 };
       +
                close(STDIN_FILENO);
                view(&a);
       +        lt = &foo;
                while(stack)
                        unmanage(stack);
                if(dc.font.set)
       @@ -1476,7 +1479,9 @@ togglefloating(const Arg *arg) {
        
        void
        togglelayout(const Arg *arg) {
       -        if(++lt == &layouts[LENGTH(layouts)])
       +        if(arg->v)
       +                lt = (Layout *)arg->v;
       +        else if(++lt == &layouts[LENGTH(layouts)])
                        lt = &layouts[0];
                if(sel)
                        arrange();