removed the stack position stuff 10885d34
Anselm R. Garbe · 2006-10-05 19:27 8 file(s) · +26 −96
config.arg.h +4 −7
8 8
9 9
#define DEFMODE			dotile		/* dofloat */
10 10
#define FLOATSYMBOL		"><>"
11 -
#define STACKPOS		StackRight	/* StackLeft */
12 -
#define BSTACKSYMBOL		"==="
13 -
#define VSTACKSYMBOL		"[]="
11 +
#define TILESYMBOL		"[]="
14 12
15 13
#define FONT			"-*-terminus-medium-*-*-*-12-*-*-*-*-*-iso10646-*"
16 14
#define NORMBGCOLOR		"#333333"
20 18
#define STATUSBGCOLOR		"#222222"
21 19
#define STATUSFGCOLOR		"#9999cc"
22 20
23 -
#define MASTER			600 /* per mill */
21 +
#define MASTER			600 /* per thousand */
24 22
#define MODKEY			Mod1Mask
25 23
26 24
#define KEYS \
36 34
	{ MODKEY,			XK_j,		focusnext,	{ 0 } }, \
37 35
	{ MODKEY,			XK_k,		focusprev,	{ 0 } }, \
38 36
	{ MODKEY,			XK_Return,	zoom,		{ 0 } }, \
39 -
	{ MODKEY,			XK_b,		togglestackpos,	{ 0 } }, \
40 -
	{ MODKEY,			XK_g,		resizecol,	{ .i = 10 } }, \
41 -
	{ MODKEY,			XK_s,		resizecol,	{ .i = -10 } }, \
37 +
	{ MODKEY,			XK_g,		resizecol,	{ .i = 15 } }, \
38 +
	{ MODKEY,			XK_s,		resizecol,	{ .i = -15 } }, \
42 39
	{ MODKEY|ShiftMask,		XK_1,		tag,		{ .i = 0 } }, \
43 40
	{ MODKEY|ShiftMask,		XK_2,		tag,		{ .i = 1 } }, \
44 41
	{ MODKEY|ShiftMask,		XK_3,		tag,		{ .i = 2 } }, \
config.default.h +4 −7
8 8
9 9
#define DEFMODE			dotile /* dofloat */
10 10
#define FLOATSYMBOL		"><>"
11 -
#define STACKPOS		StackRight	/* StackLeft */
12 -
#define BSTACKSYMBOL		"==="
13 -
#define VSTACKSYMBOL		"[]="
11 +
#define TILESYMBOL		"[]="
14 12
15 13
#define FONT			"fixed"
16 14
#define NORMBGCOLOR		"#333366"
20 18
#define STATUSBGCOLOR		"#dddddd"
21 19
#define STATUSFGCOLOR		"#222222"
22 20
23 -
#define MASTER			600 /* per mill */
21 +
#define MASTER			600 /* per thousand */
24 22
#define MODKEY			Mod1Mask
25 23
26 24
#define KEYS \
30 28
	{ MODKEY,			XK_Tab,		focusnext,	{ 0 } }, \
31 29
	{ MODKEY|ShiftMask,		XK_Tab,		focusprev,	{ 0 } }, \
32 30
	{ MODKEY,			XK_Return,	zoom,		{ 0 } }, \
33 -
	{ MODKEY,			XK_b,		togglestackpos,	{ 0 } }, \
34 -
	{ MODKEY,			XK_g,		resizecol,	{ .i = 10 } }, \
35 -
	{ MODKEY,			XK_s,		resizecol,	{ .i = -10 } }, \
31 +
	{ MODKEY,			XK_g,		resizecol,	{ .i = 15 } }, \
32 +
	{ MODKEY,			XK_s,		resizecol,	{ .i = -15 } }, \
36 33
	{ MODKEY|ShiftMask,		XK_1,		tag,		{ .i = 0 } }, \
37 34
	{ MODKEY|ShiftMask,		XK_2,		tag,		{ .i = 1 } }, \
38 35
	{ MODKEY|ShiftMask,		XK_3,		tag,		{ .i = 2 } }, \
