X-Git-Url: https://git.xinqibao.xyz/dwm.git/blobdiff_plain/3a79b82721a4772e1c92acf5f3be41eaf0dc28d2..6877205e9d8eed2b839be98c40679fa45a93e0ca:/config.def.h

diff --git a/config.def.h b/config.def.h
index d1d884e..5a99b7f 100644
--- a/config.def.h
+++ b/config.def.h
@@ -10,44 +10,30 @@
 #define SELBGCOLOR		"#0066ff"
 #define SELFGCOLOR		"#ffffff"
 
-/* bar position */
-#define BX sx
-#define BY sy
-#define BW MW
-
-/* window area */
-#define WX 0
-#define WY bh
-#define WW sw
-#define WH sh
-
-/* master area */
-#define MX sx
-#define MY sy + bh
-#define MW ((int)(((float)sw) * 0.6))
-#define MH sh - bh
-
-/* tile area, might be on a different screen */
-#define TX sx + MW
-#define TY sy
-#define TW sw - MW
-#define TH sh
-
-/* monocle area, might be restricted to a specific screen */
-#define MOX sx
-#define MOY MY
-#define MOW sw
-#define MOH MH
-
 /* tagging */
 const char tags[][MAXTAGLEN] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
 
 Rule rules[] = {
-	/* class:instance:title substr	tags ref	isfloating */
-	{ "Firefox",			tags[8],	False },
-	{ "Gimp",			NULL,		True },
-	{ "MPlayer",			NULL,		True },
-	{ "Acroread",			NULL,		True },
+	/* class	instance	title		tags ref	isfloating */
+	{ NULL,		NULL,		"Firefox",	tags[8],	False },
+	{ NULL,		NULL,		"Gimp",		NULL,		True },
+	{ NULL,		NULL,		"MPlayer",	NULL,		True },
+	{ NULL,		NULL,		"Acroread",	NULL,		True },
+};
+
+/* geometries, s{x,y,w,h} and bh are already initualized here */
+/*   func name  bx  by  bw  wx  wy  ww     wh  mx  my       mw  mh     tx  ty     tw  th  mox moy mow moh */
+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)
+/* DEFGEOM(growmaster, bx, by, bw, wx, wy, ww, wh, mx, my, mw+20, mh, mx+mw, ty, tw-20, th, mox, moy, mow, moh) */
+/* DEFGEOM(shrinkmaster, bx, by, bw, wx, wy, ww, wh, mx, my, mw-20, mh, mx+mw, ty, tw+20, th, mox, moy, mow, moh) */
+
+Geom geoms[] = {
+	/* symbol	function */
+	{ "<>",		single },	/* first entry is default */
+	{ ")(",		dual },
+/*	{ "+|",		growmaster },*/
+/*	{ "|-",		shrinkmaster },*/
 };
 
 /* layout(s) */
@@ -55,23 +41,21 @@ Rule rules[] = {
 #define SNAP			32	/* snap pixel */
 
 Layout layouts[] = {
-	/* symbol		function */
-	{ "[]=",		tile }, /* first entry is default */
-	{ "><>",		floating },
-	{ "[M]",		monocle },
+	/* symbol		function	isfloating */
+	{ "[]=",		tilev,		False }, /* first entry is default */
+	{ "[]|",		tileh,		False },
+	{ "><>",		floating,	True },
+	{ "[M]",		monocle,	True },
 };
 
 /* key definitions */
 #define MODKEY			Mod1Mask
 Key keys[] = {
 	/* modifier			key		function	argument */
-#if ANSELM_OFFICE
-	{ MODKEY,			XK_p,		spawn,
-		"exec dmenu_run -fn '"FONT"' -nb '"NORMBGCOLOR"' -nf '"NORMFGCOLOR"' -sb '"SELBGCOLOR"' -sf '"SELFGCOLOR"' -x 0 -y 0 -w 1280" },
-#else
+	{ MODKEY,			XK_a,		setgeom,	")(" },
+	{ MODKEY,			XK_d,		setgeom,	"<>" },
 	{ MODKEY,			XK_p,		spawn,
 		"exec dmenu_run -fn '"FONT"' -nb '"NORMBGCOLOR"' -nf '"NORMFGCOLOR"' -sb '"SELBGCOLOR"' -sf '"SELFGCOLOR"'" },
-#endif
 	{ MODKEY|ShiftMask,		XK_Return,	spawn, "exec uxterm" },
 	{ MODKEY,			XK_j,		focusnext,	NULL },
 	{ MODKEY,			XK_k,		focusprev,	NULL },
@@ -80,7 +64,8 @@ Key keys[] = {
 	{ MODKEY,			XK_Tab,		viewprevtag,	NULL },
 	{ MODKEY,			XK_m,		setlayout,	"[M]" },
 	{ MODKEY,			XK_f,		setlayout,	"><>" },
-	{ MODKEY,			XK_t,		setlayout,	"[]=" },
+	{ MODKEY,			XK_v,		setlayout,	"[]=" },
+	{ MODKEY,			XK_h,		setlayout,	"[]|" },
 	{ MODKEY|ShiftMask,		XK_space,	togglefloating,	NULL },
 	{ MODKEY|ShiftMask,		XK_c,		killclient,	NULL },
 	{ MODKEY,			XK_0,		view,		NULL },