new stuff d7b074fc
Anselm R Garbe · 2008-03-06 19:20 4 file(s) · +177 −16
config.anselm.h (added) +127 −0
1 +
/* See LICENSE file for copyright and license details. */
2 +
3 +
/* appearance */
4 +
#define BORDERPX		1
5 +
#define FONT			"-*-terminus-medium-r-normal-*-14-*-*-*-*-*-*-*"
6 +
#define NORMBORDERCOLOR		"#cccccc"
7 +
#define NORMBGCOLOR		"#cccccc"
8 +
#define NORMFGCOLOR		"#000000"
9 +
#define SELBORDERCOLOR		"#0066ff"
10 +
#define SELBGCOLOR		"#0066ff"
11 +
#define SELFGCOLOR		"#ffffff"
12 +
13 +
/* bar position */
14 +
#define BX 0
15 +
#define BY 0
16 +
#define BW 1280
17 +
18 +
/* window area, including floating windows */
19 +
#define WX 0
20 +
#define WY bh
21 +
#define WW sw
22 +
#define WH sh - bh
23 +
24 +
/* master area */
25 +
#define MX WX
26 +
#define MY bh
27 +
#define MW 1280
28 +
#define MH 800 - bh
29 +
30 +
/* tile area, might be on a different screen */
31 +
#define TX 1280
32 +
#define TY 0
33 +
#define TW 1680
34 +
#define TH 1050
35 +
36 +
/* monocle area, might be restricted to a specific screen */
37 +
#define MOX MX
38 +
#define MOY MY
39 +
#define MOW MW
40 +
#define MOH MH
41 +
42 +
/* tagging */
43 +
const char tags[][MAXTAGLEN] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
44 +
45 +
Rule rules[] = {
46 +
	/* class:instance:title substr	tags ref	isfloating */
47 +
	{ "Firefox",			tags[8],	False },
48 +
	{ "Gimp",			NULL,		True },
49 +
	{ "MPlayer",			NULL,		True },
50 +
	{ "Acroread",			NULL,		True },
51 +
};
52 +
53 +
/* layout(s) */
54 +
#define RESIZEHINTS		True	/* False - respect size hints in tiled resizals */
55 +
#define SNAP			32	/* snap pixel */
56 +
57 +
Layout layouts[] = {
58 +
	/* symbol		function	isfloating */
59 +
	{ "[]|",		tileh,		False }, /* first entry is default */
60 +
	{ "[]=",		tilev,		False },
61 +
	{ "><>",		floating,	True },
62 +
	{ "[M]",		monocle,	True },
63 +
};
64 +
65 +
/* key definitions */
66 +
#define MODKEY			Mod1Mask
67 +
Key keys[] = {
68 +
	/* modifier			key		function	argument */
69 +
#if ANSELM_OFFICE
70 +
	{ MODKEY,			XK_p,		spawn,
71 +
		"exec dmenu_run -fn '"FONT"' -nb '"NORMBGCOLOR"' -nf '"NORMFGCOLOR"' -sb '"SELBGCOLOR"' -sf '"SELFGCOLOR"' -x 0 -y 0 -w 1280" },
72 +
#else
73 +
	{ MODKEY,			XK_p,		spawn,
74 +
		"exec dmenu_run -fn '"FONT"' -nb '"NORMBGCOLOR"' -nf '"NORMFGCOLOR"' -sb '"SELBGCOLOR"' -sf '"SELFGCOLOR"'" },
75 +
#endif
76 +
	{ MODKEY|ShiftMask,		XK_Return,	spawn, "exec uxterm" },
77 +
	{ MODKEY,			XK_j,		focusnext,	NULL },
78 +
	{ MODKEY,			XK_k,		focusprev,	NULL },
79 +
	{ MODKEY,			XK_r,		reapply,	NULL },
80 +
	{ MODKEY,			XK_Return,	zoom,		NULL },
81 +
	{ MODKEY,			XK_Tab,		viewprevtag,	NULL },
82 +
	{ MODKEY,			XK_m,		setlayout,	"[M]" },
83 +
	{ MODKEY,			XK_f,		setlayout,	"><>" },
84 +
	{ MODKEY,			XK_v,		setlayout,	"[]=" },
85 +
	{ MODKEY,			XK_h,		setlayout,	"[]|" },
86 +
	{ MODKEY|ShiftMask,		XK_space,	togglefloating,	NULL },
87 +
	{ MODKEY|ShiftMask,		XK_c,		killclient,	NULL },
88 +
	{ MODKEY,			XK_0,		view,		NULL },
89 +
	{ MODKEY,			XK_1,		view,		tags[0] },
90 +
	{ MODKEY,			XK_2,		view,		tags[1] },
91 +
	{ MODKEY,			XK_3,		view,		tags[2] },
92 +
	{ MODKEY,			XK_4,		view,		tags[3] },
93 +
	{ MODKEY,			XK_5,		view,		tags[4] },
94 +
	{ MODKEY,			XK_6,		view,		tags[5] },
95 +
	{ MODKEY,			XK_7,		view,		tags[6] },
96 +
	{ MODKEY,			XK_8,		view,		tags[7] },
97 +
	{ MODKEY,			XK_9,		view,		tags[8] },
98 +
	{ MODKEY|ControlMask,		XK_1,		toggleview,	tags[0] },
99 +
	{ MODKEY|ControlMask,		XK_2,		toggleview,	tags[1] },
100 +
	{ MODKEY|ControlMask,		XK_3,		toggleview,	tags[2] },
101 +
	{ MODKEY|ControlMask,		XK_4,		toggleview,	tags[3] },
102 +
	{ MODKEY|ControlMask,		XK_5,		toggleview,	tags[4] },
103 +
	{ MODKEY|ControlMask,		XK_6,		toggleview,	tags[5] },
104 +
	{ MODKEY|ControlMask,		XK_7,		toggleview,	tags[6] },
105 +
	{ MODKEY|ControlMask,		XK_8,		toggleview,	tags[7] },
106 +
	{ MODKEY|ControlMask,		XK_9,		toggleview,	tags[8] },
107 +
	{ MODKEY|ShiftMask,		XK_0,		tag,		NULL },
108 +
	{ MODKEY|ShiftMask,		XK_1,		tag,		tags[0] },
109 +
	{ MODKEY|ShiftMask,		XK_2,		tag,		tags[1] },
110 +
	{ MODKEY|ShiftMask,		XK_3,		tag,		tags[2] },
111 +
	{ MODKEY|ShiftMask,		XK_4,		tag,		tags[3] },
112 +
	{ MODKEY|ShiftMask,		XK_5,		tag,		tags[4] },
113 +
	{ MODKEY|ShiftMask,		XK_6,		tag,		tags[5] },
114 +
	{ MODKEY|ShiftMask,		XK_7,		tag,		tags[6] },
115 +
	{ MODKEY|ShiftMask,		XK_8,		tag,		tags[7] },
116 +
	{ MODKEY|ShiftMask,		XK_9,		tag,		tags[8] },
117 +
	{ MODKEY|ControlMask|ShiftMask,	XK_1,		toggletag,	tags[0] },
118 +
	{ MODKEY|ControlMask|ShiftMask,	XK_2,		toggletag,	tags[1] },
119 +
	{ MODKEY|ControlMask|ShiftMask,	XK_3,		toggletag,	tags[2] },
120 +
	{ MODKEY|ControlMask|ShiftMask,	XK_4,		toggletag,	tags[3] },
121 +
	{ MODKEY|ControlMask|ShiftMask,	XK_5,		toggletag,	tags[4] },
122 +
	{ MODKEY|ControlMask|ShiftMask,	XK_6,		toggletag,	tags[5] },
123 +
	{ MODKEY|ControlMask|ShiftMask,	XK_7,		toggletag,	tags[6] },
124 +
	{ MODKEY|ControlMask|ShiftMask,	XK_8,		toggletag,	tags[7] },
125 +
	{ MODKEY|ControlMask|ShiftMask,	XK_9,		toggletag,	tags[8] },
126 +
	{ MODKEY|ShiftMask,		XK_q,		quit,		NULL },
127 +
};
config.def.h +6 −4
56 56
57 57
Layout layouts[] = {
58 58
	/* symbol		function	isfloating */
59 -
	{ "[]=",		tile,		False }, /* first entry is default */
60 -
	{ "><>",		floating	True },
61 -
	{ "[M]",		monocle		True },
59 +
	{ "[]|",		tileh,		False }, /* first entry is default */
60 +
	{ "[]=",		tilev,		False },
61 +
	{ "><>",		floating,	True },
62 +
	{ "[M]",		monocle,	True },
62 63
};
63 64
64 65
/* key definitions */
80 81
	{ MODKEY,			XK_Tab,		viewprevtag,	NULL },
