icolumns - dwm - dynamic window manager Err parazyd.org 70 hgit clone https://git.parazyd.org/dwm URL:https://git.parazyd.org/dwm parazyd.org 70 1Log /git/dwm/log.gph parazyd.org 70 1Files /git/dwm/files.gph parazyd.org 70 1Refs /git/dwm/refs.gph parazyd.org 70 1README /git/dwm/file/README.gph parazyd.org 70 1LICENSE /git/dwm/file/LICENSE.gph parazyd.org 70 i--- Err parazyd.org 70 1commit 981ba3e87611cd5d2bd1673b20fcd0bcf2ee9553 /git/dwm/commit/981ba3e87611cd5d2bd1673b20fcd0bcf2ee9553.gph parazyd.org 70 1parent e250e8dce3c926caaacf1555ef4763aee3eb8109 /git/dwm/commit/e250e8dce3c926caaacf1555ef4763aee3eb8109.gph parazyd.org 70 hAuthor: parazyd URL:mailto:parazyd@dyne.org parazyd.org 70 iDate: Sun, 24 Apr 2022 00:19:07 +0200 Err parazyd.org 70 i Err parazyd.org 70 icolumns Err parazyd.org 70 i Err parazyd.org 70 iDiffstat: Err parazyd.org 70 i M config.def.h | 2 ++ Err parazyd.org 70 i M config.h | 2 ++ Err parazyd.org 70 i M dwm.c | 27 +++++++++++++++++++++++++++ Err parazyd.org 70 i Err parazyd.org 70 i3 files changed, 31 insertions(+), 0 deletions(-) Err parazyd.org 70 i--- Err parazyd.org 70 1diff --git a/config.def.h b/config.def.h /git/dwm/file/config.def.h.gph parazyd.org 70 i@@ -47,6 +47,7 @@ static const Layout layouts[] = { Err parazyd.org 70 i { "[]=", tile }, /* first entry is default */ Err parazyd.org 70 i { "><>", NULL }, /* no layout function means floating behavior */ Err parazyd.org 70 i { "[M]", monocle }, Err parazyd.org 70 i+ { "|||", col }, Err parazyd.org 70 i }; Err parazyd.org 70 i Err parazyd.org 70 i /* key definitions */ Err parazyd.org 70 i@@ -85,6 +86,7 @@ static const Key keys[] = { Err parazyd.org 70 i { MODKEY, XK_t, setlayout, {.v = &layouts[0]} }, Err parazyd.org 70 i { MODKEY, XK_f, setlayout, {.v = &layouts[1]} }, Err parazyd.org 70 i { MODKEY, XK_m, setlayout, {.v = &layouts[2]} }, Err parazyd.org 70 i+ { MODKEY, XK_c, setlayout, {.v = &layouts[3]} }, Err parazyd.org 70 i { MODKEY, XK_space, setlayout, {0} }, Err parazyd.org 70 i { MODKEY|ShiftMask, XK_space, togglefloating, {0} }, Err parazyd.org 70 i { MODKEY, XK_0, view, {.ui = ~0 } }, Err parazyd.org 70 1diff --git a/config.h b/config.h /git/dwm/file/config.h.gph parazyd.org 70 i@@ -48,6 +48,7 @@ static const Layout layouts[] = { Err parazyd.org 70 i { "[t]", tile }, /* first entry is default */ Err parazyd.org 70 i { "[f]", NULL }, /* no layout function means floating behavior */ Err parazyd.org 70 i { "[m]", monocle }, Err parazyd.org 70 i+ { "|||", col }, Err parazyd.org 70 i }; Err parazyd.org 70 i Err parazyd.org 70 i /* key definitions */ Err parazyd.org 70 i@@ -86,6 +87,7 @@ static Key keys[] = { Err parazyd.org 70 i { MODKEY, XK_t, setlayout, {.v = &layouts[0]} }, Err parazyd.org 70 i { MODKEY, XK_f, setlayout, {.v = &layouts[1]} }, Err parazyd.org 70 i { MODKEY, XK_m, setlayout, {.v = &layouts[2]} }, Err parazyd.org 70 i+ { MODKEY, XK_c, setlayout, {.v = &layouts[3]} }, Err parazyd.org 70 i { MODKEY, XK_space, setlayout, {0} }, Err parazyd.org 70 i { MODKEY|ShiftMask, XK_space, togglefloating, {0} }, Err parazyd.org 70 i // { MODKEY, XK_0, view, {.ui = ~0 } }, Err parazyd.org 70 1diff --git a/dwm.c b/dwm.c /git/dwm/file/dwm.c.gph parazyd.org 70 i@@ -176,6 +176,7 @@ static void checkotherwm(void); Err parazyd.org 70 i static void cleanup(void); Err parazyd.org 70 i static void cleanupmon(Monitor *mon); Err parazyd.org 70 i static void clientmessage(XEvent *e); Err parazyd.org 70 i+static void col(Monitor *); Err parazyd.org 70 i static void configure(Client *c); Err parazyd.org 70 i static void configurenotify(XEvent *e); Err parazyd.org 70 i static void configurerequest(XEvent *e); Err parazyd.org 70 i@@ -1955,6 +1956,32 @@ tagmon(const Arg *arg) Err parazyd.org 70 i } Err parazyd.org 70 i Err parazyd.org 70 i void Err parazyd.org 70 i+col(Monitor *m) Err parazyd.org 70 i+{ Err parazyd.org 70 i+ unsigned int i, n, h, w, x, y, mw; Err parazyd.org 70 i+ Client *c; Err parazyd.org 70 i+ Err parazyd.org 70 i+ for (n = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), n++); Err parazyd.org 70 i+ if (n == 0) Err parazyd.org 70 i+ return; Err parazyd.org 70 i+ Err parazyd.org 70 i+ if (n > m->nmaster) Err parazyd.org 70 i+ mw = m->nmaster ? m->ww * m->mfact : 0; Err parazyd.org 70 i+ else Err parazyd.org 70 i+ mw = m->ww; Err parazyd.org 70 i+ for (i = x = y = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), i++) Err parazyd.org 70 i+ if (i < m->nmaster) { Err parazyd.org 70 i+ w = (mw - x) / (MIN(n, m->nmaster) - i); Err parazyd.org 70 i+ resize(c, x + m->wx, m->wy, w - (2 * c->bw), m->wh - (2 * c->bw), 0); Err parazyd.org 70 i+ x += WIDTH(c); Err parazyd.org 70 i+ } else { Err parazyd.org 70 i+ h = (m->wh - y) / (n - i); Err parazyd.org 70 i+ resize(c, x + m->wx, m->wy + y, m->ww - x - (2 * c->bw), h - (2 * c->bw), 0); Err parazyd.org 70 i+ y += HEIGHT(c); Err parazyd.org 70 i+ } Err parazyd.org 70 i+} Err parazyd.org 70 i+ Err parazyd.org 70 i+void Err parazyd.org 70 i tile(Monitor *m) Err parazyd.org 70 i { Err parazyd.org 70 i unsigned int i, n, h, mw, my, ty; Err parazyd.org 70 .