3 bspwm \- Tiling window manager based on binary space partitioning
6 .RI [ -h | -v | "-s PANEL_FIFO" | "-p PANEL_PREFIX" ]
13 is a tiling window manager that represents windows as the leaves of a full binary tree.
15 It is controlled and configured via
19 have only two sources of informations: the
21 events it receives and the messages it reads on a dedicated socket.
23 Its configuration file is
24 .IR $XDG_CONFIG_HOME/bspwm/autostart .
26 Keyboard and pointer bindings are defined with
29 Example configuration files can be found in the
33 There is only two splitting modes:
34 .IR automatic " and " manual .
40 mode is entered by sending a
44 Example: insertion of a new node (number 4) into the given tree in
56 +-------------------------+ +-------------------------+
60 | 3 |------------| --> | 4 |------------|
64 +-------------------------+ +-------------------------+
68 Same departure, but the mode is
72 message was sent beforehand:
81 +-------------------------+ +-------------------------+
85 | 3 |------------| --> |------------|------------|
89 +-------------------------+ +-------------------------+
94 Each monitor contains at least one desktop.
96 Each desktop contains at most one tree.
100 Return the value of the given setting.
102 .BI set " SETTING VALUE"
103 Set the value of the given setting.
105 .BI list " [DESKTOP_NAME]"
106 Output the internal representation of the window tree.
108 .BI list_desktops " [--quiet]"
109 Perform a dump of each desktop for the current monitor.
111 .BI list_monitors " [--quiet]"
112 Perform a dump of each monitor.
115 Return the node focus history of each desktop.
118 Return the list of managed windows (i.e. their identifiers).
121 Return the list of rules.
123 .BI presel " left|right|up|down [SPLIT_RATIO]"
124 Switch to manual mode and select the splitting direction.
127 Switch to automatic mode.
130 Set the splitting ratio of the focused window.
132 .BI pad " MONITOR_NAME [TOP_PADDING [RIGHT_PADDING [BOTTOM_PADDING [LEFT_PADDING]]]]"
133 Set the padding of the given monitor.
135 .BI focus " left|right|up|down"
136 Focus the neighbor window situated in the given direction.
138 .BI shift " left|right|up|down"
139 Exchange the current window with the given neighbor.
141 .BI swap " [--keep-focus]"
142 Swap the focused window with the last focused window.
144 .BI push " left|right|up|down"
145 Push the fence located in the given direction.
147 .BI pull " left|right|up|down"
148 Pull the fence located in the given direction.
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.
153 .BI nearest " older|newer [--skip-floating|--skip-tiled|--skip-class-equal|--skip-class-differ]"
154 Focus the nearest window matching the given constraints.
157 Return the ID of the biggest tiled window.
159 .BI circulate " forward|backward"
160 Circulate the leaves in the given direction.
162 .BI grab_pointer " focus|move|resize_side|resize_corner"
163 Begin the specified pointer action.
165 .BI track_pointer " ROOT_X ROOT_Y"
166 Pass the pointer root coordinates for the current pointer action.
169 End the current pointer action.
171 .BI toggle_fullscreen
172 Toggle the fullscreen state of the current window.
175 Toggle the floating state of the current window.
178 Toggle the locked state of the current window (locked windows will not respond to the
182 .BI toggle_visibility
183 Toggle the visibility of all the managed windows.
186 Close the focused window.
189 Kill the focused window.
191 .BI send_to " DESKTOP_NAME [--follow]"
192 Send the focused window to the given desktop.
194 .BI drop_to " next|prev [--follow]"
195 Send the focused window to the next or previous desktop.
197 .BI send_to_monitor " MONITOR_NAME [--follow]"
198 Send the focused window to the given monitor.
200 .BI drop_to_monitor " next|prev [--follow]"
201 Send the focused window to the next or previous monitor.
203 .BI use " DESKTOP_NAME"
204 Select the given desktop.
206 .BI use_monitor " MONITOR_NAME"
207 Select the given monitor.
210 Alternate between the current and the last focused window.
212 .BI alternate_desktop
213 Alternate between the current and the last focused desktop.
215 .BI alternate_monitor
216 Alternate between the current and the last focused monitor.
218 .BI add " DESKTOP_NAME ..."
219 Make new desktops with the given names.
221 .BI add_in " MONITOR_NAME DESKTOP_NAME ..."
222 Make new desktops with the given names in the given monitor.
224 .BI rename_monitor " CURRENT_NAME NEW_NAME"
225 Rename the monitor named CURRENT_NAME to NEW_NAME.
227 .BI rename " CURRENT_NAME NEW_NAME"
228 Rename the desktop named CURRENT_NAME to NEW_NAME.
230 .BI remove_desktop " DESKTOP_NAME ..."
231 Remove the given desktops.
233 .BI send_desktop_to " MONITOR_NAME [--follow]"
234 Send the current desktop to the given monitor.
236 .BI cycle_monitor " next|prev"
237 Select the next or previous monitor.
239 .BI cycle_desktop " next|prev [--skip-free|--skip-occupied]"
240 Select the next or previous desktop.
242 .BI layout " monocle|tiled [DESKTOP_NAME ...]"
243 Set the layout of the given desktops (current if none given).
246 Cycle the layout of the current desktop.
248 .BI rotate " clockwise|counter_clockwise|full_cycle"
249 Rotate the window tree.
251 .BI flip " horizontal|vertical"
252 Flip the window tree.
255 Adjust the split ratios so that all windows occupy the same area.
257 .BI rule " PATTERN [DESKTOP_NAME] [floating] [follow]"
258 Create a new rule (PATTERN must match the class or instance name).
260 .BI remove_rule " UID ..."
261 Remove the rules with the given UIDs.
264 Output the current state to the panel fifo.
267 Manage all the unmanaged windows remaining from a previous session.
269 .BI restore_layout " FILE_PATH"
270 Restore the layout of each desktop from the content of FILE_PATH.
272 .BI restore_history " FILE_PATH"
273 Restore the history of each desktop from the content of FILE_PATH.
275 .BI quit " [EXIT_STATUS]"
288 .IR "true " "or " false .
290 All the boolean settings are
294 .I focused_border_color
295 Color of the border of a focused window of a focused monitor.
297 .I active_border_color
298 Color of the border of a focused window of an unfocused monitor.
300 .I normal_border_color
301 Color of the border of an unfocused window.
303 .I presel_border_color
308 .I focused_locked_border_color
309 Color of the border of a focused locked window of a focused monitor.
311 .I active_locked_border_color
312 Color of the border of a focused locked window of an unfocused monitor.
314 .I normal_locked_border_color
315 Color of the border of an unfocused locked window.
317 .I urgent_border_color
318 Color of the border of an urgent window.
324 Value of the gap that separates windows.
336 Padding space added at the sides of the current monitor.
339 The value that shall be used for the
341 property of the root window.
343 .I borderless_monocle
344 Remove borders for tiled windows in monocle mode.
347 Remove gaps for tiled windows in monocle mode.
349 .I focus_follows_pointer
350 Focus the window under the pointer.
352 .I pointer_follows_monitor
353 When focusing a monitor, put the pointer at its center.
356 Prevent floating windows from being raised when they might cover other floating windows.
358 .I apply_shadow_property
359 Enable shadows for floating windows via the
364 Interpret two consecutive identical
371 Use window or leaf distance for focus movement.
372 .SH ENVIRONMENT VARIABLES
375 The path of the socket used for the communication between
376 .BR bspc " and " bspwm .
379 Bastien Dejean <baskerville at lavabit.com>
382 Ivan Kanakarakis <ivan.kanak at gmail.com>
383 Thomas Adam <thomas at xteddy.org>
387 https://github.com/baskerville/bspwm
390 bspwm at librelist.com