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