| dwm-5.2-gaplessgrid.diff - sites - public wiki contents of suckless.org | |
| git clone git://git.suckless.org/sites | |
| Log | |
| Files | |
| Refs | |
| --- | |
| dwm-5.2-gaplessgrid.diff (1859B) | |
| --- | |
| 1 diff -up dwm-5.2-original/config.def.h dwm-5.2-modified/config.def.h | |
| 2 --- dwm-5.2-original/config.def.h 2008-09-09 21:46:17.000000000 +… | |
| 3 +++ dwm-5.2-modified/config.def.h 2008-10-20 20:07:42.000000000 +… | |
| 4 @@ -28,11 +28,13 @@ static Rule rules[] = { | |
| 5 static float mfact = 0.55; /* factor of master area size [0.05..0.… | |
| 6 static Bool resizehints = True; /* False means respect size hints in ti… | |
| 7 | |
| 8 +#include "gaplessgrid.c" | |
| 9 static Layout layouts[] = { | |
| 10 /* symbol arrange function */ | |
| 11 { "[]=", tile }, /* first entry is default */ | |
| 12 { "><>", NULL }, /* no layout function means floating b… | |
| 13 { "[M]", monocle }, | |
| 14 + { "###", gaplessgrid }, | |
| 15 }; | |
| 16 | |
| 17 /* key definitions */ | |
| 18 diff -up dwm-5.2-original/gaplessgrid.c dwm-5.2-modified/gaplessgrid.c | |
| 19 --- /dev/null 2008-10-20 20:09:51.000000000 +0200 | |
| 20 +++ dwm-5.2-modified/gaplessgrid.c 2008-10-20 20:06:59.000000000 … | |
| 21 @@ -0,0 +1,38 @@ | |
| 22 +void | |
| 23 +gaplessgrid() { | |
| 24 + unsigned int n, cols, rows, cn, rn, i, cx, cy, cw, ch; | |
| 25 + Client *c; | |
| 26 + | |
| 27 + for(n = 0, c = nexttiled(clients); c; c = nexttiled(c->next)) | |
| 28 + n++; | |
| 29 + if(n == 0) | |
| 30 + return; | |
| 31 + | |
| 32 + /* grid dimensions */ | |
| 33 + for(cols = 0; cols <= n/2; cols++) | |
| 34 + if(cols*cols >= n) | |
| 35 + break; | |
| 36 + if(n == 5) /* set layout against the general cal… | |
| 37 + cols = 2; | |
| 38 + rows = n/cols; | |
| 39 + | |
| 40 + /* window geometries (cell height/width/x/y) */ | |
| 41 + cw = ww / (cols ? cols : 1); | |
| 42 + cn = 0; /* current column number */ | |
| 43 + rn = 0; /* current row number */ | |
| 44 + for(i = 0, c = nexttiled(clients); c; c = nexttiled(c->next)) { | |
| 45 + if(i/rows+1 > cols-n%cols) | |
| 46 + rows = n/cols+1; | |
| 47 + ch = wh / (rows ? rows : 1); | |
| 48 + cx = wx + cn*cw; | |
| 49 + cy = wy + rn*ch; | |
| 50 + resize(c, cx, cy, cw - 2 * c->bw, ch - 2 * c->bw, False… | |
| 51 + | |
| 52 + i++; | |
| 53 + rn++; | |
| 54 + if(rn >= rows) { /* jump to the next column */ | |
| 55 + rn = 0; | |
| 56 + cn++; | |
| 57 + } | |
| 58 + } | |
| 59 +} |