draw.c +1 −3
104 104
	}
105 105
106 106
	dc.w = bmw;
107 -
	drawtext(arrange == dofloat ?
108 -
		FLOATSYMBOL : stackpos == StackBottom ?
109 -
			BSTACKSYMBOL : VSTACKSYMBOL, dc.status, False);
107 +
	drawtext(arrange == dofloat ?  FLOATSYMBOL : TILESYMBOL, dc.status, False);
110 108
111 109
	x = dc.x + dc.w;
112 110
	dc.w = textw(stext);
dwm.1 +1 −5
40 40
label toggles between tiling and floating mode.
41 41
.TP
42 42
.B Button3
43 -
click on a tag label adds/removes all windows with that tag to/from the view,
44 -
click on the mode label toggles the stack position (tiling mode).
43 +
click on a tag label adds/removes all windows with that tag to/from the view.
45 44
.TP
46 45
.B Mod1-Button1
47 46
click on a tag label applies that tag to the focused window.
62 61
.TP
63 62
.B Mod1-Return
64 63
Zooms/cycles current window to/from master area (tiling mode), toggles maximization current window (floating mode).
65 -
.TP
66 -
.B Mod1-b
67 -
Toggle stack position (tiling mode only).
68 64
.TP
69 65
.B Mod1-g
70 66
Grow current area (tiling mode only).
dwm.h +0 −6
48 48
enum { ColFG, ColBG, ColLast };				/* color */
49 49
50 50
typedef enum {
51 -
	StackLeft, StackBottom, StackRight
52 -
} StackPos; /* stack position*/
53 -
54 -
typedef enum {
55 51
	TopLeft, TopRight, BotLeft, BotRight
56 52
} Corner; /* window corners */
57 53
111 107
extern Cursor cursor[CurLast];
112 108
extern DC dc;					/* global draw context */
113 109
extern Display *dpy;
114 -
extern StackPos stackpos;
115 110
extern Window root, barwin;
116 111
117 112
/* client.c */
170 165
extern Bool isvisible(Client *c);		/* returns True if client is visible */
171 166
extern void resizecol(Arg *arg);		/* resizes the master percent with arg's index value */
172 167
extern void restack(void);			/* restores z layers of all clients */
173 -
extern void togglestackpos(Arg *arg);		/* toggles stack position */
174 168
extern void togglemode(Arg *arg);		/* toggles global arrange function (dotile/dofloat) */
175 169
extern void toggleview(Arg *arg);		/* toggles the tag with arg's index (in)visible */
176 170
extern void view(Arg *arg);			/* views the tag with arg's index */
event.c +2 −6
123 123
				return;
124 124
			}
125 125
		}
126 -
		if(ev->x < x + bmw) {
127 -
			if(ev->button == Button1)
128 -
				togglemode(NULL);
129 -
			else if(ev->button == Button3)
130 -
				togglestackpos(NULL);
131 -
		}
126 +
		if((ev->x < x + bmw) && (ev->button == Button1))
127 +
			togglemode(NULL);
132 128
	}
