]> git.lizzy.rs Git - bspwm.git/blobdiff - doc/bspwm.1.asciidoc
Mention the default reference
[bspwm.git] / doc / bspwm.1.asciidoc
index 4444b4dac469df7e86a959ee3979d7ebd5c38043..cef3f9fd5581148f9d3616aaba69721186993a40 100644 (file)
@@ -17,6 +17,8 @@ Synopsis
 
 *bspc* 'DOMAIN' ['SELECTOR'] 'COMMANDS'
 
+*bspc* 'COMMAND' ['OPTIONS'] ['ARGUMENTS']
+
 Description
 -----------
 
@@ -64,11 +66,11 @@ Node
 Select a node.
 
 ----
-NODE_SEL := (<node_id>|PATH|DIR|CYCLE_DIR|last|older|newer|biggest|focused)[.[!]focused][.[!]automatic][.[!]local][.[!]leaf][.[!]STATE][.[!]FLAG][.[!]LAYER][.[!]same_class]
+NODE_SEL := (DIR|CYCLE_DIR|PATH|last|older|newer|focused|pointed|biggest|<node_id>)[.[!]focused][.[!]automatic][.[!]local][.[!]leaf][.[!]window][.[!]STATE][.[!]FLAG][.[!]LAYER][.[!]same_class]
 
 STATE := tiled|pseudo_tiled|floating|fullscreen
 
-FLAG := urgent|sticky|private|locked
+FLAG := hidden|sticky|private|locked|urgent
 
 LAYER := below|normal|above
 
@@ -80,33 +82,36 @@ JUMP := first|1|second|2|brother|parent|DIR
 Descriptors
 ^^^^^^^^^^^
 
-<node_id>::
-       Selects the node with the given ID.
-
-'PATH'::
-       Selects the node at the given path.
-
 'DIR'::
        Selects the window in the given (spacial) direction relative to the active node.
 
 'CYCLE_DIR'::
        Selects the window in the given (cyclic) direction.
 
-biggest::
-       Selects the biggest window on the current desktop.
+'PATH'::
+       Selects the node at the given path.
 
 last::
        Selects the previously focused node.
 
-focused::
-       Selects the currently focused node.
-
 older::
        Selects the node older than the focused node in the history.
 
 newer::
        Selects the node newer than the focused node in the history.
 
+focused::
+       Selects the currently focused node.
+
+pointed::
+       Selects the window under the pointer.
+
+biggest::
+       Selects the biggest window on the current desktop.
+
+<node_id>::
+       Selects the node with the given ID.
+
 Path Jumps
 ^^^^^^^^^^
 
@@ -142,13 +147,16 @@ Modifiers
 [!]leaf::
        Only consider leaves or internal nodes.
 
+[!]window::
+       Only consider nodes that hold or don't hold a window.
+
 [!](tiled|pseudo_tiled|floating|fullscreen)::
        Only consider windows in or not in the given state.
 
 [!]same_class::
        Only consider windows that have or don't have the same class as the current window.
 
-[!](private|urgent|sticky|locked)::
+[!](hidden|sticky|private|locked|urgent)::
        Only consider windows that have or don't have the given flag set.
 
 [!](below|normal|above)::
@@ -160,36 +168,36 @@ Desktop
 Select a desktop.
 
 ----
-DESKTOP_SEL := (<desktop_id>|<desktop_name>|[MONITOR_SEL:](focused|^<n>)|CYCLE_DIR|last|older|newer)[.[!]occupied][.[!]focused][.[!]urgent][.[!]local]
+DESKTOP_SEL := (CYCLE_DIR|last|older|newer|[MONITOR_SEL:](focused|^<n>)|<desktop_id>|<desktop_name>)[.[!]occupied][.[!]focused][.[!]urgent][.[!]local]
 ----
 
 Descriptors
 ^^^^^^^^^^^
 
-<desktop_id>::
-       Selects the desktop with the given ID.
-
-<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.
 
 last::
        Selects the previously focused desktop.
 
-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.
 
+focused::
+       Selects the currently focused desktop.
+
+^<n>::
+       Selects the nth desktop.
+
+<desktop_id>::
+       Selects the desktop with the given ID.
+
+<desktop_name>::
+       Selects the desktop with the given name.
+
 Modifiers
 ^^^^^^^^^
 
@@ -211,42 +219,43 @@ Monitor
 Select a monitor.
 
 ----
