summaryrefslogtreecommitdiff
path: root/x11-wm/dwm/files/01_centeredmaster.patch
diff options
context:
space:
mode:
authormhsn <mail@mhsn.net>2025-06-29 22:07:45 +0100
committermhsn <mail@mhsn.net>2025-06-29 22:07:45 +0100
commitbc7baa47508c8cebd3b58189b03e277dd415a66a (patch)
tree0008fc15f04298c0f052190249c01cb0a8e43204 /x11-wm/dwm/files/01_centeredmaster.patch
parent4d035618f19fc15182256bd8e7c65023811ccab4 (diff)
downloadadelie-bc7baa47508c8cebd3b58189b03e277dd415a66a.tar.gz
adelie-bc7baa47508c8cebd3b58189b03e277dd415a66a.zip
properly apply patches
Diffstat (limited to 'x11-wm/dwm/files/01_centeredmaster.patch')
-rw-r--r--x11-wm/dwm/files/01_centeredmaster.patch142
1 files changed, 0 insertions, 142 deletions
diff --git a/x11-wm/dwm/files/01_centeredmaster.patch b/x11-wm/dwm/files/01_centeredmaster.patch
deleted file mode 100644
index 6926892..0000000
--- a/x11-wm/dwm/files/01_centeredmaster.patch
+++ /dev/null
@@ -1,142 +0,0 @@
-diff --git a/config.def.h b/config.def.h
-index 7054c06..527b214 100644
---- a/config.def.h
-+++ b/config.def.h
-@@ -39,6 +39,8 @@ static const Layout layouts[] = {
- { "[]=", tile }, /* first entry is default */
- { "><>", NULL }, /* no layout function means floating behavior */
- { "[M]", monocle },
-+ { "|M|", centeredmaster },
-+ { ">M>", centeredfloatingmaster },
- };
-
- /* key definitions */
-@@ -74,6 +76,8 @@ 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_u, setlayout, {.v = &layouts[3]} },
-+ { MODKEY, XK_o, setlayout, {.v = &layouts[4]} },
- { MODKEY, XK_space, setlayout, {0} },
- { MODKEY|ShiftMask, XK_space, togglefloating, {0} },
- { MODKEY, XK_0, view, {.ui = ~0 } },
-diff --git a/dwm.c b/dwm.c
-index 0362114..1e81412 100644
---- a/dwm.c
-+++ b/dwm.c
-@@ -233,6 +233,8 @@ static int xerror(Display *dpy, XErrorEvent *ee);
- static int xerrordummy(Display *dpy, XErrorEvent *ee);
- static int xerrorstart(Display *dpy, XErrorEvent *ee);
- static void zoom(const Arg *arg);
-+static void centeredmaster(Monitor *m);
-+static void centeredfloatingmaster(Monitor *m);
-
- /* variables */
- static const char broken[] = "broken";
-@@ -2139,3 +2141,106 @@ main(int argc, char *argv[])
- XCloseDisplay(dpy);
- return EXIT_SUCCESS;
- }
-+
-+void
-+centeredmaster(Monitor *m)
-+{
-+ unsigned int i, n, h, mw, mx, my, oty, ety, tw;
-+ Client *c;
-+
-+ /* count number of clients in the selected monitor */
-+ for (n = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), n++);
-+ if (n == 0)
-+ return;
-+
-+ /* initialize areas */
-+ mw = m->ww;
-+ mx = 0;
-+ my = 0;
-+ tw = mw;
-+
-+ if (n > m->nmaster) {
-+ /* go mfact box in the center if more than nmaster clients */
-+ mw = m->nmaster ? m->ww * m->mfact : 0;
-+ tw = m->ww - mw;
-+
-+ if (n - m->nmaster > 1) {
-+ /* only one client */
-+ mx = (m->ww - mw) / 2;
-+ tw = (m->ww - mw) / 2;
-+ }
-+ }
-+
-+ oty = 0;
-+ ety = 0;
-+ for (i = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), i++)
-+ if (i < m->nmaster) {
-+ /* nmaster clients are stacked vertically, in the center
-+ * of the screen */
-+ h = (m->wh - my) / (MIN(n, m->nmaster) - i);
-+ resize(c, m->wx + mx, m->wy + my, mw - (2*c->bw),
-+ h - (2*c->bw), 0);
-+ my += HEIGHT(c);
-+ } else {
-+ /* stack clients are stacked vertically */
-+ if ((i - m->nmaster) % 2 ) {
-+ h = (m->wh - ety) / ( (1 + n - i) / 2);
-+ resize(c, m->wx, m->wy + ety, tw - (2*c->bw),
-+ h - (2*c->bw), 0);
-+ ety += HEIGHT(c);
-+ } else {
-+ h = (m->wh - oty) / ((1 + n - i) / 2);
-+ resize(c, m->wx + mx + mw, m->wy + oty,
-+ tw - (2*c->bw), h - (2*c->bw), 0);
-+ oty += HEIGHT(c);
-+ }
-+ }
-+}
-+
-+void
-+centeredfloatingmaster(Monitor *m)
-+{
-+ unsigned int i, n, w, mh, mw, mx, mxo, my, myo, tx;
-+ Client *c;
-+
-+ /* count number of clients in the selected monitor */
-+ for (n = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), n++);
-+ if (n == 0)
-+ return;
-+
-+ /* initialize nmaster area */
-+ if (n > m->nmaster) {
-+ /* go mfact box in the center if more than nmaster clients */
-+ if (m->ww > m->wh) {
-+ mw = m->nmaster ? m->ww * m->mfact : 0;
-+ mh = m->nmaster ? m->wh * 0.9 : 0;
-+ } else {
-+ mh = m->nmaster ? m->wh * m->mfact : 0;
-+ mw = m->nmaster ? m->ww * 0.9 : 0;
-+ }
-+ mx = mxo = (m->ww - mw) / 2;
-+ my = myo = (m->wh - mh) / 2;
-+ } else {
-+ /* go fullscreen if all clients are in the master area */
-+ mh = m->wh;
-+ mw = m->ww;
-+ mx = mxo = 0;
-+ my = myo = 0;
-+ }
-+
-+ for(i = tx = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), i++)
-+ if (i < m->nmaster) {
-+ /* nmaster clients are stacked horizontally, in the center
-+ * of the screen */
-+ w = (mw + mxo - mx) / (MIN(n, m->nmaster) - i);
-+ resize(c, m->wx + mx, m->wy + my, w - (2*c->bw),
-+ mh - (2*c->bw), 0);
-+ mx += WIDTH(c);
-+ } else {
-+ /* stack clients are stacked horizontally */
-+ w = (m->ww - tx) / (n - i);
-+ resize(c, m->wx + tx, m->wy, w - (2*c->bw),
-+ m->wh - (2*c->bw), 0);
-+ tx += WIDTH(c);
-+ }
-+}