.TH BSPWM 1 bspwm .SH NAME bspwm \- Tiling window manager based on binary space partitioning .SH SYNOPSIS .B bspwm .RI [ -h | -v | "-s PANEL_FIFO" | "-p PANEL_PREFIX" ] .P .BI bspc " MESSAGE" .RI [ ARGUMENTS ] .RI [ OPTIONS ] .SH DESCRIPTION .B bspwm is a tiling window manager that represents windows as the leaves of a full binary tree. .P It is controlled and configured via .BR bspc . .SH CONFIGURATION .B bspwm have only two sources of informations: the .B X events it receives and the messages it reads on a dedicated socket. .P Its configuration file is .IR $XDG_CONFIG_HOME/bspwm/autostart . .P Keyboard and pointer bindings are defined with .BR sxhkd . .P Example configuration files can be found in the .I examples directory. .SH SPLITTING MODES There is only two splitting modes: .IR automatic " and " manual . .P The default mode is .IR automatic . The .I manual mode is entered by sending a .B presel message. .P Example: insertion of a new node (number 4) into the given tree in .I automatic mode: .EX b c / \\ / \\ 3 a --> 4 b ^ / \\ ^ / \\ 2 1 3 a / \\ 2 1 +-------------------------+ +-------------------------+ | | | | | | | | 2 | | | 3 | | | | | | | | 3 |------------| --> | 4 |------------| | ^ | | | ^ | | | | | 1 | | | 1 | 2 | | | | | | | | +-------------------------+ +-------------------------+ .EE .P Same departure, but the mode is .IR manual , and a .BI presel " up" message was sent beforehand: .EX b b / \\ / \\ 3 a --> c a ^ / \\ / \\ / \\ 2 1 4 3 2 1 ^ +-------------------------+ +-------------------------+ | | | | | | | | 2 | | 4 | 2 | | | | | ^ | | | 3 |------------| --> |------------|------------| | ^ | | | | | | | 1 | | 3 | 1 | | | | | | | +-------------------------+ +-------------------------+ .EE .SH CONTAINERS .P Each monitor contains at least one desktop. .P Each desktop contains at most one tree. .SH MESSAGES .TP .BI get " SETTING" Return the value of the given setting. .TP .BI set " SETTING VALUE" Set the value of the given setting. .TP .BI list " [DESKTOP_NAME]" Output the internal representation of the window tree. .TP .BI list_desktops " [--quiet]" Perform a dump of each desktop for the current monitor. .TP .BI list_monitors " [--quiet]" Perform a dump of each monitor. .TP .BI list_history Return the node focus history of each desktop. .TP .BI list_windows Return the list of managed windows (i.e. their identifiers). .TP .BI list_rules Return the list of rules. .TP .BI presel " left|right|up|down [SPLIT_RATIO]" Switch to manual mode and select the splitting direction. .TP .BI cancel Switch to automatic mode. .TP .BI ratio " VALUE" Set the splitting ratio of the focused window. .TP .BI pad " MONITOR_NAME [TOP_PADDING [RIGHT_PADDING [BOTTOM_PADDING [LEFT_PADDING]]]]" Set the padding of the given monitor. .TP .BI focus " left|right|up|down" Focus the neighbor window situated in the given direction. .TP .BI shift " left|right|up|down" Exchange the current window with the given neighbor. .TP .BI swap " [--keep-focus]" Swap the focused window with the last focused window. .TP .BI push " left|right|up|down" Push the fence located in the given direction. .TP .BI pull " left|right|up|down" Pull the fence located in the given direction. .TP .BI cycle " next|prev [--skip-floating|--skip-tiled|--skip-class-equal|--skip-class-differ]" Focus the next or previous window matching the given constraints. .TP .BI nearest " older|newer [--skip-floating|--skip-tiled|--skip-class-equal|--skip-class-differ]" Focus the nearest window matching the given constraints. .TP .BI biggest Return the ID of the biggest tiled window. .TP .BI circulate " forward|backward" Circulate the leaves in the given direction. .TP .BI grab_pointer " focus|move|resize_side|resize_corner" Begin the specified pointer action. .TP .BI track_pointer " ROOT_X ROOT_Y" Pass the pointer root coordinates for the current pointer action. .TP .BI ungrab_pointer End the current pointer action. .TP .BI toggle_fullscreen Toggle the fullscreen state of the current window. .TP .BI toggle_floating Toggle the floating state of the current window. .TP .BI toggle_locked Toggle the locked state of the current window (locked windows will not respond to the .B close message). .TP .BI toggle_visibility Toggle the visibility of all the managed windows. .TP .BI close Close the focused window. .TP .BI kill Kill the focused window. .TP .BI send_to " DESKTOP_NAME [--follow]" Send the focused window to the given desktop. .TP .BI drop_to " next|prev [--follow]" Send the focused window to the next or previous desktop. .TP .BI send_to_monitor " MONITOR_NAME [--follow]" Send the focused window to the given monitor. .TP .BI drop_to_monitor " next|prev [--follow]" Send the focused window to the next or previous monitor. .TP .BI use " DESKTOP_NAME" Select the given desktop. .TP .BI use_monitor " MONITOR_NAME" Select the given monitor. .TP .BI alternate Alternate between the current and the last focused window. .TP .BI alternate_desktop Alternate between the current and the last focused desktop. .TP .BI alternate_monitor Alternate between the current and the last focused monitor. .TP .BI add " DESKTOP_NAME ..." Make new desktops with the given names. .TP .BI add_in " MONITOR_NAME DESKTOP_NAME ..." Make new desktops with the given names in the given monitor. .TP .BI rename_monitor " CURRENT_NAME NEW_NAME" Rename the monitor named CURRENT_NAME to NEW_NAME. .TP .BI rename " CURRENT_NAME NEW_NAME" Rename the desktop named CURRENT_NAME to NEW_NAME. .TP .BI remove_desktop " DESKTOP_NAME ..." Remove the given desktops. .TP .BI send_desktop_to " MONITOR_NAME [--follow]" Send the current desktop to the given monitor. .TP .BI cycle_monitor " next|prev" Select the next or previous monitor. .TP .BI cycle_desktop " next|prev [--skip-free|--skip-occupied]" Select the next or previous desktop. .TP .BI layout " monocle|tiled [DESKTOP_NAME ...]" Set the layout of the given desktops (current if none given). .TP .BI cycle_layout Cycle the layout of the current desktop. .TP .BI rotate " clockwise|counter_clockwise|full_cycle" Rotate the window tree. .TP .BI flip " horizontal|vertical" Flip the window tree. .TP .B balance Adjust the split ratios so that all windows occupy the same area. .TP .BI rule " PATTERN [DESKTOP_NAME] [floating] [follow]" Create a new rule (PATTERN must match the class or instance name). .TP .BI remove_rule " UID ..." Remove the rules with the given UIDs. .TP .BI put_status Output the current state to the panel fifo. .TP .BI adopt_orphans Manage all the unmanaged windows remaining from a previous session. .TP .BI restore_layout " FILE_PATH" Restore the layout of each desktop from the content of FILE_PATH. .TP .BI restore_history " FILE_PATH" Restore the history of each desktop from the content of FILE_PATH. .TP .BI quit " [EXIT_STATUS]" Quit. .SH SETTINGS .P Colors are either .B X color names (cf. .I COLOR NAMES in .BR X (7)) or .I #RRGGBB , booleans are .IR "true " "or " false . .P All the boolean settings are .I false by default. .TP .I focused_border_color Color of the border of a focused window of a focused monitor. .TP .I active_border_color Color of the border of a focused window of an unfocused monitor. .TP .I normal_border_color Color of the border of an unfocused window. .TP .I presel_border_color Color of the .B presel message feedback. .TP .I focused_locked_border_color Color of the border of a focused locked window of a focused monitor. .TP .I active_locked_border_color Color of the border of a focused locked window of an unfocused monitor. .TP .I normal_locked_border_color Color of the border of an unfocused locked window. .TP .I urgent_border_color Color of the border of an urgent window. .TP .I border_width Window border width. .TP .I window_gap Value of the gap that separates windows. .TP .I split_ratio Default split ratio. .TP .I top_padding .TQ .I right_padding .TQ .I bottom_padding .TQ .I left_padding Padding space added at the sides of the current monitor. .TP .I wm_name The value that shall be used for the .B _NET_WM_NAME property of the root window. .TP .I borderless_monocle Remove borders for tiled windows in monocle mode. .TP .I gapless_monocle Remove gaps for tiled windows in monocle mode. .TP .I focus_follows_pointer Focus the window under the pointer. .TP .I pointer_follows_monitor When focusing a monitor, put the pointer at its center. .TP .I adaptative_raise Prevent floating windows from being raised when they might cover other floating windows. .TP .I apply_shadow_property Enable shadows for floating windows via the .B _COMPTON_SHADOW property. .TP .I auto_alernate Interpret two consecutive identical .B use messages as an .B alternate message. .TP .I focus_by_distance Use window or leaf distance for focus movement. .SH ENVIRONMENT VARIABLES .TP .I BSPWM_SOCKET The path of the socket used for the communication between .BR bspc " and " bspwm . .SH AUTHOR .EX Bastien Dejean .SH CONTRIBUTORS .EX Ivan Kanakarakis Thomas Adam .EE .SH HOMEPAGE .TP https://github.com/baskerville/bspwm .SH MAILING LIST .TP bspwm at librelist.com .SH SEE ALSO .BR monsterwm (1), .BR tmux (1).