-MONITOR_SEL := (<monitor_id>|<monitor_name>|^<n>|DIR|CYCLE_DIR|last|primary|focused|older|newer)[.[!]occupied][.[!]focused]
+MONITOR_SEL := (DIR|CYCLE_DIR|last|older|newer|focused|primary|^<n>|<monitor_id>|<monitor_name>)[.[!]occupied][.[!]focused]
 ----
 
 Descriptors
 ^^^^^^^^^^^
 
-<monitor_id>::
-       Selects the monitor with the given ID.
-
-<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.
 
+focused::
+       Selects the currently focused monitor.
+
+primary::
+       Selects the primary monitor.
+
+^<n>::
+       Selects the nth monitor.
+
+<monitor_id>::
+       Selects the monitor with the given ID.
+
+<monitor_name>::
+       Selects the monitor with the given name.
+
+
 Modifiers
 ^^^^^^^^^
 
@@ -276,8 +285,8 @@ fullscreen::
 Node Flags
 ----------
 
-locked::
-       Ignores the *node --close* message.
+hidden::
+       Is hidden and doesn't occupy any tiling space.
 
 sticky::
        Stays in the focused desktop of its monitor.
@@ -285,6 +294,9 @@ sticky::
 private::
        Tries to keep the same tiling position/size.
 
+locked::
+       Ignores the *node --close* message.
+
 urgent::
        Has its urgency hint set. This flag is set externally.
 
@@ -308,6 +320,8 @@ General Syntax
 
 node ['NODE_SEL'] 'COMMANDS'
 
+If 'NODE_SEL' is omitted, *focused* is assumed.
+
 Commands
 ^^^^^^^^
 *-f*, *--focus* ['NODE_SEL']::
@@ -334,6 +348,12 @@ Commands
 *-o*, *--presel-ratio* 'RATIO'::
        Set the splitting ratio of the preselection area.
 
+*-v*, *--move* 'dx' 'dy'::
+       Move the selected window by 'dx' pixels horizontally and 'dy' pixels vertically.
+
+*-z*, *--resize* top|left|bottom|right|top_left|top_right|bottom_right|bottom_left 'dx' 'dy'::
+       Resize the selected window by moving the given handle by 'dx' pixels horizontally and 'dy' pixels vertically.
+
 *-r*, *--ratio* 'RATIO'|(+|-)'PIXELS'::
        Set the splitting ratio of the selected node (0 < 'RATIO' < 1).
 
@@ -355,12 +375,15 @@ Commands
 *-t*, *--state* [~](tiled|pseudo_tiled|floating|fullscreen)::
        Set the state of the selected window. If *~* is present and the current state matches the given state, then the argument is interpreted as the last state.
 
-*-g*, *--flag* locked|sticky|private[=on|off]::
+*-g*, *--flag* hidden|sticky|private|locked[=on|off]::
        Set or toggle the given flag for the selected node.
 
 *-l*, *--layer* below|normal|above::
        Set the stacking layer of the selected window.
 
+*-i*, *--insert-receptacle*::
+       Insert a receptacle node at the selected node.
+
 *-c*, *--close*::
        Close the windows rooted at the selected node.
 
@@ -375,6 +398,8 @@ General Syntax
 
 desktop ['DESKTOP_SEL'] 'COMMANDS'
 
+If 'DESKTOP_SEL' is omitted, *focused* is assumed.
+
 COMMANDS
 ^^^^^^^^
 *-f*, *--focus* ['DESKTOP_SEL']::
@@ -409,6 +434,8 @@ General Syntax
 
 monitor ['MONITOR_SEL'] 'COMMANDS'
 
+If 'MONITOR_SEL' is omitted, *focused* is assumed.
+
 Commands
 ^^^^^^^^
 *-f*, *--focus* ['MONITOR_SEL']::
@@ -421,7 +448,7 @@ Commands
        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. Incidentally reset the settings of the 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.
 
 *-g*, *--rectangle* WxH+X+Y::
        Set the rectangle of the selected monitor.
@@ -461,7 +488,9 @@ Commands
 Options
 ^^^^^^^
 
-[*-m*,*--monitor* ['MONITOR_SEL']] | [*-d*,*--desktop* ['DESKTOP_SEL']] | [*-n*, *--node* ['NODE_SEL']]::
+*-m*,*--monitor* ['MONITOR_SEL']::
+*-d*,*--desktop* ['DESKTOP_SEL']::
+*-n*, *--node* ['NODE_SEL']::
        Constrain matches to the selected monitor, desktop or node. The descriptor can be omitted for '-M', '-D' and '-N'.
 
 Wm
@@ -493,26 +522,6 @@ Commands
 *-g*, *--get-status*::
        Print the current status information.
 
