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 +} |