text: void
  fibonacci(Monitor *mon, int s) {
         unsigned int i, n, nx, ny, nw, nh;
         Client *c;
  
         for(n = 0, c = nexttiled(mon->clients); c; c = nexttiled(c->next), n++);
         if(n == 0)
                 return;
  
         nx = mon->wx;
         ny = 0;
         nw = mon->ww;
         nh = mon->wh;
  
         for(i = 0, c = nexttiled(mon->clients); c; c = nexttiled(c->next)) {
                 if((i % 2 && nh / 2 > 2 * c->bw)
                    || (!(i % 2) && nw / 2 > 2 * c->bw)) {
                         if(i < n - 1) {
                                 if(i % 2)
                                         nh /= 2;
                                 else
                                         nw /= 2;
                                 if((i % 4) == 2 && !s)
                                         nx += nw;
                                 else if((i % 4) == 3 && !s)
                                         ny += nh;
                         }
                         if((i % 4) == 0) {
                                 if(s)
                                         ny += nh;
                                 else
                                         ny -= nh;
                         }
                         else if((i % 4) == 1)
                                 nx += nw;
                         else if((i % 4) == 2)
                                 ny += nh;
                         else if((i % 4) == 3) {
                                 if(s)
                                         nx += nw;
                                 else
                                         nx -= nw;
                         }
                         if(i == 0)
                         {
                                 if(n != 1)
                                         nw = mon->ww * mon->mfact;
                                 ny = mon->wy;
                         }
                         else if(i == 1)
                                 nw = mon->ww - nw;
                         i++;
                 }
                 resize(c, nx, ny, nw - 2 * c->bw, nh - 2 * c->bw, False);
         }
  }
  
  void
  dwindle(Monitor *mon) {
         fibonacci(mon, 1);
  }
  
  void
  spiral(Monitor *mon) {
         fibonacci(mon, 0);
  }
  