81 82
	{ MODKEY,			XK_m,		setlayout,	"[M]" },
82 83
	{ MODKEY,			XK_f,		setlayout,	"><>" },
83 -
	{ MODKEY,			XK_t,		setlayout,	"[]=" },
84 +
	{ MODKEY,			XK_v,		setlayout,	"[]=" },
85 +
	{ MODKEY,			XK_h,		setlayout,	"[]|" },
84 86
	{ MODKEY|ShiftMask,		XK_space,	togglefloating,	NULL },
85 87
	{ MODKEY|ShiftMask,		XK_c,		killclient,	NULL },
86 88
	{ MODKEY,			XK_0,		view,		NULL },
dwm.1 +5 −2
69 69
.B Mod1\-m
70 70
Apply monocle layout.
71 71
.TP
72 -
.B Mod1\-t
73 -
Apply tiled layout.
72 +
.B Mod1\-v
73 +
Apply vertical tiled layout.
74 +
.TP
75 +
.B Mod1\-h
76 +
Apply horizontal tiled layout.
74 77
.TP
75 78
.B Mod1\-j
76 79
Focus next window.
dwm.c +39 −10
1 -
/**
2 -
 * - allow for vstack
3 -
 */
4 1
/* See LICENSE file for copyright and license details.
5 2
 *
6 3
 * dynamic window manager is designed like any other X client as well. It is
36 33
#include <sys/select.h>
37 34
#include <sys/types.h>
38 35
#include <sys/wait.h>
39 -
#include <regex.h>
40 36
#include <X11/cursorfont.h>
41 37
#include <X11/keysym.h>
42 38
#include <X11/Xatom.h>
170 166
void tag(const char *arg);
171 167
unsigned int textnw(const char *text, unsigned int len);
172 168
unsigned int textw(const char *text);
173 -
void tile(void);
169 +
void tileh(void);
170 +
void tilehstack(unsigned int n);
174 171
unsigned int tilemaster(void);
172 +
void tilev(void);
175 173
void tilevstack(unsigned int n);
176 174
void togglefloating(const char *arg);
177 175
void toggletag(const char *arg);
1547 1545
		resize(c, x, y, w, h, False);
1548 1546
}
1549 1547
1548 +
void
1549 +
tileh(void) {
1550 +
	tilehstack(tilemaster());
1551 +
}
1552 +
1553 +
void
1554 +
tilehstack(unsigned int n) {
1555 +
	int i, x, w;
1556 +
	Client *c;
1557 +
1558 +
	if(n == 0)
1559 +
		return;
1560 +
1561 +
	x = TX;
1562 +
	w = (TW) / n;
1563 +
	if(w < bh)
1564 +
		w = TW;
1565 +
1566 +
	for(i = 0, c = nexttiled(clients); c; c = nexttiled(c->next), i++)
1567 +
		if(i > 0) {
1568 +
			if(i > 1 && i == n) /* remainder */
1569 +
				tileresize(c, x, TY, ((TX) + (TW)) - x - 2 * c->border,
1570 +
				              TH - 2 * c->border);
1571 +
			else
1572 +
				tileresize(c, x, TY, w - 2 * c->border,
1573 +
				              TH - 2 * c->border);
1574 +
			if(w != TW)
1575 +
				x = c->x + c->w + 2 * c->border;
1576 +
		}
1577 +
}
1578 +
1550 1579
unsigned int
1551 1580
tilemaster(void) {
1552 1581
	unsigned int n;
1564 1593
}
1565 1594
1566 1595
void
1596 +
tilev(void) {
1597 +
	tilevstack(tilemaster());
1598 +
}
1599 +
1600 +
void
1567 1601
tilevstack(unsigned int n) {
1568 1602
	int i, y, h;
1569 1603
	Client *c;
1587 1621
			if(h != TH)
1588 1622
				y = c->y + c->h + 2 * c->border;
1589 1623
		}
1590 -
}
1591 -
1592 -
void
1593 -
tile(void) {
1594 -
	tilevstack(tilemaster());
1595 1624
}
1596 1625
1597 1626
void