aboutsummaryrefslogtreecommitdiff
path: root/dwm/patches/dwm-fibonacci-5.8.2.diff
diff options
context:
space:
mode:
authorMarvin Borner2019-03-05 01:09:01 +0100
committerMarvin Borner2019-03-05 01:09:01 +0100
commit55457187d18221e76bd12f0fb2cfab65c49b92fb (patch)
tree8db042d2d80710d54100c2709ad4332153ac848a /dwm/patches/dwm-fibonacci-5.8.2.diff
Initial commit
Diffstat (limited to 'dwm/patches/dwm-fibonacci-5.8.2.diff')
-rw-r--r--dwm/patches/dwm-fibonacci-5.8.2.diff85
1 files changed, 85 insertions, 0 deletions
diff --git a/dwm/patches/dwm-fibonacci-5.8.2.diff b/dwm/patches/dwm-fibonacci-5.8.2.diff
new file mode 100644
index 0000000..78664c8
--- /dev/null
+++ b/dwm/patches/dwm-fibonacci-5.8.2.diff
@@ -0,0 +1,85 @@
+diff --git a/config.def.h b/config.def.h
+index cca37df..91b91aa 100644
+--- a/config.def.h
++++ b/config.def.h
+@@ -29,1 +29,2 @@
++#include "fibonacci.c"
+ static const Layout layouts[] = {
+@@ -34,3 +35,5 @@
++ { "[@]", spiral },
++ { "[\\]", dwindle },
+ };
+
+ /* key definitions */
+diff --git a/fibonacci.c b/fibonacci.c
+new file mode 100644
+index 0000000..fce0a57
+--- /dev/null
++++ b/fibonacci.c
+@@ -0,0 +1,66 @@
++void
++fibonacci(Monitor *mon, int s) {
++ unsigned int i, n, nx, ny, nw, nh;
++ Client *c;
++
++ for(n = 0, c = nexttiled(mon->clients); c; c = nexttiled(c->next), n++);
++ if(n == 0)
++ return;
++
++ nx = mon->wx;
++ ny = 0;
++ nw = mon->ww;
++ nh = mon->wh;
++
++ for(i = 0, c = nexttiled(mon->clients); c; c = nexttiled(c->next)) {
++ if((i % 2 && nh / 2 > 2 * c->bw)
++ || (!(i % 2) && nw / 2 > 2 * c->bw)) {
++ if(i < n - 1) {
++ if(i % 2)
++ nh /= 2;
++ else
++ nw /= 2;
++ if((i % 4) == 2 && !s)
++ nx += nw;
++ else if((i % 4) == 3 && !s)
++ ny += nh;
++ }
++ if((i % 4) == 0) {
++ if(s)
++ ny += nh;
++ else
++ ny -= nh;
++ }
++ else if((i % 4) == 1)
++ nx += nw;
++ else if((i % 4) == 2)
++ ny += nh;
++ else if((i % 4) == 3) {
++ if(s)
++ nx += nw;
++ else
++ nx -= nw;
++ }
++ if(i == 0)
++ {
++ if(n != 1)
++ nw = mon->ww * mon->mfact;
++ ny = mon->wy;
++ }
++ else if(i == 1)
++ nw = mon->ww - nw;
++ i++;
++ }
++ resize(c, nx, ny, nw - 2 * c->bw, nh - 2 * c->bw, False);
++ }
++}
++
++void
++dwindle(Monitor *mon) {
++ fibonacci(mon, 1);
++}
++
++void
++spiral(Monitor *mon) {
++ fibonacci(mon, 0);
++}