]> git.lizzy.rs Git - bspwm.git/blobdiff - doc/bspwm.1.txt
Consolidate fit_monitor
[bspwm.git] / doc / bspwm.1.txt
index 66082565f43594bc3dfc56bdfd50be2be6467e59..e55e0e612b40e575bd0b12fbc2d8f425e2bc6423 100644 (file)
@@ -8,12 +8,12 @@ bspwm(1)
 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']
 
@@ -34,6 +34,9 @@ Options
 *-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.
 
@@ -44,9 +47,9 @@ Options
 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].
 
@@ -138,7 +141,7 @@ Select a window.
 
 ----
 WINDOW_SEL := <window_id> 
-            | (DIR|CYCLE_DIR|biggest|last|focused)[.floating|.tiled][.like|.unlike]
+            | (DIR|CYCLE_DIR|biggest|last|focused|older|newer)[.floating|.tiled][.like|.unlike][.manual][.urgent][.local]
 ----
 
 Primary Selectors
@@ -155,11 +158,17 @@ biggest::
     Selects the biggest window on the current desktop.
 
 last::
-    Selects the previously focused window on the current desktop.
+    Selects the previously focused window.
 
 focused::
     Selects the currently focused window.
 
+older::
+    Selects the window older than the focused window in the history.
+
+newer::
+    Selects the window newer than the focused window in the history.
+
 Modifiers
 ^^^^^^^^^
 
@@ -175,6 +184,15 @@ like::
 unlike::
     Only consider windows that have a different class than the current window.
 
+manual::
+    Only consider windows in manual splitting mode (see *--presel*).
+
+local::
+    Only consider windows of the current desktop.
+
+urgent::
+    Only consider urgent windows.
+
 Desktop
 ~~~~~~~
 
@@ -182,12 +200,19 @@ Select a desktop.
 
 ----
 DESKTOP_SEL := <desktop_name>
-             | (CYCLE_DIR|last|focused)[.occupied|.free]
+             | ^<n>
+             | (CYCLE_DIR|last|focused|older|newer)[.occupied|.free][.urgent][.local]
 ----
 
 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.
 
@@ -197,6 +222,12 @@ last::
 focused::
     Selects the currently focused desktop.
 
+older::
+    Selects the desktop older than the focused desktop in the history.
+
+newer::
+    Selects the desktop newer than the focused desktop in the history.
+
 Modifiers
 ^^^^^^^^^
 
@@ -206,6 +237,12 @@ occupied::
 free::
     Only consider free desktops.
 
+urgent::
+    Only consider urgent desktops.
+
+local::
+    Only consider desktops of the current monitor.
+
 Monitor
 ~~~~~~~
 
@@ -213,24 +250,40 @@ Select a monitor.
 
 ----
 MONITOR_SEL := <monitor_name>
