dwm-transferall-6.2.diff - sites - public wiki contents of suckless.org | |
git clone git://git.suckless.org/sites | |
Log | |
Files | |
Refs | |
--- | |
dwm-transferall-6.2.diff (2305B) | |
--- | |
1 From 43d8a0f3df28ba0b25b85eb38b0f990b9947c48a Mon Sep 17 00:00:00 2001 | |
2 From: Miles Alan <[email protected]> | |
3 Date: Sat, 1 Feb 2020 09:55:43 -0600 | |
4 Subject: [PATCH] Add transferall function which swaps the master & stack… | |
5 adjusts nmaster. | |
6 | |
7 All stack clients after the function is run are moved into the master ar… | |
8 and master clients are moved into the stack area. The new nmaster will be | |
9 adjusted to be equal to the old number of clients in the stack (e.g. the | |
10 new number of clients in the master). | |
11 --- | |
12 config.def.h | 1 + | |
13 dwm.c | 26 ++++++++++++++++++++++++++ | |
14 2 files changed, 27 insertions(+) | |
15 | |
16 diff --git a/config.def.h b/config.def.h | |
17 index 1c0b587..cce5b64 100644 | |
18 --- a/config.def.h | |
19 +++ b/config.def.h | |
20 @@ -70,6 +70,7 @@ static Key keys[] = { | |
21 { MODKEY, XK_d, incnmaster, {.i … | |
22 { MODKEY, XK_h, setmfact, {.f … | |
23 { MODKEY, XK_l, setmfact, {.f … | |
24 + { MODKEY, XK_z, transferall, {0} … | |
25 { MODKEY, XK_Return, zoom, {0} … | |
26 { MODKEY, XK_Tab, view, {0} … | |
27 { MODKEY|ShiftMask, XK_c, killclient, {0} … | |
28 diff --git a/dwm.c b/dwm.c | |
29 index 4465af1..a8864e9 100644 | |
30 --- a/dwm.c | |
31 +++ b/dwm.c | |
32 @@ -213,6 +213,7 @@ static void togglebar(const Arg *arg); | |
33 static void togglefloating(const Arg *arg); | |
34 static void toggletag(const Arg *arg); | |
35 static void toggleview(const Arg *arg); | |
36 +static void transferall(const Arg *arg); | |
37 static void unfocus(Client *c, int setfocus); | |
38 static void unmanage(Client *c, int destroyed); | |
39 static void unmapnotify(XEvent *e); | |
40 @@ -1746,6 +1747,31 @@ toggleview(const Arg *arg) | |
41 } | |
42 } | |
43 | |
44 +void | |
45 +transferall(const Arg *arg) { | |
46 + Client *c, *n = selmon->clients, *attachfrom = NULL; | |
47 + int i = 0, nstackclients = 0; | |
48 + while (n) { | |
49 + c = n; | |
50 + n = c->next; | |
51 + if (!ISVISIBLE(c) || c->isfloating) continue; | |
52 + if (i >= selmon->nmaster) { | |
53 + detach(c); | |
54 + if (!attachfrom) { | |
55 + attach(c); | |
56 + } else { | |
57 + c->next = attachfrom->next; | |
58 + attachfrom->next = c; | |
59 + } | |
60 + attachfrom = c; | |
61 + nstackclients++; | |
62 + } | |
63 + i++; | |
64 + } | |
65 + selmon->nmaster = nstackclients; | |
66 + arrange(selmon); | |
67 +} | |
68 + | |
69 void | |
70 unfocus(Client *c, int setfocus) | |
71 { | |
72 -- | |
73 2.23.1 | |
74 |