Re: [dwm] found a nice way to do the setgeom stuff

From: Anselm R. Garbe <arg_AT_suckless.org>
Date: Wed, 19 Mar 2008 10:30:38 +0100

On Wed, Mar 19, 2008 at 01:15:30AM +0100, Nibble wrote:
> Finally, I have included the next Geoms in my config.h (dual screen setup:
> virtual 2048x768):
>
> /* Single screen */
> DEFGEOM(single, 0, 0, sw, 0, bh, sw, sh-bh, wx, wy, MWFACT*sw, wh, mx+mw,
> wy, ww-mw, wh, wx, wy, ww, wh)
> /* Dual screen */
> DEFGEOM(dual, 0, 0, 1024, 0, bh, sw, sh-bh, wx, wy, 1024,768-bh, 1024, 0,
> ww-mw, sh, mx, my, mw, mh)
> /* Single screen without bar*/
> DEFGEOM(singlewob, -sw, 0, sw, 0, 0, sw, sh, wx, wy, MWFACT*sw, wh, mx+mw,
> wy, ww-mw, wh, wx, wy, ww, wh)
> /* Dual screen without bar */
> DEFGEOM(dualwob, -1024, 0, 1024, 0, 0, sw, sh, wx, wy, 1024, 768, 1024, 0,
> ww-mw, sh, mx, my, mw, mh)
> /* Shrink master */
> DEFGEOM(shrinkmaster, bx, by, bw, wx, wy, ww, wh, mx, my, mw-=20, mh, tx-=20,
> ty, tw+=20, th, mox, moy, mow, moh)
> /* Grow master */
> DEFGEOM(growmaster, bx, by, bw, wx, wy, ww, wh, mx, my, mw+=20, mh, tx+=20,
> ty, tw-=20, th, mox, moy, mow, moh)
>
> Geom geoms[] = {
> /* symbol function */
> { "<->", single }, /* first entry is default */
> { "-)(", dual },
> { "<.>", singlewob },
> { ".)(", dualwob },
> { "|-", shrinkmaster },
> { "+|", growmaster },
> };
>
> I have kept the shrinkmaster and growmaster geoms due to it is useful to
> change the master area width regardless of the geom you are using.

Well there is one ugly thing to note about the shrinkmaster and
growmaster proposal I did some days ago, which I heavily dislike
and that's why I also don't propose to keep them as an official
feature.

The problem is:

void
configurenotify(XEvent *e) {
        XConfigureEvent *ev = &e->xconfigure;

        if(ev->window == root && (ev->width != sw || ev->height != sh)) {
                sw = ev->width;
                sh = ev->height;
                setgeom(NULL);
        }
}

This event handler is invoked whenever X changes the screen
resolution dynamically. So for the case of
shrinkmaster/growmaster being the current geometry this means,
that the master area will shrink/grow whenever the
screen resolution is changed dynamically.

That's the reason why I propose to get over the idea of
shrink/growmaster.

Kind regards,

-- 
 Anselm R. Garbe >< http://www.suckless.org/ >< GPG key: 0D73F361
Received on Wed Mar 19 2008 - 10:30:38 UTC

This archive was generated by hypermail 2.2.0 : Sun Jul 13 2008 - 15:27:17 UTC