[wiki] [sites] wiki updated
changeset: 255:b78091cb2c5f
tag: tip
user: nsz_AT_tpx
date: Wed Sep 16 18:25:37 2009 +0200
files: dwm.suckless.org/patches/nmaster-sym.c dwm.suckless.org/patches/nmaster.md
description:
updated nmaster to dwm-5.7
diff -r ab64f2ea5322 -r b78091cb2c5f dwm.suckless.org/patches/nmaster-sym.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dwm.suckless.org/patches/nmaster-sym.c Wed Sep 16 18:25:37 2009 +0200
_AT_@ -0,0 +1,130 @@
+enum {MaxMon = 8};
+static int nmasters[MaxMon];
+static int initnm = 0;
+
+static void
+initnmaster(void) {
+ int i;
+
+ if(initnm)
+ return;
+ for(i = 0; i < MaxMon; i++)
+ nmasters[i] = nmaster;
+ initnm = 1;
+}
+
+static void
+incnmaster(const Arg *arg) {
+ if(!arg || !selmon->lt[selmon->sellt]->arrange || selmon->num >= MaxMon)
+ return;
+ nmasters[selmon->num] += arg->i;
+ if(nmasters[selmon->num] < 0)
+ nmasters[selmon->num] = 0;
+ arrange();
+}
+
+static void
+setnmaster(const Arg *arg) {
+ if(!arg || !selmon->lt[selmon->sellt]->arrange || selmon->num >= MaxMon)
+ return;
+ nmasters[selmon->num] = arg->i > 0 ? arg->i : 0;
+ arrange();
+}
+
+static void
+ntile(Monitor *m) {
+ static char ntext[8];
+ int x, y, h, w, mw, nm;
+ unsigned int i, n;
+ Client *c;
+
+ initnmaster();
+ /* override layout symbol */
+ snprintf(ntext, sizeof ntext, "%d]=", nmasters[m->num]);
+ m->ltsymbol = ntext;
+ for(n = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), n++);
+ c = nexttiled(m->clients);
+ nm = m->num < MaxMon ? nmasters[m->num] : nmaster;
+ if(nm > n)
+ nm = n;
+ /* master */
+ if(nm > 0) {
+ mw = m->mfact * m->ww;
+ h = m->wh / nm;
+ if(h < bh)
+ h = m->wh;
+ y = m->wy;
+ for(i = 0; i < nm; i++, c = nexttiled(c->next)) {
+ resize(c, m->wx, y, (n == nm ? m->ww : mw) - 2 * c->bw,
+ ((i + 1 == nm) ? m->wy + m->wh - y : h) - 2 * c->bw, False);
+ if(h != m->wh)
+ y = c->y + HEIGHT(c);
+ }
+ n -= nm;
+ } else
+ mw = 0;
+ if(n == 0)
+ return;
+ /* tile stack */
+ x = m->wx + mw;
+ y = m->wy;
+ w = m->ww - mw;
+ h = m->wh / n;
+ if(h < bh)
+ h = m->wh;
+ for(i = 0; c; c = nexttiled(c->next), i++) {
+ resize(c, x, y, w - 2 * c->bw,
+ ((i + 1 == n) ? m->wy + m->wh - y : h) - 2 * c->bw, False);
+ if(h != m->wh)
+ y = c->y + HEIGHT(c);
+ }
+}
+
+static void
+nbstack(Monitor *m) {
+ static char ntext[8];
+ int x, y, h, w, mh, nm;
+ unsigned int i, n;
+ Client *c;
+
+ initnmaster();
+ /* override layout symbol */
+ snprintf(ntext, sizeof ntext, "T%dT", nmasters[m->num]);
+ m->ltsymbol = ntext;
+ for(n = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), n++);
+ c = nexttiled(m->clients);
+ nm = m->num < MaxMon ? nmasters[m->num] : nmaster;
+ if(nm > n)
+ nm = n;
+ /* master */
+ if(nm > 0) {
+ mh = m->mfact * m->wh;
+ w = m->ww / nm;
+ if(w < bh)
+ w = m->ww;
+ x = m->wx;
+ for(i = 0; i < nm; i++, c = nexttiled(c->next)) {
+ resize(c, x, m->wy, ((i + 1 == nm) ? m->wx + m->ww - x : w) - 2 * c->bw,
+ (n == nm ? m->wh : mh) - 2 * c->bw, False);
+ if(w != m->ww)
+ x = c->x + WIDTH(c);
+ }
+ n -= nm;
+ } else
+ mh = 0;
+ if(n == 0)
+ return;
+ /* tile stack */
+ x = m->wx;
+ y = m->wy + mh;
+ w = m->ww / n;
+ h = m->wh - mh;
+ if(w < bh)
+ w = m->ww;
+ for(i = 0; c; c = nexttiled(c->next), i++) {
+ resize(c, x, y, ((i + 1 == n) ? m->wx + m->ww - x : w) - 2 * c->bw,
+ h - 2 * c->bw, False);
+ if(w != m->ww)
+ x = c->x + WIDTH(c);
+ }
+}
diff -r ab64f2ea5322 -r b78091cb2c5f dwm.suckless.org/patches/nmaster.md
--- a/dwm.suckless.org/patches/nmaster.md Tue Sep 15 14:45:27 2009 +0200
+++ b/dwm.suckless.org/patches/nmaster.md Wed Sep 16 18:25:37 2009 +0200
_AT_@ -54,5 +54,6 @@
## Download
+* [nmaster-sym.c](nmaster-sym.c) (dwm 5.7) (20090916) - layout symbol shows the number of masters
* [nmaster.c](nmaster.c) (dwm 5.6.1) (20090908)
* see older versions in [historical patches](historical)
Received on Wed Sep 16 2009 - 18:26:01 CEST
This archive was generated by hypermail 2.3.0
: Thu Sep 13 2012 - 19:30:50 CEST