diff options
| -rw-r--r-- | config.anselm.h | 127 | ||||
| -rw-r--r-- | config.def.h | 10 | ||||
| -rw-r--r-- | dwm.1 | 7 | ||||
| -rw-r--r-- | dwm.c | 49 | 
4 files changed, 177 insertions, 16 deletions
| diff --git a/config.anselm.h b/config.anselm.h new file mode 100644 index 0000000..e60a2c8 --- /dev/null +++ b/config.anselm.h @@ -0,0 +1,127 @@ +/* See LICENSE file for copyright and license details. */ + +/* appearance */ +#define BORDERPX		1 +#define FONT			"-*-terminus-medium-r-normal-*-14-*-*-*-*-*-*-*" +#define NORMBORDERCOLOR		"#cccccc" +#define NORMBGCOLOR		"#cccccc" +#define NORMFGCOLOR		"#000000" +#define SELBORDERCOLOR		"#0066ff" +#define SELBGCOLOR		"#0066ff" +#define SELFGCOLOR		"#ffffff" + +/* bar position */ +#define BX 0 +#define BY 0 +#define BW 1280 + +/* window area, including floating windows */ +#define WX 0 +#define WY bh +#define WW sw +#define WH sh - bh + +/* master area */ +#define MX WX +#define MY bh +#define MW 1280 +#define MH 800 - bh + +/* tile area, might be on a different screen */ +#define TX 1280 +#define TY 0 +#define TW 1680 +#define TH 1050 + +/* monocle area, might be restricted to a specific screen */ +#define MOX MX +#define MOY MY +#define MOW MW +#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 }, +}; + +/* layout(s) */ +#define RESIZEHINTS		True	/* False - respect size hints in tiled resizals */ +#define SNAP			32	/* snap pixel */ + +Layout layouts[] = { +	/* symbol		function	isfloating */ +	{ "[]|",		tileh,		False }, /* first entry is default */ +	{ "[]=",		tilev,		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_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 }, +	{ MODKEY,			XK_r,		reapply,	NULL }, +	{ MODKEY,			XK_Return,	zoom,		NULL }, +	{ MODKEY,			XK_Tab,		viewprevtag,	NULL }, +	{ MODKEY,			XK_m,		setlayout,	"[M]" }, +	{ MODKEY,			XK_f,		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 }, +	{ 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 }, +}; diff --git a/config.def.h b/config.def.h index 1268e4f..fdf4040 100644 --- a/config.def.h +++ b/config.def.h @@ -56,9 +56,10 @@ Rule rules[] = {  Layout layouts[] = {  	/* symbol		function	isfloating */ -	{ "[]=",		tile,		False }, /* first entry is default */ -	{ "><>",		floating	True }, -	{ "[M]",		monocle		True }, +	{ "[]|",		tileh,		False }, /* first entry is default */ +	{ "[]=",		tilev,		False }, +	{ "><>",		floating,	True }, +	{ "[M]",		monocle,	True },  };  /* key definitions */ @@ -80,7 +81,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 }, @@ -69,8 +69,11 @@ Apply floating layout.  .B Mod1\-m  Apply monocle layout.  .TP -.B Mod1\-t -Apply tiled layout. +.B Mod1\-v +Apply vertical tiled layout. +.TP +.B Mod1\-h +Apply horizontal tiled layout.  .TP  .B Mod1\-j  Focus next window. @@ -1,6 +1,3 @@ -/** - * - allow for vstack - */  /* See LICENSE file for copyright and license details.   *   * dynamic window manager is designed like any other X client as well. It is @@ -36,7 +33,6 @@  #include <sys/select.h>  #include <sys/types.h>  #include <sys/wait.h> -#include <regex.h>  #include <X11/cursorfont.h>  #include <X11/keysym.h>  #include <X11/Xatom.h> @@ -170,8 +166,10 @@ void spawn(const char *arg);  void tag(const char *arg);  unsigned int textnw(const char *text, unsigned int len);  unsigned int textw(const char *text); -void tile(void); +void tileh(void); +void tilehstack(unsigned int n);  unsigned int tilemaster(void); +void tilev(void);  void tilevstack(unsigned int n);  void togglefloating(const char *arg);  void toggletag(const char *arg); @@ -1547,6 +1545,37 @@ tileresize(Client *c, int x, int y, int w, int h) {  		resize(c, x, y, w, h, False);  } +void +tileh(void) { +	tilehstack(tilemaster()); +} + +void +tilehstack(unsigned int n) { +	int i, x, w; +	Client *c; + +	if(n == 0) +		return; + +	x = TX; +	w = (TW) / n; +	if(w < bh) +		w = TW; + +	for(i = 0, c = nexttiled(clients); c; c = nexttiled(c->next), i++) +		if(i > 0) { +			if(i > 1 && i == n) /* remainder */ +				tileresize(c, x, TY, ((TX) + (TW)) - x - 2 * c->border, +				              TH - 2 * c->border); +			else +				tileresize(c, x, TY, w - 2 * c->border, +				              TH - 2 * c->border); +			if(w != TW) +				x = c->x + c->w + 2 * c->border; +		} +} +  unsigned int  tilemaster(void) {  	unsigned int n; @@ -1564,6 +1593,11 @@ tilemaster(void) {  }  void +tilev(void) { +	tilevstack(tilemaster()); +} + +void  tilevstack(unsigned int n) {  	int i, y, h;  	Client *c; @@ -1590,11 +1624,6 @@ tilevstack(unsigned int n) {  }  void -tile(void) { -	tilevstack(tilemaster()); -} - -void  togglefloating(const char *arg) {  	if(!sel)  		return; | 
