Attached is my config.h.
(Use a fixed-width font for a neater DEFGEOM table.)
This is for your curiosity only because:
I AM NOT A PROGRAMMER.
ALSO, IT IS PROBABLY FOR SINGLE-MONITOR ONLY.
Here are the highlights:
1. alt-space cycles through ...rightstack/bottomstack/monocle...
(This was one feature from xmonad that I strongly favored,
and it is possible now that monocle is working.)
2. "togglebar" works right with the above.
3. "setmwfact" works with the above, persistently through
geometry changes.
If these things could be done better or more simply, I won't mind
being corrected.
(I've only made one small change to dwm.c, unrelated to the above,
that displays monocle borderless.)
It is perfect for me.
Thank you, to the dwm developers!
_________________________________________________________________
Windows Live Hotmail is giving away Zunes.
http://www.windowslive-hotmail.com/ZuneADay/?locale=en-US&ocid=TXT_TAGLM_Mobile_Zune_V3int geomnum = 0;
double mwf = 0.5;
#define FONT "-xos4-terminus-*-*-*-*-24-*-*-*-*-*-*-*"
#define BORDERPX 1
#define NORMBORDERCOLOR "#333333"
#define SELBORDERCOLOR "#00ff00"
#define NORMBGCOLOR "#bbccbb"
#define NORMFGCOLOR "#000000"
#define SELBGCOLOR "#002200"
#define SELFGCOLOR "#eeffee"
#define RESIZEHINTS False
#define SNAP 32
/* TAGS */
const char tags[][MAXTAGLEN] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
Rule rules[] = {
/* class instance title tags ref isfloating */
{ NULL, NULL, "Firefox", tags[8], False },
{ NULL, NULL, "Wenlin", tags[6], False },
{ NULL, NULL, "Brush Tool", tags[6], True },
{ NULL, NULL, "Gimp", NULL, True },
{ NULL, NULL, "MPlayer", NULL, True },
{ NULL, NULL, "Acroread", NULL, True },
};
/* Comment: I shortened the names of these geometries to fit this table on one screen.
* r = rightstack
* b = bottomstack
* m = monocle
* br = rightstack with bar
* bb = bottomstack with bar
* bm = monocle with bar
*/
/* GEOMETRIES */
/* NAME BAR WINDOW MASTER TILING MONOCLE */
/* x y w x y w h x y w h x y w h x y w h */
DEFGEOM( r, -sw,0,sw, 0, 0,sw, sh, 0, 0,mwf*sw, sh, mw, wy,ww-mw, wh, 0, 0,sw, sh )
DEFGEOM( b, -sw,0,sw, 0, 0,sw, sh, 0, 0, sw,mwf*sh, 0, mh, sw,wh-mh, 0, 0,sw, sh )
DEFGEOM( m, -sw,0,sw, 0, 0,sw, sh, 0, 0,mwf*sw, sh, mw, wy,ww-mw, wh, 0, 0,sw, sh )
DEFGEOM(br, 0,0,sw, 0,bh,sw,sh-bh, 0,bh,mwf*sw, wh, mw, bh,sw-mw,sh-bh, 0,bh,sw,sh-bh )
DEFGEOM(bb, 0,0,sw, 0,bh,sw,sh-bh, 0,bh, sw,mwf*wh, 0,mh+bh, sw,wh-mh, 0,bh,sw,sh-bh )
DEFGEOM(bm, 0,0,sw, 0,bh,sw,sh-bh, 0,bh, sw, wh, 0, bh, sw,sh-bh, 0,bh,sw,sh-bh )
Geom geoms[] = {{"RR", r}, {"BB", b}, {"MM", m}, {"Br", br}, {"Bb", bb}, {"Bm", bm}};
/* LAYOUTS */
Layout layouts[] = {
{ "[]=", tilev, False },
{ "[]|", tileh, False },
{ "><>", floating, True },
{ "[M]", monocle, True }
};
/* MY EXTRAS */
void mytogglebar() {
if(geomnum < 3) {
geomnum += 3;
} else {
geomnum -= 3;
}
geom = &geoms[geomnum];
geom->apply();
updatebarpos();
arrange();
}
/* Comment: These two are = "setmwfact". */
void mygrowm() {
if(geomnum == 2 || geomnum == 5 || mwf > 0.9) {
return;
}
mwf += 0.05;
geom = &geoms[geomnum];
geom->apply();
arrange();
}
void myshrinkm() {
if(geomnum == 2 || geomnum == 5 || mwf < 0.1) {
return;
}
mwf -= 0.05;
geom = &geoms[geomnum];
geom->apply();
arrange();
}
/* Comment: This steps through the geometries exactly as I desire.
* Simple. */
void
mycyclegeoms() {
if(geomnum == 0 || geomnum == 3) {
geomnum += 1;
geom = &geoms[geomnum];
geom->apply();
updatebarpos();
arrange();
setlayout("[]|");
} else {
if(geomnum == 1 || geomnum == 4) {
geomnum += 1;
geom = &geoms[geomnum];
geom->apply();
updatebarpos();
arrange();
setlayout("[M]");
} else {
if(geomnum == 2) {
geomnum -= 2;
geom = &geoms[geomnum];
geom->apply();
updatebarpos();
arrange();
setlayout("[]=");
} else {
if(geomnum == 5) {
geomnum -= 2;
geom = &geoms[geomnum];
geom->apply();
setlayout("[]=");
}}}}
}
#define MODKEY Mod1Mask
Key keys[] = {
{ MODKEY|ShiftMask, XK_Return, spawn, "exec urxvtc" },
{ MODKEY, XK_p, spawn,
"exec dmenu_run -fn '"FONT"' -nb '"NORMBGCOLOR"' -nf '"NORMFGCOLOR"' -sb '"SELBGCOLOR"' -sf '"SELFGCOLOR"'" },
{ MODKEY, XK_space, mycyclegeoms, NULL },
{ MODKEY, XK_b, mytogglebar, NULL },
{ MODKEY, XK_h, myshrinkm, NULL },
{ MODKEY, XK_l, mygrowm, NULL },
{ MODKEY, XK_m, setlayout, "[M]" },
{ MODKEY, XK_f, setlayout, "><>" },
{ MODKEY, XK_t, togglefloating, NULL },
{ MODKEY, XK_j, focusnext, NULL },
{ MODKEY, XK_k, focusprev, NULL },
{ MODKEY, XK_r, reapply, NULL },
{ MODKEY, XK_Return, zoom, NULL },
{ MODKEY, XK_Tab, viewprevtag, NULL },
{ MODKEY|ShiftMask, XK_c, killclient, NULL },
{ MODKEY, XK_0, view, NULL },
{ MODKEY, XK_1, view, tags[0] },
{ MODKEY, XK_2, view, tags[1] },
{ MODKEY, XK_3, view, tags[2] },
{ MODKEY, XK_4, view, tags[3] },
{ MODKEY, XK_5, view, tags[4] },
{ MODKEY, XK_6, view, tags[5] },
{ MODKEY, XK_7, view, tags[6] },
{ MODKEY, XK_8, view, tags[7] },
{ MODKEY, XK_9, view, tags[8] },
{ MODKEY|ControlMask, XK_1, toggleview, tags[0] },
{ MODKEY|ControlMask, XK_2, toggleview, tags[1] },
{ MODKEY|ControlMask, XK_3, toggleview, tags[2] },
{ MODKEY|ControlMask, XK_4, toggleview, tags[3] },
{ MODKEY|ControlMask, XK_5, toggleview, tags[4] },
{ MODKEY|ControlMask, XK_6, toggleview, tags[5] },
{ MODKEY|ControlMask, XK_7, toggleview, tags[6] },
{ MODKEY|ControlMask, XK_8, toggleview, tags[7] },
{ MODKEY|ControlMask, XK_9, toggleview, tags[8] },
{ MODKEY|ShiftMask, XK_0, tag, NULL },
{ MODKEY|ShiftMask, XK_1, tag, tags[0] },
{ MODKEY|ShiftMask, XK_2, tag, tags[1] },
{ MODKEY|ShiftMask, XK_3, tag, tags[2] },
{ MODKEY|ShiftMask, XK_4, tag, tags[3] },
{ MODKEY|ShiftMask, XK_5, tag, tags[4] },
{ MODKEY|ShiftMask, XK_6, tag, tags[5] },
{ MODKEY|ShiftMask, XK_7, tag, tags[6] },
{ MODKEY|ShiftMask, XK_8, tag, tags[7] },
{ MODKEY|ShiftMask, XK_9, tag, tags[8] },
{ MODKEY|ControlMask|ShiftMask, XK_1, toggletag, tags[0] },
{ MODKEY|ControlMask|ShiftMask, XK_2, toggletag, tags[1] },
{ MODKEY|ControlMask|ShiftMask, XK_3, toggletag, tags[2] },
{ MODKEY|ControlMask|ShiftMask, XK_4, toggletag, tags[3] },
{ MODKEY|ControlMask|ShiftMask, XK_5, toggletag, tags[4] },
{ MODKEY|ControlMask|ShiftMask, XK_6, toggletag, tags[5] },
{ MODKEY|ControlMask|ShiftMask, XK_7, toggletag, tags[6] },
{ MODKEY|ControlMask|ShiftMask, XK_8, toggletag, tags[7] },
{ MODKEY|ControlMask|ShiftMask, XK_9, toggletag, tags[8] },
{ MODKEY|ShiftMask, XK_q, quit, NULL },
};