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

From: Anselm R. Garbe <arg_AT_suckless.org>
Date: Mon, 17 Mar 2008 17:44:25 +0100

Hi there, as mentioned yesterday, I found a nice way how to
handle the geom stuff in the future.

In config.h one can now do:

DEFGEOM(single, 0, 0, sw, 0, bh, sw, sh-bh, wx, wy, 0.55*sw, \
        wh, mx+mw, wy, ww-mw, wh, wx, wy, ww, wh)
DEFGEOM(dual, 0, 0,1280, 0, bh, ww, wh-bh, wx, wy, \
        1280,800-bh, 1280, 0, ww-mw, sh, mx, my, mw, mh)

which will define a function at compile time called single(),
which sets all the geometry variables according to the input.
One can expect s{x,y,w,h} and bh being initialized, and they
can't be changed.

Besides this, in config.h you then define:

Geom geoms[] = {
        /* symbol function */
        { "<>", single }, /* first entry is default */
        { ")(", dual },
};

This maps the single() head geometry to the "<>" string, and the
dual() head geometry to the ")(" string.

Then you can define key bindings like:

        { MODKEY, XK_a, setgeom, ")(" },
        { MODKEY, XK_d, setgeom, "<>" },

To grow/shrink the master area, you could reuse this approach as
follows:

DEFGEOM(growmaster, bx, by, bw, wx, wy, ww, wh, mx, my, \
        mw+=20, mh, tx, ty, tw-=20, th, mox, moy, mow, moh)
DEFGEOM(shrinkmaster, bx, by, bw, wx, wy, ww, wh, mx, my, \
        mw-=20, mh, tx, ty, tw+=20, th, mox, moy, mow, moh)

        { "+|", growmaster },
        { "|-", shrinkmaster },

        { MODKEY, XK_h, setgeom, "|-" },
        { MODKEY, XK_l, setgeom, "+|" },

Toggling the bar or bottom stack stuff works equivalently.

You can upgrade to hg tip, to check this new approach.

Kind regards,

-- 
 Anselm R. Garbe >< http://www.suckless.org/ >< GPG key: 0D73F361
Received on Mon Mar 17 2008 - 17:44:25 UTC

This archive was generated by hypermail 2.2.0 : Sun Jul 13 2008 - 15:26:39 UTC