133 129
	else if((c = getclient(ev->window))) {
134 130
		focus(c);
main.c +1 −4
129 129
	dc.status[ColFG] = getcolor(STATUSFGCOLOR);
130 130
	setfont(FONT);
131 131
 
132 -
	bmw = textw(VSTACKSYMBOL) > textw(BSTACKSYMBOL) ?
133 -
		textw(VSTACKSYMBOL) : textw(BSTACKSYMBOL);
134 -
	bmw = bmw > textw(FLOATSYMBOL) ?
135 -
		bmw : textw(FLOATSYMBOL);
132 +
	bmw = textw(TILESYMBOL) > textw(FLOATSYMBOL) ?  textw(TILESYMBOL) : textw(FLOATSYMBOL);
136 133
	sx = sy = 0;
137 134
	sw = DisplayWidth(dpy, screen);
138 135
	sh = DisplayHeight(dpy, screen);
view.c +13 −58
65 65
/* extern */
66 66
67 67
void (*arrange)(Arg *) = DEFMODE;
68 -
StackPos stackpos = STACKPOS;
69 68
70 69
void
71 70
detach(Client *c) {
103 102
 */
104 103
void
105 104
dotile(Arg *arg) {
106 -
	unsigned int i, n, md, stackw, stackh, tw, th;
105 +
	unsigned int i, n, md, stackw, stackh, th;
107 106
	Client *c;
108 107
109 108
	for(n = 0, c = nexttiled(clients); c; c = nexttiled(c->next))
110 109
		n++;
111 110
112 -
	if(stackpos == StackBottom) {
113 -
		md = ((sh - bh) * master) / 1000;
114 -
		stackw = sw;
115 -
		stackh = sh - bh - md;
116 -
	}
117 -
	else {
118 -
		md = (sw * master) / 1000;
119 -
		stackw = sw - md;
120 -
		stackh = sh - bh;
121 -
	}
111 +
	md = (sw * master) / 1000;
112 +
	stackw = sw - md;
113 +
	stackh = sh - bh;
122 114
123 -
	tw = stackw;
115 +
	th = stackh;
124 116
	if(n > 1)
125 -
		th = stackh / (n - 1);
126 -
	else
127 -
		th = stackh;
117 +
		th /= (n - 1);
128 118
129 119
	for(i = 0, c = clients; c; c = c->next) {
130 120
		if(isvisible(c)) {
140 130
				c->h = sh - 2 * BORDERPX - bh;
141 131
			}
142 132
			else if(i == 0) { /* master window */
143 -
				if(stackpos == StackLeft)
144 -
					c->x += stackw;
145 -
				switch(stackpos) {
146 -
				case StackLeft:
147 -
				case StackRight:
148 -
					c->w = md - 2 * BORDERPX;
149 -
					c->h = sh - bh - 2 * BORDERPX;
150 -
					break;
151 -
				case StackBottom:
152 -
					c->w = sw - 2 * BORDERPX;
153 -
					c->h = md - 2 * BORDERPX;
154 -
					break;
155 -
				}
133 +
				c->w = md - 2 * BORDERPX;
134 +
				c->h = sh - bh - 2 * BORDERPX;
156 135
			}
157 136
			else {  /* tile window */
158 -
				if(stackpos == StackRight)
159 -
					c->x += md;
137 +
				c->x += md;
160 138
				if(th > bh) {
161 -
					switch(stackpos) {
162 -
					case StackLeft:
163 -
					case StackRight:
164 -
						c->y = sy + (i - 1) * th + bh;
165 -
						if(i + 1 == n)
166 -
							c->h = sh - c->y - 2 * BORDERPX;
167 -
						break;
168 -
					case StackBottom:
169 -
						c->y = sy + md + (i - 1) * th + bh;
170 -
						if(i + 1 == n)
171 -
							c->h = sh - c->y - 2 * BORDERPX;
172 -
						break;
173 -
					}
174 -
					c->w = tw - 2 * BORDERPX;
139 +
					c->y = sy + (i - 1) * th + bh;
140 +
					if(i + 1 == n)
141 +
						c->h = sh - c->y - 2 * BORDERPX;
142 +
					c->w = stackw - 2 * BORDERPX;
175 143
					c->h = th - 2 * BORDERPX;
176 144
				}
177 145
				else { /* fallback if th < bh */
178 -
					if(stackpos == StackBottom)
179 -
						c->y += md;
180 146
					c->w = stackw - 2 * BORDERPX;
181 147
					c->h = stackh - 2 * BORDERPX;
182 148
				}
308 274
	if(i == ntags)
309 275
		seltag[arg->i] = True; /* cannot toggle last view */
310 276
	reorder();
311 -
	arrange(NULL);
312 -
}
313 -
314 -
void
315 -
togglestackpos(Arg *arg) {
316 -
	if(arrange == dofloat)
317 -
		return;
318 -
	if(stackpos == StackBottom)
319 -
		stackpos = STACKPOS;
320 -
	else
321 -
		stackpos = StackBottom;
322 277
	arrange(NULL);
323 278
}
324 279