1xmonad(1) xmonad manual xmonad(1)
2
3
4
5() ()
6
7
8
10 xmonad - a tiling window manager
11
13 xmonad is a minimalist tiling window manager for X, written in Haskell.
14 Windows are managed using automatic layout algorithms, which can be dy‐
15 namically reconfigured. At any time windows are arranged so as to max‐
16 imize the use of screen real estate. All features of the window manag‐
17 er are accessible purely from the keyboard: a mouse is entirely option‐
18 al. xmonad is configured in Haskell, and custom layout algorithms may
19 be implemented by the user in config files. A principle of xmonad is
20 predictability: the user should know in advance precisely the window
21 arrangement that will result from any action.
22
23 By default, xmonad provides three layout algorithms: tall, wide and
24 fullscreen. In tall or wide mode, windows are tiled and arranged to
25 prevent overlap and maximize screen use. Sets of windows are grouped
26 together on virtual screens, and each screen retains its own layout,
27 which may be reconfigured dynamically. Multiple physical monitors are
28 supported via Xinerama, allowing simultaneous display of a number of
29 screens.
30
31 By utilizing the expressivity of a modern functional language with a
32 rich static type system, xmonad provides a complete, featureful window
33 manager in less than 1200 lines of code, with an emphasis on correct‐
34 ness and robustness. Internal properties of the window manager are
35 checked using a combination of static guarantees provided by the type
36 system, and type-based automated testing. A benefit of this is that
37 the code is simple to understand, and easy to modify.
38
40 xmonad places each window into a "workspace". Each workspace can have
41 any number of windows, which you can cycle though with mod-j and mod-k.
42 Windows are either displayed full screen, tiled horizontally, or tiled
43 vertically. You can toggle the layout mode with mod-space, which will
44 cycle through the available modes.
45
46 You can switch to workspace N with mod-N. For example, to switch to
47 workspace 5, you would press mod-5. Similarly, you can move the cur‐
48 rent window to another workspace with mod-shift-N.
49
50 When running with multiple monitors (Xinerama), each screen has exactly
51 1 workspace visible. mod-{w,e,r} switch the focus between screens,
52 while shift-mod-{w,e,r} move the current window to that screen. When
53 xmonad starts, workspace 1 is on screen 1, workspace 2 is on screen 2,
54 etc. When switching workspaces to one that is already visible, the
55 current and visible workspaces are swapped.
56
57 Flags
58 xmonad has several flags which you may pass to the executable. These
59 flags are:
60
61 --recompile
62 Recompiles your configuration in ~/.xmonad/xmonad.hs
63
64 --restart
65 Causes the currently running xmonad process to restart
66
67 --replace
68 Replace the current window manager with xmonad
69
70 --version
71 Display version of xmonad
72
73 --verbose-version
74 Display detailed version of xmonad
75
76 Default keyboard bindings
77 mod-shift-return
78 Launch terminal
79
80 mod-p Launch dmenu
81
82 mod-shift-p
83 Launch gmrun
84
85 mod-shift-c
86 Close the focused window
87
88 mod-space
89 Rotate through the available layout algorithms
90
91 mod-shift-space
92 Reset the layouts on the current workspace to default
93
94 mod-n Resize viewed windows to the correct size
95
96 mod-tab
97 Move focus to the next window
98
99 mod-shift-tab
100 Move focus to the previous window
101
102 mod-j Move focus to the next window
103
104 mod-k Move focus to the previous window
105
106 mod-m Move focus to the master window
107
108 mod-return
109 Swap the focused window and the master window
110
111 mod-shift-j
112 Swap the focused window with the next window
113
114 mod-shift-k
115 Swap the focused window with the previous window
116
117 mod-h Shrink the master area
118
119 mod-l Expand the master area
120
121 mod-t Push window back into tiling
122
123 mod-comma
124 Increment the number of windows in the master area
125
126 mod-period
127 Deincrement the number of windows in the master area
128
129 mod-shift-q
130 Quit xmonad
131
132 mod-q Restart xmonad
133
134 mod-shift-slash
135 Run xmessage with a summary of the default keybindings (useful
136 for beginners)
137
138 mod-[1..9]
139 Switch to workspace N
140
141 mod-shift-[1..9]
142 Move client to workspace N
143
144 mod-{w,e,r}
145 Switch to physical/Xinerama screens 1, 2, or 3
146
147 mod-shift-{w,e,r}
148 Move client to screen 1, 2, or 3
149
150 mod-button1
151 Set the window to floating mode and move by dragging
152
153 mod-button2
154 Raise the window to the top of the stack
155
156 mod-button3
157 Set the window to floating mode and resize by dragging
158
160 To use xmonad as your window manager add to your ~/.xinitrc file:
161
162 exec xmonad
163
165 xmonad is customized in ~/.xmonad/xmonad.hs, and then restarted with
166 mod-q.
167
168 You can find many extensions to the core feature set in the xmonad-
169 contrib package, available through your package manager or from xmon‐
170 ad.org (http://xmonad.org).
171
172 Modular Configuration
173 As of xmonad-0.9, any additional Haskell modules may be placed in
174 ~/.xmonad/lib/ are available in GHC's searchpath. Hierarchical modules
175 are supported: for example, the file ~/.xmonad/lib/XMonad/Stack/MyAddi‐
176 tions.hs could contain:
177
178 module XMonad.Stack.MyAdditions (function1) where
179 function1 = error "function1: Not implemented yet!"
180
181 Your xmonad.hs may then import XMonad.Stack.MyAdditions as if that mod‐
182 ule was contained within xmonad or xmonad-contrib.
183
185 Probably. If you find any, please report them to the bugtracker
186 (https://github.com/xmonad/xmonad/issues)
187
188
189
190 ()