commit 38724a4c46f34996ac019567db9e4bbe95344ce4
Author: Jack Bird <[email protected]>
Date:   Mon Aug 16 23:47:44 2021 +0100

    [dwm][patch][resetlayout] Updated patch so it can be cleanly applied
    
    Patch works from 6.2 onwards, the patch already supplied cannot be applied
    with `git apply` so this just adds a correctly formatted patch.

diff --git a/dwm.suckless.org/patches/resetlayout/dwm-resetlayout-6.2.diff 
b/dwm.suckless.org/patches/resetlayout/dwm-resetlayout-6.2.diff
new file mode 100644
index 00000000..08747adf
--- /dev/null
+++ b/dwm.suckless.org/patches/resetlayout/dwm-resetlayout-6.2.diff
@@ -0,0 +1,65 @@
+From 4df827a2ec7820f41bdb8576cc39b55fbf35be44 Mon Sep 17 00:00:00 2001
+From: Jack Bird <[email protected]>
+Date: Mon, 16 Aug 2021 23:25:16 +0100
+Subject: [PATCH] Patch applies cleanly
+
+---
+ config.def.h |  1 +
+ dwm.c        | 15 +++++++++++++++
+ 2 files changed, 16 insertions(+)
+
+diff --git a/config.def.h b/config.def.h
+index 1c0b587..5d118cf 100644
+--- a/config.def.h
++++ b/config.def.h
+@@ -70,6 +70,7 @@ static Key keys[] = {
+       { MODKEY,                       XK_d,      incnmaster,     {.i = -1 } },
+       { MODKEY,                       XK_h,      setmfact,       {.f = -0.05} 
},
+       { MODKEY,                       XK_l,      setmfact,       {.f = +0.05} 
},
++    { MODKEY,                       XK_r,      resetlayout,    {0} },
+       { MODKEY,                       XK_Return, zoom,           {0} },
+       { MODKEY,                       XK_Tab,    view,           {0} },
+       { MODKEY|ShiftMask,             XK_c,      killclient,     {0} },
+diff --git a/dwm.c b/dwm.c
+index 4465af1..77727ea 100644
+--- a/dwm.c
++++ b/dwm.c
+@@ -188,6 +188,7 @@ static void pop(Client *);
+ static void propertynotify(XEvent *e);
+ static void quit(const Arg *arg);
+ static Monitor *recttomon(int x, int y, int w, int h);
++static void resetlayout(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);
+@@ -1265,6 +1266,16 @@ recttomon(int x, int y, int w, int h)
+       return r;
+ }
+ 
++void
++resetlayout(const Arg *arg)
++{
++      Arg default_layout = {.v = &layouts[0]};
++      Arg default_mfact = {.f = mfact + 1};
++
++      setlayout(&default_layout);
++      setmfact(&default_mfact);
++}
++
+ void
+ resize(Client *c, int x, int y, int w, int h, int interact)
+ {
+@@ -1282,6 +1293,10 @@ resizeclient(Client *c, int x, int y, int w, int h)
+       c->oldw = c->w; c->w = wc.width = w;
+       c->oldh = c->h; c->h = wc.height = h;
+       wc.border_width = c->bw;
++
++    if ((nexttiled(c->mon->clients) == c) && !(nexttiled(c->next)))
++              resetlayout(NULL);
++
+       XConfigureWindow(dpy, c->win, CWX|CWY|CWWidth|CWHeight|CWBorderWidth, 
&wc);
+       configure(c);
+       XSync(dpy, False);
+-- 
+2.32.0
+


Reply via email to