summaryrefslogtreecommitdiff
path: root/patches/11.dwm-gridmode-20170909-ceac8c9.diff
diff options
context:
space:
mode:
authorSaumit Dinesan <justsaumit@protonmail.com>2022-07-07 17:58:01 +0530
committerSaumit Dinesan <justsaumit@protonmail.com>2022-07-07 17:58:01 +0530
commite057c06769f10a4d95c5a188f3522a12da687145 (patch)
tree3ba966c50e7093e64931d4104d7ab27b9fc627ae /patches/11.dwm-gridmode-20170909-ceac8c9.diff
parent0d48d18e96584eb1b0ddf69ac172309811503342 (diff)
addition of dwm-gridmode patch
Diffstat (limited to 'patches/11.dwm-gridmode-20170909-ceac8c9.diff')
-rw-r--r--patches/11.dwm-gridmode-20170909-ceac8c9.diff73
1 files changed, 73 insertions, 0 deletions
diff --git a/patches/11.dwm-gridmode-20170909-ceac8c9.diff b/patches/11.dwm-gridmode-20170909-ceac8c9.diff
new file mode 100644
index 0000000..feec67b
--- /dev/null
+++ b/patches/11.dwm-gridmode-20170909-ceac8c9.diff
@@ -0,0 +1,73 @@
+From b04bb473cf9818277d33a591f7fe2dfae96afaaf Mon Sep 17 00:00:00 2001
+From: Joshua Haase <hahj87@gmail.com>
+Date: Mon, 15 Aug 2016 17:06:18 -0500
+Subject: [PATCH] Apply modified gridmode patch.
+
+---
+ config.def.h | 3 +++
+ layouts.c | 27 +++++++++++++++++++++++++++
+ 2 files changed, 30 insertions(+)
+ create mode 100644 layouts.c
+
+diff --git a/config.def.h b/config.def.h
+index a9ac303..30b7c4a 100644
+--- a/config.def.h
++++ b/config.def.h
+@@ -36,11 +36,13 @@ static const float mfact = 0.55; /* factor of master area size [0.05..0.95]
+ static const int nmaster = 1; /* number of clients in master area */
+ static const int resizehints = 1; /* 1 means respect size hints in tiled resizals */
+
++#include "layouts.c"
+ static const Layout layouts[] = {
+ /* symbol arrange function */
+ { "[]=", tile }, /* first entry is default */
+ { "><>", NULL }, /* no layout function means floating behavior */
+ { "[M]", monocle },
++ { "HHH", grid },
+ };
+
+ /* key definitions */
+@@ -76,6 +78,7 @@ static Key keys[] = {
+ { MODKEY, XK_t, setlayout, {.v = &layouts[0]} },
+ { MODKEY, XK_f, setlayout, {.v = &layouts[1]} },
+ { MODKEY, XK_m, setlayout, {.v = &layouts[2]} },
++ { MODKEY, XK_g, setlayout, {.v = &layouts[3]} },
+ { MODKEY, XK_space, setlayout, {0} },
+ { MODKEY|ShiftMask, XK_space, togglefloating, {0} },
+ { MODKEY, XK_0, view, {.ui = ~0 } },
+diff --git a/layouts.c b/layouts.c
+new file mode 100644
+index 0000000..d26acf3
+--- /dev/null
++++ b/layouts.c
+@@ -0,0 +1,27 @@
++void
++grid(Monitor *m) {
++ unsigned int i, n, cx, cy, cw, ch, aw, ah, cols, rows;
++ Client *c;
++
++ for(n = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next))
++ n++;
++
++ /* grid dimensions */
++ for(rows = 0; rows <= n/2; rows++)
++ if(rows*rows >= n)
++ break;
++ cols = (rows && (rows - 1) * rows >= n) ? rows - 1 : rows;
++
++ /* window geoms (cell height/width) */
++ ch = m->wh / (rows ? rows : 1);
++ cw = m->ww / (cols ? cols : 1);
++ for(i = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next)) {
++ cx = m->wx + (i / rows) * cw;
++ cy = m->wy + (i % rows) * ch;
++ /* adjust height/width of last row/column's windows */
++ ah = ((i + 1) % rows == 0) ? m->wh - ch * rows : 0;
++ aw = (i >= rows * (cols - 1)) ? m->ww - cw * cols : 0;
++ resize(c, cx, cy, cw - 2 * c->bw + aw, ch - 2 * c->bw + ah, False);
++ i++;
++ }
++}
+--
+2.14.1
+