-             | (DIR|CYCLE_DIR|last|focused)[.occupied|.free]
+             | ^<n>
+             | (DIR|CYCLE_DIR|last|primary|focused|older|newer)[.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.
 
 focused::
     Selects the currently focused monitor.
 
+older::
+    Selects the monitor older than the focused monitor in the history.
+
+newer::
+    Selects the monitor newer than the focused monitor in the history.
+
 Modifiers
 ^^^^^^^^^
 
@@ -273,12 +326,15 @@ Options
     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.
 
-*-t*, *--toggle* floating|fullscreen|locked[=on|off]::
+*-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|sticky|private[=on|off]::
     Set or toggle the given state for the selected window.
 
 *-c*, *--close*::
@@ -309,6 +365,9 @@ Options
 *-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.
 
@@ -346,12 +405,15 @@ Options
 *-r*, *--remove-desktops* <name>...::
     Remove desktops with the given names.
 
-*-p*, *--pad* [<top> <right> <bottom> <left>]::
-    Set or get the padding of the selected monitor.
-
 *-n*, *--rename* <new_name>::
     Rename the selected monitor.
 
+*-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.
+
+*-s*, *--swap* 'MONITOR_SEL'::
+    Swap the selected monitor with the given monitor.
+
 Query
 ~~~~~
 
@@ -377,6 +439,9 @@ Options
 *-H*, *--history*::
     Print the history as it relates to the query.
 
+*-S*, *--stack*::
+    Print the window stacking order.
+
 [*-m*,*--monitor* ['MONITOR_SEL']] | [*-d*,*--desktop* ['DESKTOP_SEL']] | [*-w*, *--window* ['WINDOW_SEL']]::
     Constrain matches to the selected monitor, desktop or window.
 
@@ -397,6 +462,9 @@ Options
 *-H*, *--history* <file_path>::
     Load the focus history from the given file.
 
+*-S*, *--stack* <file_path>::
+    Load the window stacking order from the given file.
+
 Control
 ~~~~~~~
 
@@ -409,13 +477,16 @@ Options
 ^^^^^^^
 
 *--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.
+
+*--record-history* on|off::
+    Enable or disable the recording of window focus history.
 
 Pointer
 ~~~~~~~
@@ -428,11 +499,14 @@ pointer 'OPTIONS'
 Options
 ^^^^^^^
 
+*-g*, *--grab* focus|move|resize_side|resize_corner::
+    Initiate the given pointer action.
+
 *-t*, *--track* <x> <y>::
     Pass the pointer root coordinates for the current pointer action.
 
-*-g*, *--grab* focus|move|resize_side|resize_corner::
-    Perform the given pointer action.
+*-u*, *--ungrab*::
+    Terminate the current pointer action.
 
 Rule
 ~~~~
@@ -445,13 +519,13 @@ rule 'OPTIONS'
 Options
 ^^^^^^^
 
-*-a*, *--add* <pattern> [-d 'DESKTOP_SEL'] [--floating] [--follow]::
-    Create a new rule (<pattern> must match the class or instance name).
+*-a*, *--add* <class_name>|<instance_name> [-d 'DESKTOP_SEL' [--follow]] [--floating] [--fullscreen] [--locked] [--sticky] [--focus] [--frame] [--private] [--unmanage] [--one-shot]::
+    Create a new rule.
 
-*-r*, *--rm* <rule_uid>...::
-    Remove the rules with the given UIDs.
+*-r*, *--remove* <name>|^<n>|tail|head...::
+    Remove the rules with the given names or indexes.
 
-*-l*, *--list* [<pattern>]::
+*-l*, *--list* [<name>]::
     List the rules.
 
 Config
@@ -460,7 +534,7 @@ Config
 General Syntax
 ^^^^^^^^^^^^^^
 
-config <key> [<value>]::
+config [-m 'MONITOR_SEL'|-d 'DESKTOP_SEL'] <key> [<value>]::
     Get or set the value of <key>.
 
 Quit
@@ -478,6 +552,8 @@ Colors are either http://en.wikipedia.org/wiki/X11_color_names[X color names] or
 
 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.
@@ -500,20 +576,44 @@ All the boolean settings are 'false' by default.
 'normal_locked_border_color'::
     Color of the border of an unfocused locked window.
 
+'focused_sticky_border_color'::
+    Color of the border of a focused sticky window of a focused monitor.
+
+'active_sticky_border_color'::
+    Color of the border of a focused sticky window of an unfocused monitor.
+
+'normal_sticky_border_color'::
+    Color of the border of an unfocused sticky window.
+
+'focused_private_border_color'::
+    Color of the border of a focused private window of a focused monitor.
+
+'active_private_border_color'::
+    Color of the border of a focused private window of an unfocused monitor.
+
+'normal_private_border_color'::
+    Color of the border of an unfocused private window.
+
 'urgent_border_color'::
     Color of the border of an urgent window.
 
-'border_width'::
-    Window border width.
+'focused_frame_opacity'::
+    Opacity of a focused frame of a focused monitor.
 
-'window_gap'::
-    Value of the gap that separates windows.
+'active_frame_opacity'::
+    Opacity of a focused frame of an unfocused monitor.
+
+'normal_frame_opacity'::
+    Opacity of an unfocused frame.
 
 'split_ratio'::
     Default split ratio.
 
-'wm_name'::
-    The value that shall be used for the '_NET_WM_NAME' property of the root window.
+'growth_factor'::
+    Intensity of the growth involved in pulling or pushing an edge.
+
+'history_aware_focus'::
+    Give priority to the focus history when focusing nodes.
 
 'borderless_monocle'::
     Remove borders for tiled windows in monocle mode.
@@ -527,26 +627,78 @@ All the boolean settings are 'false' by default.
 '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.
+
+'honor_ewmh_focus'::
+    Honor EWMH requests to focus a window.
+
+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.
+
+'border_width'::
+    Window border width.
+
+
+Internal State Format
+---------------------
+
+If a 'PANEL_FIFO' is specified, *bspwm* will write informations regarding its current state to it.
+
+Those informations are composed of items separated by colons.
+
+Each item as the form '<type><value>' where '<type>' is the first character of the item.
+
+'M<monitor_name>'::
+    Focused monitor.
+
+'m<monitor_name>'::
+    Unfocused monitor.
+
+'O<desktop_name>'::
+    Occupied focused desktop.
+
+'o<desktop_name>'::
+    Occupied unfocused desktop.
+
+'F<desktop_name>'::
+    Free focused desktop.
+
+'f<desktop_name>'::
+    Free unfocused desktop.
+
+'U<desktop_name>'::
+    Urgent focused desktop.
+
+'u<desktop_name>'::
+    Urgent unfocused desktop.
+
+'L(tiled|monocle)'::
+    Layout of the focused desktop of the focused monitor.
 
 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
 ------
@@ -572,7 +724,7 @@ Contributors
 Author
 ------
 
-Bastien Dejean <baskerville at lavabit.com>
+Bastien Dejean <nihilhill at gmail.com>
 
 Mailing List
 ------------