summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--config.def.h11
-rw-r--r--vanitygaps.c348
2 files changed, 2 insertions, 357 deletions
diff --git a/config.def.h b/config.def.h
index f011ad1..752bbbd 100644
--- a/config.def.h
+++ b/config.def.h
@@ -62,19 +62,10 @@ static const Layout layouts[] = {
/* symbol arrange function */
{ "[]=", tile }, /* first entry is default */
{ "[M]", monocle },
- { "[@]", spiral },
- { "[\\]", dwindle },
- { "H[]", deck },
- { "TTT", bstack },
{ "===", bstackhoriz },
- { "HHH", grid },
- { "###", nrowgrid },
- { "---", horizgrid },
- { ":::", gaplessgrid },
{ "|M|", centeredmaster },
- { ">M>", centeredfloatingmaster },
- { "><>", NULL }, /* no layout function means floating behavior */
{ "[][]=", tilewide },
+ { "><>", NULL }, /* no layout function means floating behavior */
{ NULL, NULL },
};
diff --git a/vanitygaps.c b/vanitygaps.c
index 1a816b6..dbdd925 100644
--- a/vanitygaps.c
+++ b/vanitygaps.c
@@ -9,16 +9,8 @@ static void incrihgaps(const Arg *arg);
static void incrivgaps(const Arg *arg);
static void togglegaps(const Arg *arg);
/* Layouts (delete the ones you do not need) */
-static void bstack(Monitor *m);
static void bstackhoriz(Monitor *m);
static void centeredmaster(Monitor *m);
-static void centeredfloatingmaster(Monitor *m);
-static void deck(Monitor *m);
-static void dwindle(Monitor *m);
-static void fibonacci(Monitor *m, int s);
-static void grid(Monitor *m);
-static void nrowgrid(Monitor *m);
-static void spiral(Monitor *m);
static void tile(Monitor *m);
/* Internals */
static void getgaps(Monitor *m, int *oh, int *ov, int *ih, int *iv, unsigned int *nc);
@@ -192,51 +184,6 @@ getfacts(Monitor *m, int msize, int ssize, float *mf, float *sf, int *mr, int *s
* Layouts
*/
-/*
- * Bottomstack layout + gaps
- * https://dwm.suckless.org/patches/bottomstack/
- */
-static void
-bstack(Monitor *m)
-{
- unsigned int i, n;
- int oh, ov, ih, iv;
- int mx = 0, my = 0, mh = 0, mw = 0;
- int sx = 0, sy = 0, sh = 0, sw = 0;
- float mfacts, sfacts;
- int mrest, srest;
- Client *c;
-
- getgaps(m, &oh, &ov, &ih, &iv, &n);
- if (n == 0)
- return;
-
- sx = mx = m->wx + ov;
- sy = my = m->wy + oh;
- sh = mh = m->wh - 2*oh;
- mw = m->ww - 2*ov - iv * (MIN(n, m->nmaster) - 1);
- sw = m->ww - 2*ov - iv * (n - m->nmaster - 1);
-
- if (m->nmaster && n > m->nmaster) {
- sh = (mh - ih) * (1 - m->mfact);
- mh = mh - ih - sh;
- sx = mx;
- sy = my + mh + ih;
- }
-
- getfacts(m, mw, sw, &mfacts, &sfacts, &mrest, &srest);
-
- for (i = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), i++) {
- if (i < m->nmaster) {
- resize(c, mx, my, mw * (c->cfact / mfacts) + (i < mrest ? 1 : 0) - (2*c->bw), mh - (2*c->bw), 0);
- mx += WIDTH(c) + iv;
- } else {
- resize(c, sx, sy, sw * (c->cfact / sfacts) + ((i - m->nmaster) < srest ? 1 : 0) - (2*c->bw), sh - (2*c->bw), 0);
- sx += WIDTH(c) + iv;
- }
- }
-}
-
static void
bstackhoriz(Monitor *m)
{
@@ -368,207 +315,6 @@ centeredmaster(Monitor *m)
}
}
-void
-centeredfloatingmaster(Monitor *m)
-{
- unsigned int i, n;
- float mfacts, sfacts;
- float mivf = 1.0; // master inner vertical gap factor
- int oh, ov, ih, iv, mrest, srest;
- int mx = 0, my = 0, mh = 0, mw = 0;
- int sx = 0, sy = 0, sh = 0, sw = 0;
- Client *c;
-
- getgaps(m, &oh, &ov, &ih, &iv, &n);
- if (n == 0)
- return;
-
- sx = mx = m->wx + ov;
- sy = my = m->wy + oh;
- sh = mh = m->wh - 2*oh;
- mw = m->ww - 2*ov - iv*(n - 1);
- sw = m->ww - 2*ov - iv*(n - m->nmaster - 1);
-
- if (m->nmaster && n > m->nmaster) {
- mivf = 0.8;
- /* go mfact box in the center if more than nmaster clients */
- if (m->ww > m->wh) {
- mw = m->ww * m->mfact - iv*mivf*(MIN(n, m->nmaster) - 1);
- mh = m->wh * 0.9;
- } else {
- mw = m->ww * 0.9 - iv*mivf*(MIN(n, m->nmaster) - 1);
- mh = m->wh * m->mfact;
- }
- mx = m->wx + (m->ww - mw) / 2;
- my = m->wy + (m->wh - mh - 2*oh) / 2;
-
- sx = m->wx + ov;
- sy = m->wy + oh;
- sh = m->wh - 2*oh;
- }
-
- getfacts(m, mw, sw, &mfacts, &sfacts, &mrest, &srest);
-
- for (i = 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 */
- resize(c, mx, my, mw * (c->cfact / mfacts) + (i < mrest ? 1 : 0) - (2*c->bw), mh - (2*c->bw), 0);
- mx += WIDTH(c) + iv*mivf;
- } else {
- /* stack clients are stacked horizontally */
- resize(c, sx, sy, sw * (c->cfact / sfacts) + ((i - m->nmaster) < srest ? 1 : 0) - (2*c->bw), sh - (2*c->bw), 0);
- sx += WIDTH(c) + iv;
- }
-}
-
-/*
- * Deck layout + gaps
- * https://dwm.suckless.org/patches/deck/
- */
-void
-deck(Monitor *m)
-{
- unsigned int i, n;
- int oh, ov, ih, iv;
- int mx = 0, my = 0, mh = 0, mw = 0;
- int sx = 0, sy = 0, sh = 0, sw = 0;
- float mfacts, sfacts;
- int mrest, srest;
- Client *c;
-
- getgaps(m, &oh, &ov, &ih, &iv, &n);
- if (n == 0)
- return;
-
- sx = mx = m->wx + ov;
- sy = my = m->wy + oh;
- sh = mh = m->wh - 2*oh - ih * (MIN(n, m->nmaster) - 1);
- sw = mw = m->ww - 2*ov;
-
- if (m->nmaster && n > m->nmaster) {
- sw = (mw - iv) * (1 - m->mfact);
- mw = mw - iv - sw;
- sx = mx + mw + iv;
- sh = m->wh - 2*oh;
- }
-
- getfacts(m, mh, sh, &mfacts, &sfacts, &mrest, &srest);
-
- if (n - m->nmaster > 0) /* override layout symbol */
- snprintf(m->ltsymbol, sizeof m->ltsymbol, "D %d", n - m->nmaster);
-
- for (i = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), i++)
- if (i < m->nmaster) {
- resize(c, mx, my, mw - (2*c->bw), mh * (c->cfact / mfacts) + (i < mrest ? 1 : 0) - (2*c->bw), 0);
- my += HEIGHT(c) + ih;
- } else {
- resize(c, sx, sy, sw - (2*c->bw), sh - (2*c->bw), 0);
- }
-}
-
-/*
- * Fibonacci layout + gaps
- * https://dwm.suckless.org/patches/fibonacci/
- */
-void
-fibonacci(Monitor *m, int s)
-{
- unsigned int i, n;
- int nx, ny, nw, nh;
- int oh, ov, ih, iv;
- int nv, hrest = 0, wrest = 0, r = 1;
- Client *c;
-
- getgaps(m, &oh, &ov, &ih, &iv, &n);
- if (n == 0)
- return;
-
- nx = m->wx + ov;
- ny = m->wy + oh;
- nw = m->ww - 2*ov;
- nh = m->wh - 2*oh;
-
- for (i = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next)) {
- if (r) {
- if ((i % 2 && (nh - ih) / 2 <= (bh + 2*c->bw))
- || (!(i % 2) && (nw - iv) / 2 <= (bh + 2*c->bw))) {
- r = 0;
- }
- if (r && i < n - 1) {
- if (i % 2) {
- nv = (nh - ih) / 2;
- hrest = nh - 2*nv - ih;
- nh = nv;
- } else {
- nv = (nw - iv) / 2;
- wrest = nw - 2*nv - iv;
- nw = nv;
- }
-
- if ((i % 4) == 2 && !s)
- nx += nw + iv;
- else if ((i % 4) == 3 && !s)
- ny += nh + ih;
- }
-
- if ((i % 4) == 0) {
- if (s) {
- ny += nh + ih;
- nh += hrest;
- }
- else {
- nh -= hrest;
- ny -= nh + ih;
- }
- }
- else if ((i % 4) == 1) {
- nx += nw + iv;
- nw += wrest;
- }
- else if ((i % 4) == 2) {
- ny += nh + ih;
- nh += hrest;
- if (i < n - 1)
- nw += wrest;
- }
- else if ((i % 4) == 3) {
- if (s) {
- nx += nw + iv;
- nw -= wrest;
- } else {
- nw -= wrest;
- nx -= nw + iv;
- nh += hrest;
- }
- }
- if (i == 0) {
- if (n != 1) {
- nw = (m->ww - iv - 2*ov) - (m->ww - iv - 2*ov) * (1 - m->mfact);
- wrest = 0;
- }
- ny = m->wy + oh;
- }
- else if (i == 1)
- nw = m->ww - nw - iv - 2*ov;
- i++;
- }
-
- resize(c, nx, ny, nw - (2*c->bw), nh - (2*c->bw), False);
- }
-}
-
-void
-dwindle(Monitor *m)
-{
- fibonacci(m, 1);
-}
-
-void
-spiral(Monitor *m)
-{
- fibonacci(m, 0);
-}
-
/*
* Gappless grid layout + gaps (ironically)
* https://dwm.suckless.org/patches/gaplessgrid/
@@ -623,40 +369,6 @@ gaplessgrid(Monitor *m)
}
/*
- * Gridmode layout + gaps
- * https://dwm.suckless.org/patches/gridmode/
- */
-void
-grid(Monitor *m)
-{
- unsigned int i, n;
- int cx, cy, cw, ch, cc, cr, chrest, cwrest, cols, rows;
- int oh, ov, ih, iv;
- Client *c;
-
- getgaps(m, &oh, &ov, &ih, &iv, &n);
-
- /* grid dimensions */
- for (rows = 0; rows <= n/2; rows++)
- if (rows*rows >= n)
- break;
- cols = (rows && (rows - 1) * rows >= n) ? rows - 1 : rows;
-
- /* window geoms (cell height/width) */
- ch = (m->wh - 2*oh - ih * (rows - 1)) / (rows ? rows : 1);
- cw = (m->ww - 2*ov - iv * (cols - 1)) / (cols ? cols : 1);
- chrest = (m->wh - 2*oh - ih * (rows - 1)) - ch * rows;
- cwrest = (m->ww - 2*ov - iv * (cols - 1)) - cw * cols;
- for (i = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), i++) {
- cc = i / rows;
- cr = i % rows;
- cx = m->wx + ov + cc * (cw + iv) + MIN(cc, cwrest);
- cy = m->wy + oh + cr * (ch + ih) + MIN(cr, chrest);
- resize(c, cx, cy, cw + (cc < cwrest ? 1 : 0) - 2*c->bw, ch + (cr < chrest ? 1 : 0) - 2*c->bw, False);
- }
-}
-
-/*
* Horizontal grid layout + gaps
* https://dwm.suckless.org/patches/horizgrid/
*/
@@ -722,64 +434,6 @@ horizgrid(Monitor *m) {
}
/*
- * nrowgrid layout + gaps
- * https://dwm.suckless.org/patches/nrowgrid/
- */
-void
-nrowgrid(Monitor *m)
-{
- unsigned int n;
- int ri = 0, ci = 0; /* counters */
- int oh, ov, ih, iv; /* vanitygap settings */
- unsigned int cx, cy, cw, ch; /* client geometry */
- unsigned int uw = 0, uh = 0, uc = 0; /* utilization trackers */
- unsigned int cols, rows = m->nmaster + 1;
- Client *c;
-
- /* count clients */
- getgaps(m, &oh, &ov, &ih, &iv, &n);
-
- /* nothing to do here */
- if (n == 0)
- return;
-
- /* force 2 clients to always split vertically */
- if (FORCE_VSPLIT && n == 2)
- rows = 1;
-
- /* never allow empty rows */
- if (n < rows)
- rows = n;
-
- /* define first row */
- cols = n / rows;
- uc = cols;
- cy = m->wy + oh;
- ch = (m->wh - 2*oh - ih*(rows - 1)) / rows;
- uh = ch;
-
- for (c = nexttiled(m->clients); c; c = nexttiled(c->next), ci++) {
- if (ci == cols) {
- uw = 0;
- ci = 0;
- ri++;
-
- /* next row */
- cols = (n - uc) / (rows - ri);
- uc += cols;
- cy = m->wy + oh + uh + ih;
- uh += ch + ih;
- }
-
- cx = m->wx + ov + uw;
- cw = (m->ww - 2*ov - uw) / (cols - ci);
- uw += cw + iv;
-
- resize(c, cx, cy, cw - (2*c->bw), ch - (2*c->bw), 0);
- }
-}
-
-/*
* Default tile layout + gaps
*/
static void
@@ -819,4 +473,4 @@ tile(Monitor *m)
resize(c, sx, sy, sw - (2*c->bw), sh * (c->cfact / sfacts) + ((i - m->nmaster) < srest ? 1 : 0) - (2*c->bw), 0);
sy += HEIGHT(c) + ih;
}
-} \ No newline at end of file
+}