JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
micromizing dwm step 1
[dwm.git] / config.h
index 430539c..9dec069 100644 (file)
--- a/config.h
+++ b/config.h
@@ -1,67 +1,93 @@
-/*
- * (C)opyright MMVI Anselm R. Garbe <garbeam at gmail dot com>
- * See LICENSE file for license details.
- */
+/* See LICENSE file for copyright and license details. */
 
-#define FONT                   "fixed"
-#define BGCOLOR                        "#666699"
-#define FGCOLOR                        "#eeeeee"
-#define BORDERCOLOR            "#9999CC"
-#define MODKEY                 Mod1Mask
-#define NUMLOCKMASK            Mod2Mask
-#define MASTERW                        52 /* percent */
-#define WM_PROTOCOL_DELWIN     1
+/* appearance */
+#define BARPOS                 BarTop /* BarBot, BarOff */
+#define BORDERPX               1
+#define FONT                   "-*-terminus-medium-r-*-*-12-*-*-*-*-*-iso10646-*"
+#define NORMBORDERCOLOR                "#333"
+#define NORMBGCOLOR            "#000"
+#define NORMFGCOLOR            "#ccc"
+#define SELBORDERCOLOR         "#f00"
+#define SELBGCOLOR             "#00f"
+#define SELFGCOLOR             "#fff"
 
-enum { Tfnord, Tdev, Tnet, Twork, Tmisc, TLast };
-#define TAGS \
-char *tags[TLast] = { \
-       [Tfnord] = "fnord", \
-       [Tdev] = "dev", \
-       [Tnet] = "net", \
-       [Twork] = "work", \
-       [Tmisc] = "misc", \
+/* tagging */
+static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9", NULL };
+static Rule rules[] = {
+       /* class:instance:title regex   tags regex      isfloating */
+       { "Firefox",                    "3",            False },
+       { "Gimp",                       NULL,           True },
+       { "MPlayer",                    NULL,           True },
+       { "Acroread",                   NULL,           True },
 };
-#define DEFTAG Tdev
-
 
-#define CMDS \
-       const char *term[] = { "xterm", NULL };
-
-#define KEYS \
-static Key key[] = { \
-       /* modifier             key             function        arguments */ \
-       { MODKEY,               XK_0,           view,           { .i = Tfnord } }, \
-       { MODKEY,               XK_1,           view,           { .i = Tdev } }, \
-       { MODKEY,               XK_2,           view,           { .i = Tnet } }, \
-       { MODKEY,               XK_3,           view,           { .i = Twork } }, \
-       { MODKEY,               XK_4,           view,           { .i = Tmisc} }, \
-       { MODKEY,               XK_h,           viewprev,       { 0 } }, \
-       { MODKEY,               XK_j,           focusnext,      { 0 } }, \
-       { MODKEY,               XK_k,           focusprev,      { 0 } }, \
-       { MODKEY,               XK_l,           viewnext,       { 0 } }, \
-       { MODKEY,               XK_m,           togglemax,      { 0 } }, \
-       { MODKEY,               XK_space,       togglemode,     { 0 } }, \
-       { MODKEY,               XK_Return,      zoom,           { 0 } }, \
-       { MODKEY|ControlMask,   XK_0,           appendtag,      { .i = Tfnord } }, \
-       { MODKEY|ControlMask,   XK_1,           appendtag,      { .i = Tdev } }, \
-       { MODKEY|ControlMask,   XK_2,           appendtag,      { .i = Tnet } }, \
-       { MODKEY|ControlMask,   XK_3,           appendtag,      { .i = Twork } }, \
-       { MODKEY|ControlMask,   XK_4,           appendtag,      { .i = Tmisc } }, \
-       { MODKEY|ShiftMask,     XK_0,           replacetag,     { .i = Tfnord } }, \
-       { MODKEY|ShiftMask,     XK_1,           replacetag,     { .i = Tdev } }, \
-       { MODKEY|ShiftMask,     XK_2,           replacetag,     { .i = Tnet } }, \
-       { MODKEY|ShiftMask,     XK_3,           replacetag,     { .i = Twork } }, \
-       { MODKEY|ShiftMask,     XK_4,           replacetag,     { .i = Tmisc } }, \
-       { MODKEY|ShiftMask,     XK_c,           killclient,     { 0 } }, \
-       { MODKEY|ShiftMask,     XK_q,           quit,           { 0 } }, \
-       { MODKEY|ShiftMask,     XK_Return,      spawn,          { .argv = term } }, \
+/* layout(s) */
+static Layout layouts[] = {
+       /* symbol               function */
+       { "[]=",                tile }, /* first entry is default */
+       { "><>",                floating },
 };
+#define RESIZEHINTS            True    /* False - respect size hints in tiled resizals */
+#define MWFACT                 0.6     /* master width factor [0.1 .. 0.9] */
+#define SNAP                   32      /* snap pixel */
 
-#define RULES \
-static Rule rule[] = { \
-       /* class:instance       tags                            isfloat */ \
-       { "Firefox.*",          { [Tnet] = "net" },             False }, \
-       { "Gimp.*",             { 0 },                          True}, \
+/* key definitions */
+#define MODKEY                 Mod1Mask
+#define KEYS \
+Key keys[] = { \
+       /* modifier                     key             function        argument */ \
+       { MODKEY,                       XK_p,           spawn, \
+               "exe=`dmenu_path | dmenu -fn '"FONT"' -nb '"NORMBGCOLOR"' -nf '"NORMFGCOLOR"'" \
+               " -sb '"SELBGCOLOR"' -sf '"SELFGCOLOR"'` && exec $exe" }, \
+       { MODKEY|ShiftMask,             XK_Return,      spawn, \
+               "exec xterm -bg '"NORMBGCOLOR"' -fg '"NORMFGCOLOR"' -cr '"NORMFGCOLOR"' +sb -fn '"FONT"'" }, \
+       { MODKEY,                       XK_space,       setlayout,      NULL }, \
+       { MODKEY,                       XK_b,           togglebar,      NULL }, \
+       { MODKEY,                       XK_j,           focusnext,      NULL }, \
+       { MODKEY,                       XK_k,           focusprev,      NULL }, \
+       { MODKEY,                       XK_h,           setmwfact,      "-0.05" }, \
+       { MODKEY,                       XK_l,           setmwfact,      "+0.05" }, \
+       { MODKEY,                       XK_m,           togglemax,      NULL }, \
+       { MODKEY,                       XK_Return,      zoom,           NULL }, \
+       { MODKEY|ShiftMask,             XK_space,       togglefloating, 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 }, \
 };
-
-#define ARRANGE dotile