]> git.lizzy.rs Git - bspwm.git/blob - bspwm.1
Set split mode before drawing borders
[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"
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 Colors are either
279 .B X
280 color names (cf.
281 .I COLOR NAMES
282 in
283 .BR X (7))
284 or
285 .I #RRGGBB
286 , booleans are
287 .IR "true " "or " false .
288 .TP
289 .I focused_border_color
290 Color of the border of a focused window of a focused monitor.
291 .TP
292 .I active_border_color
293 Color of the border of a focused window of an unfocused monitor.
294 .TP
295 .I normal_border_color
296 Color of the border of an unfocused window.
297 .TP
298 .I presel_border_color
299 Color of the
300 .B presel
301 message feedback.
302 .TP
303 .I focused_locked_border_color
304 Color of the border of a focused locked window of a focused monitor.
305 .TP
306 .I active_locked_border_color
307 Color of the border of a focused locked window of an unfocused monitor.
308 .TP
309 .I normal_locked_border_color
310 Color of the border of an unfocused locked window.
311 .TP
312 .I urgent_border_color
313 Color of the border of an urgent window.
314 .TP
315 .I border_width
316 Window border width.
317 .TP
318 .I window_gap
319 Value of the gap that separates windows.
320 .TP
321 .I split_ratio
322 Default split ratio.
323 .TP
324 .I top_padding
325 .TQ
326 .I right_padding
327 .TQ
328 .I bottom_padding
329 .TQ
330 .I left_padding
331 Padding space added at the sides of the current monitor.
332 .TP
333 .I wm_name
334 The value that shall be used for the
335 .B _NET_WM_NAME
336 property of the root window.
337 .TP
338 .I borderless_monocle
339 Whether to remove borders for tiled windows in monocle mode.
340 .TP
341 .I gapless_monocle
342 Whether to remove gaps for tiled windows in monocle mode.
343 .TP
344 .I focus_follows_pointer
345 Whether to focus the window under the pointer.
346 .TP
347 .I adaptative_raise
348 Prevent floating windows from being raised when they might cover other floating windows.
349 .TP
350 .I apply_shadow_property
351 Enable shadows for floating windows via the
352 .B _COMPTON_SHADOW
353 property.
354 .TP
355 .I auto_alernate
356 Whether to interpret two consecutive identical
357 .B use
358 messages as an
359 .B alternate
360 message.
361 .TP
362 .I focus_by_distance
363 Whether to use window or leaf distance for focus movement.
364 .SH ENVIRONMENT VARIABLES
365 .TP
366 .I BSPWM_SOCKET
367 The path of the socket used for the communication between
368 .BR bspc " and " bspwm .
369 .SH AUTHOR
370 .EX
371 Bastien Dejean <baskerville at lavabit.com>
372 .SH CONTRIBUTORS
373 .EX
374 Ivan Kanakarakis <ivan.kanak at gmail.com>
375 Thomas Adam <thomas at xteddy.org>
376 .EE
377 .SH HOMEPAGE
378 .TP
379 https://github.com/baskerville/bspwm
380 .SH MAILING LIST
381 .TP
382 bspwm at librelist.com
383 .SH SEE ALSO
384 .BR monsterwm (1),
385 .BR tmux (1).