Name
----
-bspwm - Tiling window manager based on binary space partitioning
+bspwm - Binary space partitioning window manager
Synopsis
--------
-*bspwm* [*-h*|*-v*|*-s* 'PANEL_FIFO'|*-p* 'PANEL_PREFIX']
+*bspwm* [*-h*|*-v*|*-c* 'CONFIG_PATH'|*-s* 'PANEL_FIFO'|*-p* 'PANEL_PREFIX']
*bspc* 'COMMAND' ['ARGUMENTS']
*-v*::
Print the version and exit.
+*-c* 'CONFIG_PATH'::
+ Use the given configuration file.
+
*-s* 'PANEL_FIFO'::
Write the internal state to the given FIFO.
Configuration
-------------
-*bspwm* have only two sources of informations: the X events it receives and the messages it reads on a dedicated socket.
+*bspwm* has only two sources of informations: the X events it receives and the messages it reads on a dedicated socket.
-Its configuration file is '$XDG_CONFIG_HOME/bspwm/autostart'.
+The default configuration file is '$XDG_CONFIG_HOME/bspwm/bspwmrc'.
Keyboard and pointer bindings are defined with https://github.com/baskerville/sxhkd[sxhkd].
----
WINDOW_SEL := <window_id>
- | (DIR|CYCLE_DIR|biggest|last|focused)[.floating|.tiled][.like|.unlike]
+ | (DIR|CYCLE_DIR|biggest|last|focused)[.floating|.tiled][.like|.unlike][.automatic|.manual][.urgent|.nonurgent]
----
Primary Selectors
unlike::
Only consider windows that have a different class than the current window.
+automatic::
+ Only consider windows in automatic splitting mode.
+
+manual::
+ Only consider windows in manual splitting mode (see *--presel*).
+
+urgent::
+ Only consider urgent windows.
+
+nonurgent::
+ Only consider nonurgent windows.
+
Desktop
~~~~~~~
----
DESKTOP_SEL := <desktop_name>
- | (CYCLE_DIR|last|focused)[.occupied|.free]
+ | ^<n>
+ | (CYCLE_DIR|last|focused)[.occupied|.free][.urgent|.nonurgent]
----
Primary Selectors
^^^^^^^^^^^^^^^^^
+<desktop_name>::
+ Selects the desktop with the given name.
+
+^<n>::
+ Selects the nth desktop.
+
'CYCLE_DIR'::
Selects the desktop in the given direction relative to the active desktop.
free::
Only consider free desktops.
+urgent::
+ Only consider urgent desktops.
+
+nonurgent::
+ Only consider nonurgent desktops.
+
Monitor
~~~~~~~
----
MONITOR_SEL := <monitor_name>
- | (DIR|CYCLE_DIR|last|focused)[.occupied|.free]
+ | ^<n>
+ | (DIR|CYCLE_DIR|last|primary|focused)[.occupied|.free]
----
Primary Selectors
^^^^^^^^^^^^^^^^^
+<monitor_name>::
+ Selects the monitor with the given name.
+
+^<n>::
+ Selects the nth monitor.
+
'DIR'::
Selects the monitor in the given (spacial) direction relative to the active monitor.
'CYCLE_DIR'::
Selects the monitor in the given (cyclic) direction relative to the active monitor.
+primary::
+ Selects the primary monitor.
+
last::
Selects the previously focused monitor.
Preselect the splitting area of the selected window (or cancel the preselection).
*-r*, *--ratio* 'RATIO'::
- Set the splitting ratio of the selected window.
+ Set the splitting ratio of the selected window (0 < 'RATIO' < 1).
*-e*, *--edge* 'DIR' 'RATIO'|pull|push::
Set the splitting ratio (or pull, or push) the edge located in the given direction in relation to the selected window.
+*-R*, *--rotate* 'DIR' '90|270|180'::
+ Rotate the tree holding the edge located in the given direction in relation to the selected window.
+
*-t*, *--toggle* floating|fullscreen|locked[=on|off]::
Set or toggle the given state for the selected window.
*-n*, *--rename* <new_name>::
Rename the selected desktop.
+*-s*, *--swap* 'DESKTOP_SEL'::
+ Swap the selected desktop with the given desktop.
+
*-r*, *--remove*::
Remove the selected desktop.
*-n*, *--rename* <new_name>::
Rename the selected monitor.
+*-s*, *--swap* 'MONITOR_SEL'::
+ Swap the selected monitor with the given monitor.
+
Query
~~~~~
^^^^^^^
*--adopt-orphans*::
- Manage all the unmanaged windows remaining from a previous session.
+ Manage all the unmanaged windows remaining from a previous session.
*--put-status*::
Write the current internal state to the panel FIFO.
*--toggle-visibility*::
- Toggle the visibility of all the managed windows.
+ Toggle the visibility of all the windows.
+
+*--float-upcoming*::
+ Toggle the floating state of the upcoming window.
Pointer
~~~~~~~
Options
^^^^^^^
-*-a*, *--add* <pattern> [-d 'DESKTOP_SEL'] [--floating] [--follow]::
+*-a*, *--add* <pattern> [-d 'DESKTOP_SEL' [--follow]] [--floating] [--focus] [--unmanage]::
Create a new rule (<pattern> must match the class or instance name).
*-r*, *--rm* <rule_uid>...::
General Syntax
^^^^^^^^^^^^^^
-config <key> [<value>]::
+config [-m 'MONITOR_SEL'|-d 'DESKTOP_SEL'] <key> [<value>]::
Get or set the value of <key>.
Quit
All the boolean settings are 'false' by default.
+Global Settings
+~~~~~~~~~~~~~~~
'focused_border_color'::
Color of the border of a focused window of a focused monitor.
'border_width'::
Window border width.
-'window_gap'::
- Value of the gap that separates windows.
-
'split_ratio'::
Default split ratio.
-'top_padding'::
-'right_padding'::
-'bottom_padding'::
-'left_padding'::
- Padding space added at the sides of the current monitor.
-
-'wm_name'::
- The value that shall be used for the '_NET_WM_NAME' property of the root window.
+'history_aware_focus'::
+ Give priority to the focus history when focusing nodes.
'borderless_monocle'::
Remove borders for tiled windows in monocle mode.
'pointer_follows_monitor'::
When focusing a monitor, put the pointer at its center.
-'adaptative_raise'::
- Prevent floating windows from being raised when they might cover other floating windows.
-
-'apply_shadow_property'::
- Enable shadows for floating windows via the '_COMPTON_SHADOW' property.
-
'auto_alternate'::
Interpret two consecutive identical *use* messages as an *alternate* message.
'auto_cancel'::
Interpret two consecutive identical *presel* messages as a *cancel* message.
-'history_aware_focus'::
- Give priority to the focus history when focusing nodes.
+'apply_floating_atom'::
+ Set the value of the '_BSPWM_FLOATING_WINDOW' atom of each window according to its floating state.
+
+Monitor Settings
+~~~~~~~~~~~~~~~~
+
+'top_padding'::
+'right_padding'::
+'bottom_padding'::
+'left_padding'::
+ Padding space added at the sides of the monitor.
+
+Desktop Settings
+~~~~~~~~~~~~~~~~
+
+'window_gap'::
+ Size of the gap that separates windows.
+
Environment Variables
---------------------
'BSPWM_SOCKET'::
- The path of the socket used for the communication between *bspc* and *bspwm*.
+ The path of the socket used for the communication between *bspc* and *bspwm*. If it isn't defined, then the following path is used: '/tmp/bspwm-socket'.
Panels
------