about summary refs log tree commit diff stats
path: root/config.arg.h
blob: a3d312c7abf3c18c8f5a80313d0f6941f19ef053 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
/*
 * (C)opyright MMVI Anselm R. Garbe <garbeam at gmail dot com>
 * See LICENSE file for license details.
 */

enum { Tfnord, Tdev, Tnet, Twork, Tmisc, TLast };
#define TAGS \
const char *tags[TLast] = { \
	[Tfnord] = "fnord", \
	[Tdev] = "dev", \
	[Tnet] = "net", \
	[Twork] = "work", \
	[Tmisc] = "misc", \
};

#define DEFMODE			dotile /* dofloat */
#define DEFTAG			Tdev
#define FONT			"-*-terminus-medium-*-*-*-13-*-*-*-*-*-iso10646-*"
#define BGCOLOR			"#0a2c2d"
#define FGCOLOR			"#ddeeee"
#define BORDERCOLOR		"#176164"
#define MODKEY			Mod1Mask
#define NUMLOCKMASK		Mod2Mask
#define MASTERW			60 /* percent */

#define KEYS \
	const char *browse[] = { "firefox", NULL }; \
	const char *gimp[] = { "gimp", NULL }; \
	const char *term[] = { \
		"urxvt", "-tr", "+sb", "-bg", "black", "-fg", "white", "-cr", "white", \
		"-fn", "-*-terminus-medium-*-*-*-13-*-*-*-*-*-iso10646-*", NULL \
	}; \
	const char *xlock[] = { "xlock", NULL }; \
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 } }, \
	{ MODKEY|ShiftMask,	XK_g,		spawn,		{ .argv = gimp } }, \
	{ MODKEY|ShiftMask,	XK_l,		spawn,		{ .argv = xlock } }, \
	{ MODKEY|ShiftMask,	XK_w,		spawn,		{ .argv = browse } }, \
};

#define RULES \
static Rule rule[] = { \
	/* class:instance	tags				isfloat */ \
	{ "Firefox.*",		{ [Tnet] = True },		False }, \
	{ "Gimp.*",		{ 0 },				True}, \
	{ "MPlayer.*",		{ 0 },				True}, \
	{ "Acroread.*",		{ 0 },				True}, \
};
root window name is read and displayed in the status text area. It can be set with the .BR xsetroot (1) command. .TP .B Button1 click on a tag label to display all windows with that tag, click on the layout label toggles between tiled and floating layout. .TP .B Button3 click on a tag label adds/removes all windows with that tag to/from the view. .TP .B Mod1\-Button1 click on a tag label applies that tag to the focused window. .TP .B Mod1\-Button3 click on a tag label adds/removes that tag to/from the focused window. .SS Keyboard commands .TP .B Mod1\-Shift\-Return Start .BR uxterm (1). .TP .B Mod1\-, Focus previous screen, if any. .TP .B Mod1\-. Focus next screen, if any. .TP .B Mod1\-Shift\-, Send focused window to previous screen, if any. .TP .B Mod1\-Shift\-. Send focused window to next screen, if any. .TP .B Mod1\-b Toggles bar on and off. .TP .B Mod1\-t Sets tiled layout. .TP .B Mod1\-f Sets floating layout. .TP .B Mod1\-m Sets monocle layout. .TP .B Mod1\-space Toggles between current and previous layout. .TP .B Mod1\-j Focus next window. .TP .B Mod1\-k Focus previous window. .TP .B Mod1\-h Decrease master area size. .TP .B Mod1\-l Increase master area size. .TP .B Mod1\-Return Zooms/cycles focused window to/from master area (tiled layouts only). .TP .B Mod1\-Shift\-c Close focused window. .TP .B Mod1\-Shift\-space Toggle focused window between tiled and floating state. .TP .B Mod1\-Tab Toggles to the previously selected tags. .TP .B Mod1\-Shift\-[1..n] Apply nth tag to focused window. .TP .B Mod1\-Shift\-0 Apply all tags to focused window. .TP .B Mod1\-Control\-Shift\-[1..n] Add/remove nth tag to/from focused window. .TP .B Mod1\-[1..n] View all windows with nth tag. .TP .B Mod1\-0 View all windows with any tag. .TP .B Mod1\-Control\-[1..n] Add/remove all windows with nth tag to/from the view. .TP .B Mod1\-Shift\-q Quit dwm. .SS Mouse commands .TP .B Mod1\-Button1 Move focused window while dragging. Tiled windows will be toggled to the floating state. .TP .B Mod1\-Button2 Toggles focused window between floating and tiled state. .TP .B Mod1\-Button3 Resize focused window while dragging. Tiled windows will be toggled to the floating state. .SH CUSTOMIZATION dwm is customized by creating a custom config.h and (re)compiling the source code. This keeps it fast, secure and simple. .SH SEE ALSO .BR dmenu (1) .SH BUGS Java applications which use the XToolkit/XAWT backend may draw grey windows only. The XToolkit/XAWT backend breaks ICCCM-compliance in recent JDK 1.5 and early JDK 1.6 versions, because it assumes a reparenting window manager. Possible workarounds are using JDK 1.4 (which doesn't contain the XToolkit/XAWT backend) or setting the environment variable .BR AWT_TOOLKIT=MToolkit (to use the older Motif backend instead) or running .B xprop -root -f _NET_WM_NAME 32a -set _NET_WM_NAME LG3D or .B wmname LG3D (to pretend that a non-reparenting window manager is running that the XToolkit/XAWT backend can recognize) or when using OpenJDK setting the environment variable .BR _JAVA_AWT_WM_NONREPARENTING=1 . .P GTK 2.10.9+ versions contain a broken .BR Save\-As file dialog implementation, which requests to reconfigure its window size in an endless loop. However, its window is still respondable during this state, so you can simply ignore the flicker until a new GTK version appears, which will fix this bug, approximately GTK 2.10.12+ versions.