dwm-resetlayout-6.2.diff - sites - public wiki contents of suckless.org | |
git clone git://git.suckless.org/sites | |
Log | |
Files | |
Refs | |
--- | |
dwm-resetlayout-6.2.diff (2159B) | |
--- | |
1 From 4df827a2ec7820f41bdb8576cc39b55fbf35be44 Mon Sep 17 00:00:00 2001 | |
2 From: Jack Bird <[email protected]> | |
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 … | |
17 { MODKEY, XK_h, setmfact, {.f … | |
18 { MODKEY, XK_l, setmfact, {.f … | |
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 … | |
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|CWBorder… | |
61 configure(c); | |
62 XSync(dpy, False); | |
63 -- | |
64 2.32.0 | |
65 |