1 From ec9f55b6005cfa3b025b3d700c61af3ce539d057 Mon Sep 17 00:00:00 2001
2 From: Niki Yoshiuchi <nyoshiuchi@gmail.com>
3 Date: Sat, 18 Apr 2020 09:55:26 -0700
4 Subject: [PATCH] Adding the fibonacci layout patch
8 fibonacci.c | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++
9 2 files changed, 71 insertions(+)
10 create mode 100644 fibonacci.c
12 diff --git a/config.def.h b/config.def.h
13 index 1c0b587..5708487 100644
16 @@ -36,11 +36,14 @@ static const float mfact = 0.55; /* factor of master area size [0.05..0.95]
17 static const int nmaster = 1; /* number of clients in master area */
18 static const int resizehints = 1; /* 1 means respect size hints in tiled resizals */
20 +#include "fibonacci.c"
21 static const Layout layouts[] = {
22 /* symbol arrange function */
23 { "[]=", tile }, /* first entry is default */
24 { "><>", NULL }, /* no layout function means floating behavior */
27 + { "[\\]", dwindle },
31 @@ -76,6 +79,8 @@ static Key keys[] = {
32 { MODKEY, XK_t, setlayout, {.v = &layouts[0]} },
33 { MODKEY, XK_f, setlayout, {.v = &layouts[1]} },
34 { MODKEY, XK_m, setlayout, {.v = &layouts[2]} },
35 + { MODKEY, XK_r, setlayout, {.v = &layouts[3]} },
36 + { MODKEY|ShiftMask, XK_r, setlayout, {.v = &layouts[4]} },
37 { MODKEY, XK_space, setlayout, {0} },
38 { MODKEY|ShiftMask, XK_space, togglefloating, {0} },
39 { MODKEY, XK_0, view, {.ui = ~0 } },
40 diff --git a/fibonacci.c b/fibonacci.c
42 index 0000000..fce0a57
47 +fibonacci(Monitor *mon, int s) {
48 + unsigned int i, n, nx, ny, nw, nh;
51 + for(n = 0, c = nexttiled(mon->clients); c; c = nexttiled(c->next), n++);
60 + for(i = 0, c = nexttiled(mon->clients); c; c = nexttiled(c->next)) {
61 + if((i % 2 && nh / 2 > 2 * c->bw)
62 + || (!(i % 2) && nw / 2 > 2 * c->bw)) {
68 + if((i % 4) == 2 && !s)
70 + else if((i % 4) == 3 && !s)
79 + else if((i % 4) == 1)
81 + else if((i % 4) == 2)
83 + else if((i % 4) == 3) {
92 + nw = mon->ww * mon->mfact;
99 + resize(c, nx, ny, nw - 2 * c->bw, nh - 2 * c->bw, False);
104 +dwindle(Monitor *mon) {
109 +spiral(Monitor *mon) {