]> git.lizzy.rs Git - bspwm.git/blob - bspwm.1
Consider only `pointer_follows_monitor` exceptions
[bspwm.git] / bspwm.1
1 .TH BSPWM 1 bspwm
2 .SH NAME
3 bspwm \- Tiling window manager based on binary space partitioning
4 .SH SYNOPSIS
5 .B bspwm
6 .RI [ -h | -v | "-s PANEL_FIFO" | "-p PANEL_PREFIX" ]
7 .P
8 .BI bspc " MESSAGE"
9 .RI [ ARGUMENTS ]
10 .RI [ OPTIONS ]
11 .SH DESCRIPTION
12 .B bspwm
13 is a tiling window manager that represents windows as the leaves of a full binary tree.
14 .P
15 It is controlled and configured via
16 .BR bspc .
17 .SH CONFIGURATION
18 .B bspwm
19 have only two sources of informations: the
20 .B X
21 events it receives and the messages it reads on a dedicated socket.
22 .P
23 Its configuration file is
24 .IR $XDG_CONFIG_HOME/bspwm/autostart .
25 .P
26 Keyboard and pointer bindings are defined with
27 .BR sxhkd .
28 .P
29 Example configuration files can be found in the
30 .I examples
31 directory.
32 .SH SPLITTING MODES
33 There is only two splitting modes:
34 .IR automatic " and " manual .
35 .P
36 The default mode is
37 .IR automatic .
38 The
39 .I manual
40 mode is entered by sending a
41 .B presel
42 message.
43 .P
44 Example: insertion of a new node (number 4) into the given tree in
45 .I automatic
46 mode:
47 .EX
48
49                  b                                   c
50                 / \\                                 / \\
51                3   a              -->              4   b
52                ^  / \\                              ^  / \\
53                  2   1                               3   a
54                                                         / \\
55                                                        2   1
56     +-------------------------+         +-------------------------+
57     |            |            |         |            |            |
58     |            |     2      |         |            |     3      |
59     |            |            |         |            |            |
60     |     3      |------------|   -->   |     4      |------------|
61     |     ^      |            |         |     ^      |     |      |
62     |            |     1      |         |            |  1  |  2   |
63     |            |            |         |            |     |      |
64     +-------------------------+         +-------------------------+
65
66 .EE
67 .P
68 Same departure, but the mode is
69 .IR manual ,
70 and a
71 .BI presel " up"
72 message was sent beforehand:
73 .EX
74
75                  b                                   b
76                 / \\                                 / \\
77                3   a              -->              c   a
78                ^  / \\                             / \\ / \\
79                  2   1                           4  3 2  1
80                                                  ^
81     +-------------------------+         +-------------------------+
82     |            |            |         |            |            |
83     |            |     2      |         |     4      |     2      |
84     |            |            |         |     ^      |            |
85     |     3      |------------|   -->   |------------|------------|
86     |     ^      |            |         |            |            |
87     |            |     1      |         |     3      |     1      |
88     |            |            |         |            |            |
89     +-------------------------+         +-------------------------+
90
91 .EE
92 .SH CONTAINERS
93 .P
94 Each monitor contains at least one desktop.
95 .P
96 Each desktop contains at most one tree.
97 .SH MESSAGES
98 .TP
99 .BI get " SETTING"
100 Return the value of the given setting.
101 .TP
102 .BI set " SETTING VALUE"
103 Set the value of the given setting.
104 .TP
105 .BI list " [DESKTOP_NAME]"
106 Output the internal representation of the window tree.
107 .TP
108 .BI list_desktops " [--quiet]"
109 Perform a dump of each desktop for the current monitor.
110 .TP
111 .BI list_monitors " [--quiet]"
112 Perform a dump of each monitor.
113 .TP
114 .BI list_history
115 Return the node focus history of each desktop.
116 .TP
117 .BI list_windows
118 Return the list of managed windows (i.e. their identifiers).
119 .TP
120 .BI list_rules
121 Return the list of rules.
122 .TP
123 .BI presel " left|right|up|down [SPLIT_RATIO]"
124 Switch to manual mode and select the splitting direction.
125 .TP
126 .BI cancel
127 Switch to automatic mode.
128 .TP
129 .BI ratio " VALUE"
130 Set the splitting ratio of the focused window.
131 .TP
132 .BI pad " MONITOR_NAME [TOP_PADDING [RIGHT_PADDING [BOTTOM_PADDING [LEFT_PADDING]]]]"
133 Set the padding of the given monitor.
134 .TP
135 .BI focus " left|right|up|down"
136 Focus the neighbor window situated in the given direction.
137 .TP
138 .BI shift " left|right|up|down"
139 Exchange the current window with the given neighbor.
140 .TP
141 .BI swap " [--keep-focus]"
142 Swap the focused window with the last focused window.
143 .TP
144 .BI push " left|right|up|down"
145 Push the fence located in the given direction.
146 .TP
147 .BI pull " left|right|up|down"
148 Pull the fence located in the given direction.
149 .TP
150 .BI cycle " next|prev [--skip-floating|--skip-tiled|--skip-class-equal|--skip-class-differ]"
151 Focus the next or previous window matching the given constraints.
152 .TP
153 .BI nearest " older|newer [--skip-floating|--skip-tiled|--skip-class-equal|--skip-class-differ]"
154 Focus the nearest window matching the given constraints.
155 .TP
156 .BI biggest
157 Return the ID of the biggest tiled window.
158 .TP
159 .BI circulate " forward|backward"
160 Circulate the leaves in the given direction.
161 .TP
162 .BI grab_pointer " focus|move|resize_side|resize_corner"
163 Begin the specified pointer action.
164 .TP
165 .BI track_pointer " ROOT_X ROOT_Y"
166 Pass the pointer root coordinates for the current pointer action.
167 .TP
168 .BI ungrab_pointer
169 End the current pointer action.
170 .TP
171 .BI toggle_fullscreen
172 Toggle the fullscreen state of the current window.
173 .TP
174 .BI toggle_floating
175 Toggle the floating state of the current window.
176 .TP
177 .BI toggle_locked
178 Toggle the locked state of the current window (locked windows will not respond to the
179 .B close
180 message).
181 .TP
182 .BI toggle_visibility
183 Toggle the visibility of all the managed windows.
184 .TP
185 .BI close
186 Close the focused window.
187 .TP
188 .BI kill
189 Kill the focused window.
190 .TP
191 .BI send_to " DESKTOP_NAME [--follow]"
192 Send the focused window to the given desktop.
193 .TP
194 .BI drop_to " next|prev [--follow]"
195 Send the focused window to the next or previous desktop.
196 .TP
197 .BI send_to_monitor " MONITOR_NAME [--follow]"
198 Send the focused window to the given monitor.
199 .TP
200 .BI drop_to_monitor " next|prev [--follow]"
201 Send the focused window to the next or previous monitor.
202 .TP
203 .BI use " DESKTOP_NAME"
204 Select the given desktop.
205 .TP
206 .BI use_monitor " MONITOR_NAME"
207 Select the given monitor.
208 .TP
209 .BI alternate
210 Alternate between the current and the last focused window.
211 .TP
212 .BI alternate_desktop
213 Alternate between the current and the last focused desktop.
214 .TP
215 .BI alternate_monitor
216 Alternate between the current and the last focused monitor.
217 .TP
218 .BI add " DESKTOP_NAME ..."
219 Make new desktops with the given names.
220 .TP
221 .BI add_in " MONITOR_NAME DESKTOP_NAME ..."
222 Make new desktops with the given names in the given monitor.
223 .TP
224 .BI rename_monitor " CURRENT_NAME NEW_NAME"
225 Rename the monitor named CURRENT_NAME to NEW_NAME.
226 .TP
227 .BI rename " CURRENT_NAME NEW_NAME"
228 Rename the desktop named CURRENT_NAME to NEW_NAME.
229 .TP
230 .BI remove_desktop " DESKTOP_NAME ..."
231 Remove the given desktops.
232 .TP
233 .BI send_desktop_to " MONITOR_NAME [--follow]"
234 Send the current desktop to the given monitor.
235 .TP
236 .BI cycle_monitor " next|prev"
237 Select the next or previous monitor.
238 .TP
239 .BI cycle_desktop " next|prev [--skip-free|--skip-occupied]"
240 Select the next or previous desktop.
241 .TP
242 .BI layout " monocle|tiled [DESKTOP_NAME ...]"
243 Set the layout of the given desktops (current if none given).
244 .TP
245 .BI cycle_layout
246 Cycle the layout of the current desktop.
247 .TP
248 .BI rotate " clockwise|counter_clockwise|full_cycle"
249 Rotate the window tree.
250 .TP
251 .BI flip " horizontal|vertical"
252 Flip the window tree.
253 .TP
254 .B balance
255 Adjust the split ratios so that all windows occupy the same area.
256 .TP
257 .BI rule " PATTERN [DESKTOP_NAME] [floating] [follow]"
258 Create a new rule (PATTERN must match the class or instance name).
259 .TP
260 .BI remove_rule " UID ..."
261 Remove the rules with the given UIDs.
262 .TP
263 .BI put_status
264 Output the current state to the panel fifo.
265 .TP
266 .BI adopt_orphans
267 Manage all the unmanaged windows remaining from a previous session.
268 .TP
269 .BI restore_layout " FILE_PATH"
270 Restore the layout of each desktop from the content of FILE_PATH.
271 .TP
272 .BI restore_history " FILE_PATH"
273 Restore the history of each desktop from the content of FILE_PATH.
274 .TP
275 .BI quit " [EXIT_STATUS]"
276 Quit.
277 .SH SETTINGS
278 .P
279 Colors are either
280 .B X
281 color names (cf.
282 .I COLOR NAMES
283 in
284 .BR X (7))
285 or
286 .I #RRGGBB
287 , booleans are
288 .IR "true " "or " false .
289 .P
290 All the boolean settings are
291 .I false
292 by default.
293 .TP
294 .I focused_border_color
295 Color of the border of a focused window of a focused monitor.
296 .TP
297 .I active_border_color
298 Color of the border of a focused window of an unfocused monitor.
299 .TP
300 .I normal_border_color
301 Color of the border of an unfocused window.
302 .TP
303 .I presel_border_color
304 Color of the
305 .B presel
306 message feedback.
307 .TP
308 .I focused_locked_border_color
309 Color of the border of a focused locked window of a focused monitor.
310 .TP
311 .I active_locked_border_color
312 Color of the border of a focused locked window of an unfocused monitor.
313 .TP
314 .I normal_locked_border_color
315 Color of the border of an unfocused locked window.
316 .TP
317 .I urgent_border_color
318 Color of the border of an urgent window.
319 .TP
320 .I border_width
321 Window border width.
322 .TP
323 .I window_gap
324 Value of the gap that separates windows.
325 .TP
326 .I split_ratio
327 Default split ratio.
328 .TP
329 .I top_padding
330 .TQ
331 .I right_padding
332 .TQ
333 .I bottom_padding
334 .TQ
335 .I left_padding
336 Padding space added at the sides of the current monitor.
337 .TP
338 .I wm_name
339 The value that shall be used for the
340 .B _NET_WM_NAME
341 property of the root window.
342 .TP
343 .I borderless_monocle
344 Remove borders for tiled windows in monocle mode.
345 .TP
346 .I gapless_monocle
347 Remove gaps for tiled windows in monocle mode.
348 .TP
349 .I focus_follows_pointer
350 Focus the window under the pointer.
351 .TP
352 .I pointer_follows_monitor
353 When focusing a monitor, put the pointer at its center.
354 .TP
355 .I adaptative_raise
356 Prevent floating windows from being raised when they might cover other floating windows.
357 .TP
358 .I apply_shadow_property
359 Enable shadows for floating windows via the
360 .B _COMPTON_SHADOW
361 property.
362 .TP
363 .I auto_alernate
364 Interpret two consecutive identical
365 .B use
366 messages as an
367 .B alternate
368 message.
369 .TP
370 .I focus_by_distance
371 Use window or leaf distance for focus movement.
372 .SH ENVIRONMENT VARIABLES
373 .TP
374 .I BSPWM_SOCKET
375 The path of the socket used for the communication between
376 .BR bspc " and " bspwm .
377 .SH AUTHOR
378 .EX
379 Bastien Dejean <baskerville at lavabit.com>
380 .SH CONTRIBUTORS
381 .EX
382 Ivan Kanakarakis <ivan.kanak at gmail.com>
383 Thomas Adam <thomas at xteddy.org>
384 .EE
385 .SH HOMEPAGE
386 .TP
387 https://github.com/baskerville/bspwm
388 .SH MAILING LIST
389 .TP
390 bspwm at librelist.com
391 .SH SEE ALSO
392 .BR monsterwm (1),
393 .BR tmux (1).