Introduction
Introduction Statistics Contact Development Disclaimer Help
tapply nmaster patch - dwm - [fork] customized build of dwm, the dynamic window…
git clone git://src.adamsgaard.dk/dwm
Log
Files
Refs
README
LICENSE
---
commit b1a28ae1dab34a159e7cf17a82ecda0635e72f97
parent f68a01cd767659190bf690e29986184348672647
Author: Connor Lane Smith <[email protected]>
Date: Tue, 25 Oct 2011 20:40:46 +0100
apply nmaster patch
Diffstat:
M config.def.h | 3 +++
M dwm.c | 42 ++++++++++++++++-------------…
2 files changed, 24 insertions(+), 21 deletions(-)
---
diff --git a/config.def.h b/config.def.h
t@@ -24,6 +24,7 @@ static const Rule rules[] = {
/* layout(s) */
static const float mfact = 0.55; /* factor of master area size [0.05..0.9…
+static const int nmaster = 1; /* number of clients in master area */
static const Bool resizehints = True; /* True means respect size hints in tile…
static const Layout layouts[] = {
t@@ -55,6 +56,8 @@ static Key keys[] = {
{ MODKEY, XK_b, togglebar, {0} },
{ MODKEY, XK_j, focusstack, {.i = +1 } …
{ MODKEY, XK_k, focusstack, {.i = -1 } …
+ { MODKEY, XK_i, incnmaster, {.i = +1 } …
+ { MODKEY, XK_d, incnmaster, {.i = -1 } …
{ MODKEY, XK_h, setmfact, {.f = -0.05…
{ MODKEY, XK_l, setmfact, {.f = +0.05…
{ MODKEY, XK_Return, zoom, {0} },
diff --git a/dwm.c b/dwm.c
t@@ -125,6 +125,7 @@ typedef struct {
struct Monitor {
char ltsymbol[16];
float mfact;
+ int nmaster;
int num;
int by; /* bar geometry */
int mx, my, mw, mh; /* screen size */
t@@ -189,6 +190,7 @@ static long getstate(Window w);
static Bool gettextprop(Window w, Atom atom, char *text, unsigned int size);
static void grabbuttons(Client *c, Bool focused);
static void grabkeys(void);
+static void incnmaster(const Arg *arg);
static void initfont(const char *fontstr);
static void keypress(XEvent *e);
static void killclient(const Arg *arg);
t@@ -664,6 +666,7 @@ createmon(void) {
die("fatal: could not malloc() %u bytes\n", sizeof(Monitor));
m->tagset[0] = m->tagset[1] = 1;
m->mfact = mfact;
+ m->nmaster = nmaster;
m->showbar = showbar;
m->topbar = topbar;
m->lt[0] = &layouts[0];
t@@ -1024,6 +1027,12 @@ grabkeys(void) {
}
void
+incnmaster(const Arg *arg) {
+ selmon->nmaster = MAX(selmon->nmaster + arg->i, 1);
+ arrange(selmon);
+}
+
+void
initfont(const char *fontstr) {
char *def, **missing;
int n;
t@@ -1650,32 +1659,23 @@ textnw(const char *text, unsigned int len) {
void
tile(Monitor *m) {
- int x, y, h, w, mw;
- unsigned int i, n;
+ unsigned int i, n, mw, mh, tw, th;
Client *c;
for(n = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), n++);
if(n == 0)
return;
- /* master */
- c = nexttiled(m->clients);
- mw = m->mfact * m->ww;
- resize(c, m->wx, m->wy, (n == 1 ? m->ww : mw) - 2 * c->bw, m->wh - 2 *…
- if(--n == 0)
- return;
- /* tile stack */
- x = (m->wx > c->x) ? c->x + mw + 2 * c->bw : m->wx + mw;
- y = m->wy;
- w = (m->wx > c->x) ? m->wx + m->ww - x : m->ww - mw;
- h = m->wh / n;
- if(h < bh)
- h = m->wh;
- for(i = 0, c = nexttiled(c->next); c; c = nexttiled(c->next), i++) {
- resize(c, x, y, w - 2 * c->bw, /* remainder */ ((i + 1 == n)
- ? m->wy + m->wh - y - 2 * c->bw : h - 2 * c->bw), False…
- if(h != m->wh)
- y = c->y + HEIGHT(c);
- }
+
+ mh = (n > m->nmaster) ? m->wh / m->nmaster : m->wh / n;
+ mw = (n > m->nmaster) ? m->ww * m->mfact : m->ww;
+ th = (n > m->nmaster) ? m->wh / (n - m->nmaster) : 0;
+ tw = m->ww - mw;
+
+ for(i = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), i++)
+ if(i < m->nmaster)
+ resize(c, m->wx, m->wy + (i*mh), mw - (2*c->bw), mh - …
+ else
+ resize(c, m->wx + mw, m->wy + ((i - m->nmaster)*th), t…
}
void
You are viewing proxied material from mx1.adamsgaard.dk. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.