[wiki] [sites] [dwm] add rmaster patch || phi

From: <git_AT_suckless.org>
Date: Mon, 13 Feb 2017 06:42:35 +0100

commit 75881bd685af01b110b9689109337110972e40e5
Author: phi <crispyfrog_AT_163.com>
Date: Mon Feb 13 13:39:08 2017 +0800

    [dwm] add rmaster patch

diff --git a/dwm.suckless.org/patches/dwm-rmaster-6.1.diff b/dwm.suckless.org/patches/dwm-rmaster-6.1.diff
new file mode 100644
index 0000000..494c8bb
--- /dev/null
+++ b/dwm.suckless.org/patches/dwm-rmaster-6.1.diff
_AT_@ -0,0 +1,61 @@
+diff -urp dwm-6.1/dwm.c dwm-6.1-patched/dwm.c
+--- dwm-6.1/dwm.c 2015-11-09 06:39:37.000000000 +0800
++++ dwm-6.1-patched/dwm.c 2017-02-13 13:21:52.327153646 +0800
+_AT_@ -130,6 +130,7 @@ struct Monitor {
+ Monitor *next;
+ Window barwin;
+ const Layout *lt[2];
++ int rmaster;
+ };
+
+ typedef struct {
+_AT_@ -211,6 +212,7 @@ static void tagmon(const Arg *arg);
+ static void tile(Monitor *);
+ static void togglebar(const Arg *arg);
+ static void togglefloating(const Arg *arg);
++static void togglermaster(const Arg *arg);
+ static void toggletag(const Arg *arg);
+ static void toggleview(const Arg *arg);
+ static void unfocus(Client *c, int setfocus);
+_AT_@ -1674,17 +1676,21 @@ tile(Monitor *m)
+ return;
+
+ if (n > m->nmaster)
+- mw = m->nmaster ? m->ww * m->mfact : 0;
++ mw = m->nmaster
++ ? m->ww * (m->rmaster ? 1.0 - m->mfact : m->mfact)
++ : 0;
+ else
+ mw = m->ww;
+ for (i = my = ty = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), i++)
+ if (i < m->nmaster) {
+ h = (m->wh - my) / (MIN(n, m->nmaster) - i);
+- resize(c, m->wx, m->wy + my, mw - (2*c->bw), h - (2*c->bw), 0);
++ resize(c, m->rmaster ? m->wx + m->ww - mw : m->wx,
++ m->wy + my, mw - (2*c->bw), h - (2*c->bw), 0);
+ my += HEIGHT(c);
+ } else {
+ h = (m->wh - ty) / (n - i);
+- resize(c, m->wx + mw, m->wy + ty, m->ww - mw - (2*c->bw), h - (2*c->bw), 0);
++ resize(c, m->rmaster ? m->wx : m->wx + mw, m->wy + ty,
++ m->ww - mw - (2*c->bw), h - (2*c->bw), 0);
+ ty += HEIGHT(c);
+ }
+ }
+_AT_@ -1713,6 +1719,16 @@ togglefloating(const Arg *arg)
+ }
+
+ void
++togglermaster(const Arg *arg)
++{
++ selmon->rmaster = !selmon->rmaster;
++ /* now mfact represents the left factor */
++ selmon->mfact = 1.0 - selmon->mfact;
++ if (selmon->lt[selmon->sellt]->arrange)
++ arrange(selmon);
++}
++
++void
+ toggletag(const Arg *arg)
+ {
+ unsigned int newtags;
diff --git a/dwm.suckless.org/patches/rmaster.md b/dwm.suckless.org/patches/rmaster.md
new file mode 100644
index 0000000..375f1b6
--- /dev/null
+++ b/dwm.suckless.org/patches/rmaster.md
_AT_@ -0,0 +1,21 @@
+# rmaster
+
+## Description
+
+Toggling between left-master (original behaviour) and right-master for the
+current monitor.
+
+This patch only modifies the deafult layout 'tile', similar modifications can be
+made to other custom layouts, like 'deck'.
+
+## Configuration
+
+ /*config.h*/
+ { MODKEY, XK_i, togglermaster, {0} },
+
+## Download
+
+* [dwm-rmaster-6.1.diff](dwm-rmaster-6.1.diff) (1836b) (20170213)
+
+## Author
+* phi <crispyfrog_AT_163.com>
Received on Mon Feb 13 2017 - 06:42:35 CET

This archive was generated by hypermail 2.3.0 : Mon Feb 13 2017 - 06:48:20 CET