Helu kids, the last fibonacci layout patch was for dwm-4.6: herbst.homeunix.org/~jceb/dwm/4.6/current/dwm-4.6-fibonacci.diff Preserving the logic of that patch, here is an updated fibonacci() function which works with dwm-4.9 with the default `single' geometry. It uses tilemaster() to draw the master window (so it can be resized as usual), and leaves focus and stacking tasks to arrange(), elsewhere. Hopefully this can be tested and used to update the patch for dwm-5.0 when it happens -- Guby, Madhu.
void fibonacci(int shape) { const float fract = 0.5; unsigned int i, n = counttiled(), nx, ny, nw, nh; Client *c; if (n == 0) return; c = tilemaster(n); if (--n == 0) return; nx = tx; ny = ty; nw = tw; nh = th; for(i = 0, c = nexttiled(c->next); c; c = nexttiled(c->next)) { if((i % 2 && nw / 2 > 2 * c->bw) || (!(i % 2) && nh / 2 > 2 * c->bw)) { if((i+1) < n) { if(i % 2) nw *= fract; else nh *= fract; if((i % 4) == 2 && !shape) ny += nh; else if((i % 4) == 3 && !shape) nx += nw; } if((i % 4) == 0) { if(shape) nx += nw; else nx -= nw; } else if((i % 4) == 1) ny += nh; else if((i % 4) == 2) nx += nw; else if((i % 4) == 3) { if(shape) ny += nh; else ny -= nh; } if (i == 0) nx = tx; i++; } tileresize(c, nx, ny, nw - 2 * c->bw, nh - 2 * c->bw); } }