New windows are inserted in the tree as close as possible to the focused window.
-There is only two splitting modes: 'automatic' and 'manual'.
+There are only two splitting modes: 'automatic' and 'manual'.
The default mode is 'automatic'. The 'manual' mode is entered by sending a *preselection* message.
+-------------------------+ +-------------------------+
----
-Same departure, but the mode is 'manual', and a *window --presel up* message was sent beforehand:
+Same action, but the mode is 'manual', and a *window --presel up* message was sent beforehand:
----
b b
PRIMARY_SELECTOR[.MODIFIER]*
-For obvious reasons, neither desktops nor monitors names may be valid
-descriptive selectors.
+For obvious reasons, neither desktop nor monitor names may be valid descriptive
+selectors.
Window
~~~~~~
----
WINDOW_SEL := <window_id>
- | (DIR|CYCLE_DIR|biggest|last|focused|older|newer)[.floating|.tiled][.like|.unlike][.manual|.automatic][.urgent][.local]
+ | (DIR|CYCLE_DIR|biggest|last|focused|older|newer)[.floating|.tiled][.like|.unlike][.manual|.automatic][.urgent][.local][.unfocused]
----
Primary Selectors
urgent::
Only consider urgent windows.
+unfocused::
+ Only consider windows other than the focused window.
+
Desktop
~~~~~~~
Is above any tiled window and can be moved/resized freely. Although it doesn't occupy any tiling space, it is still part of the window tree.
pseudo_tiled::
- Has a libre size while being centered in its tiling space.
+ Has an unrestricted size while being centered in its tiling space.
fullscreen::
Fills its monitor rectangle, is above all the other windows and has no borders.
*-s*, *--swap* 'DESKTOP_SEL'::
Swap the selected desktop with the given desktop.
+*-b*, *--bubble* 'CYCLE_DIR'::
+ Bubble the selected desktop in the given direction.
+
*-r*, *--remove*::
Remove the selected desktop.
Reorder the desktops of the selected monitor to match the given order.
*-d*, *--reset-desktops* <name>...::
- Rename, add or remove desktops depending on whether the number of given names is equal, superior or inferior to the number of existing desktops.
+ Rename, add or remove desktops depending on whether the number of given names is equal, superior or inferior to the number of existing desktops. Incidentally reset the settings of the existing desktops.
*-n*, *--rename* <new_name>::
Rename the selected monitor.
*--record-history* on|off::
Enable or disable the recording of window focus history.
-*--subscribe*::
- Continuously print status informations.
+*--subscribe* (all|report|monitor|desktop|window|...)*::
+ Continuously print status information.
*--get-status*::
- Print the current status informations.
+ Print the current status information.
Pointer
~~~~~~~
Options
^^^^^^^
-*-a*, *--add* <class_name>|<instance_name>|* [*-o*|*--one-shot*] [monitor=MONITOR_SEL|desktop=DESKTOP_SEL|window=WINDOW_SEL] [(floating|fullscreen|pseudo_tiled|locked|sticky|private|center|follow|manage|focus)=(true|false)] [split_dir=DIR]::
+*-a*, *--add* <class_name>|<instance_name>|* [*-o*|*--one-shot*] [monitor=MONITOR_SEL|desktop=DESKTOP_SEL|window=WINDOW_SEL] [(floating|fullscreen|pseudo_tiled|locked|sticky|private|center|follow|manage|focus|border)=(on|off)] [split_dir=DIR] [split_ratio=RATIO]::
Create a new rule.
*-r*, *--remove* ^<n>|head|tail|<class_name>|<instance_name>|*...::
Settings
--------
-Colors are either http://en.wikipedia.org/wiki/X11_color_names[X color names] or '#RRGGBB', booleans are 'true' or 'false'.
+Colors are either '#RRGGBB' or http://en.wikipedia.org/wiki/X11_color_names[X color names], booleans are 'true', 'on', 'false' or 'off'.
-All the boolean settings are 'false' by default.
+All the boolean settings are 'false' by default unless stated otherwise.
Global Settings
~~~~~~~~~~~~~~~
'external_rules_command'::
External command used to retrieve rule consequences. The command will receive the the ID of the window being processed as its first argument and the class and instance names as second and third arguments. The output of that command must have the following format: *key1=value1 key2=value2 ...* (the valid key/value pairs are given in the description of the 'rule' command).
+'initial_polarity'::
+ On which child should a new window be attached when adding a window on a single window tree in automatic mode. Accept the following values: *first_child*, *second_child*.
+
'history_aware_focus'::
Give priority to the focus history when focusing nodes.
+'focus_by_distance'::
+ Base focusing on distances between windows.
+
'borderless_monocle'::
Remove borders for tiled windows in monocle mode.
'gapless_monocle'::
Remove gaps for tiled windows in monocle mode.
+'leaf_monocle'::
+ Use monocle layout if there is a single node.
+
'focus_follows_pointer'::
Focus the window under the pointer.
+'pointer_follows_focus'::
+ When focusing a window, put the pointer at its center.
+
'pointer_follows_monitor'::
When focusing a monitor, put the pointer at its center.
'ignore_ewmh_focus'::
Ignore EWMH focus requests coming from applications.
+'center_pseudo_tiled'::
+ Center pseudo tiled windows into their tiling rectangles. Defaults to 'true'.
+
'remove_disabled_monitors'::
Consider disabled monitors as disconnected.
Status Format
-------------
-Status informations are composed of items separated by colons.
+Status information is composed of items separated by colons.
Each item has the form '<type><value>' where '<type>' is the first character of the item.
'u<desktop_name>'::
Urgent unfocused desktop.
-'L(tiled|monocle)'::
- Layout of the focused desktop of the focused monitor.
+'L(T|M)'::
+ Layout of the focused desktop of a monitor.
Environment Variables
---------------------
'BSPWM_SOCKET'::
- 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<display_name>-socket'.
+ 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<host_name>_<display_number>_<screen_number>-socket'.
Panels
------
* Any EWMH compliant panel (e.g.: 'tint2', 'bmpanel2', etc.).
-* A custom panel if the '-s' flag is used (have a look at the files in 'examples/panel').
+* A custom panel (have a look at the files in 'examples/panel').
Key Features
------------
* Configured and controlled through messages.
-* Multiple monitors support (via 'RandR').
-* EWMH support (*tint2* works).
+* Multiple monitors support.
+* EWMH support.
* Hybrid tiling.
Contributors