-Pointer
-~~~~~~~
-
-General Syntax
-^^^^^^^^^^^^^^
-
-pointer 'COMMANDS'
-
-Commands
-^^^^^^^^
-
-*-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.
-
-*-u*, *--ungrab*::
-       Terminate the current pointer action.
-
 Rule
 ~~~~
 
@@ -524,7 +533,7 @@ rule 'COMMANDS'
 Commands
 ^^^^^^^^
 
-*-a*, *--add* (<class_name>|\*)[:(<instance_name>|\*)] [*-o*|*--one-shot*] [monitor=MONITOR_SEL|desktop=DESKTOP_SEL|node=NODE_SEL] [state=STATE] [layer=LAYER] [split_dir=DIR] [split_ratio=RATIO] [(locked|sticky|private|center|follow|manage|focus|border)=(on|off)]::
+*-a*, *--add* (<class_name>|\*)[:(<instance_name>|\*)] [*-o*|*--one-shot*] [monitor=MONITOR_SEL|desktop=DESKTOP_SEL|node=NODE_SEL] [state=STATE] [layer=LAYER] [split_dir=DIR] [split_ratio=RATIO] [(hidden|sticky|private|locked|center|follow|manage|focus|border)=(on|off)]::
        Create a new rule.
 
 *-r*, *--remove* ^<n>|head|tail|(<class_name>|\*)[:(<instance_name>|*)]...::
@@ -562,15 +571,7 @@ quit [<status>]::
 Exit Codes
 ----------
 
-If the server can't handle a message, *bspc* will return with one of the following exit codes:
-
-1::
-       Failure.
-2::
-       Syntax error.
-3::
-       Unknown command.
-
+If the server can't handle a message, *bspc* will return with a non-zero exit code.
 
 Settings
 --------
@@ -605,12 +606,6 @@ Global Settings
 '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 of tiled windows for the *monocle* desktop layout.
 
@@ -623,6 +618,17 @@ Global Settings
 'single_monocle'::
        Set the desktop layout to *monocle* if there's only one tiled window in the tree.
 
+'pointer_modifier'::
+       Keyboard modifier used for moving or resizing windows. Accept the following values: *shift*, *control*, *lock*, *mod1*, *mod2*, *mod3*, *mod4*, *mod5*.
+
+'pointer_action1'::
+'pointer_action2'::
+'pointer_action3'::
+       Action performed when pressing 'pointer_modifier' + 'button<n>'. Accept the following values: *move*, *resize_side*, *resize_corner*, *focus*.
+
+'click_to_focus'::
+       Focus a window (or a monitor) by clicking it.
+
 'focus_follows_pointer'::
        Focus the window under the pointer.
 
@@ -638,6 +644,9 @@ Global Settings
 'center_pseudo_tiled'::
        Center pseudo tiled windows into their tiling rectangles. Defaults to 'true'.
 
+'honor_size_hints'::
+       Apply ICCCM window size hints.
+
 'remove_disabled_monitors'::
        Consider disabled monitors as disconnected.
 
@@ -656,18 +665,34 @@ Monitor and Desktop Settings
 'left_padding'::
        Padding space added at the sides of the monitor or desktop.
 
-Default, Desktop Default and Window Settings
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Desktop Settings
+~~~~~~~~~~~~~~~~
+
+'window_gap'::
+       Size of the gap that separates windows.
+
+Node Settings
+~~~~~~~~~~~~~
 
 'border_width'::
        Window border width.
 
-Default and Desktop Settings
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Pointer Bindings
+----------------
 
-'window_gap'::
-       Size of the gap that separates windows.
+'button1'::
+       Focus the window under the pointer if 'click_to_focus' is set.
+
+'pointer_modifier' + 'button1'::
+       Move the window under the pointer.
+
+'pointer_modifier' + 'button2'::
+       Resize the window under the pointer by dragging the nearest side.
+
+'pointer_modifier' + 'button3'::
+       Resize the window under the pointer by dragging the nearest corner.
 
+The behavior of 'pointer_modifier' + 'button<n>' can be modified through the 'pointer_action<n>' setting.
 
 Events
 ------
@@ -747,7 +772,7 @@ Events
 'node_state <monitor_id> <desktop_id> <node_id> tiled|pseudo_tiled|floating|fullscreen on|off'::
        The state of a window changed.
 
-'node_flag <monitor_id> <desktop_id> <node_id> sticky|private|locked|urgent on|off'::
+'node_flag <monitor_id> <desktop_id> <node_id> hidden|sticky|private|locked|urgent on|off'::
        One of the flags of a node changed.
 
 'node_layer <monitor_id> <desktop_id> <node_id> below|normal|above'::