dwm-resetlayout-6.2.diff - sites - public wiki contents of suckless.org
(HTM) git clone git://git.suckless.org/sites
(DIR) Log
(DIR) Files
(DIR) Refs
---
dwm-resetlayout-6.2.diff (2159B)
---
1 From 4df827a2ec7820f41bdb8576cc39b55fbf35be44 Mon Sep 17 00:00:00 2001
2 From: Jack Bird <jack.bird@durham.ac.uk>
3 Date: Mon, 16 Aug 2021 23:25:16 +0100
4 Subject: [PATCH] Patch applies cleanly
5
6 ---
7 config.def.h | 1 +
8 dwm.c | 15 +++++++++++++++
9 2 files changed, 16 insertions(+)
10
11 diff --git a/config.def.h b/config.def.h
12 index 1c0b587..5d118cf 100644
13 --- a/config.def.h
14 +++ b/config.def.h
15 @@ -70,6 +70,7 @@ static Key keys[] = {
16 { MODKEY, XK_d, incnmaster, {.i = -1 } },
17 { MODKEY, XK_h, setmfact, {.f = -0.05} },
18 { MODKEY, XK_l, setmfact, {.f = +0.05} },
19 + { MODKEY, XK_r, resetlayout, {0} },
20 { MODKEY, XK_Return, zoom, {0} },
21 { MODKEY, XK_Tab, view, {0} },
22 { MODKEY|ShiftMask, XK_c, killclient, {0} },
23 diff --git a/dwm.c b/dwm.c
24 index 4465af1..77727ea 100644
25 --- a/dwm.c
26 +++ b/dwm.c
27 @@ -188,6 +188,7 @@ static void pop(Client *);
28 static void propertynotify(XEvent *e);
29 static void quit(const Arg *arg);
30 static Monitor *recttomon(int x, int y, int w, int h);
31 +static void resetlayout(const Arg *arg);
32 static void resize(Client *c, int x, int y, int w, int h, int interact);
33 static void resizeclient(Client *c, int x, int y, int w, int h);
34 static void resizemouse(const Arg *arg);
35 @@ -1265,6 +1266,16 @@ recttomon(int x, int y, int w, int h)
36 return r;
37 }
38
39 +void
40 +resetlayout(const Arg *arg)
41 +{
42 + Arg default_layout = {.v = &layouts[0]};
43 + Arg default_mfact = {.f = mfact + 1};
44 +
45 + setlayout(&default_layout);
46 + setmfact(&default_mfact);
47 +}
48 +
49 void
50 resize(Client *c, int x, int y, int w, int h, int interact)
51 {
52 @@ -1282,6 +1293,10 @@ resizeclient(Client *c, int x, int y, int w, int h)
53 c->oldw = c->w; c->w = wc.width = w;
54 c->oldh = c->h; c->h = wc.height = h;
55 wc.border_width = c->bw;
56 +
57 + if ((nexttiled(c->mon->clients) == c) && !(nexttiled(c->next)))
58 + resetlayout(NULL);
59 +
60 XConfigureWindow(dpy, c->win, CWX|CWY|CWWidth|CWHeight|CWBorderWidth, &wc);
61 configure(c);
62 XSync(dpy, False);
63 --
64 2.32.0
65