]> git.lizzy.rs Git - bspwm.git/blobdiff - doc/bspwm.1.asciidoc
Add an option to *subscribe*: --count
[bspwm.git] / doc / bspwm.1.asciidoc
index c2ba4c504057dc5a3e74c50f3c070907624d55cb..336b3ad00ae8178339930306435fd816ae0ea183 100644 (file)
@@ -70,7 +70,7 @@ Node
 Select a node.
 
 ----
-NODE_SEL := [NODE_SEL#](DIR|CYCLE_DIR|PATH|last|older|newer|focused|pointed|biggest|<node_id>)[.[!]focused][.[!]automatic][.[!]local][.[!]leaf][.[!]window][.[!]STATE][.[!]FLAG][.[!]LAYER][.[!]same_class][.[!]descendant_of][.[!]ancestor_of]
+NODE_SEL := [NODE_SEL#](DIR|CYCLE_DIR|PATH|last|older|newer|focused|pointed|biggest|<node_id>)[.[!]focused][.[!]automatic][.[!]local][.[!]active][.[!]leaf][.[!]window][.[!]STATE][.[!]FLAG][.[!]LAYER][.[!]same_class][.[!]descendant_of][.[!]ancestor_of]
 
 STATE := tiled|pseudo_tiled|floating|fullscreen
 
@@ -143,11 +143,14 @@ Modifiers
        Only consider focused or unfocused nodes.
 
 [!]automatic::
-       Only consider nodes in automatic or manual insertion mode.
+       Only consider nodes in automatic or manual insertion mode. See also *--presel-dir* under *Node* in the *DOMAINS* section below.
 
 [!]local::
        Only consider nodes in or not in the reference desktop.
 
+[!]active::
+       Only consider nodes in or not in the active desktop of their monitor.
+
 [!]leaf::
        Only consider leaves or internal nodes.
 
@@ -221,7 +224,7 @@ Modifiers
        Only consider urgent or non urgent desktops.
 
 [!]local::
-       Only consider inside or outside of the reference monitor.
+       Only consider desktops inside or outside of the reference monitor.
 
 Monitor
 ~~~~~~~
@@ -353,7 +356,7 @@ Commands
        Swap the selected node with the given node.
 
 *-p*, *--presel-dir* \[~]'DIR'|cancel::
-       Preselect the splitting area of the selected node (or cancel the preselection). If *~* is prepended to 'DIR' and the current preselection direction matches 'DIR', then the argument is interpreted as *cancel*.
+       Preselect the splitting area of the selected node (or cancel the preselection). If *~* is prepended to 'DIR' and the current preselection direction matches 'DIR', then the argument is interpreted as *cancel*. A node with a preselected area is said to be in "manual insertion mode".
 
 *-o*, *--presel-ratio* 'RATIO'::
        Set the splitting ratio of the preselection area.
@@ -364,7 +367,7 @@ Commands
 *-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'::
+*-r*, *--ratio* 'RATIO'|(+|-)('PIXELS'|'FRACTION')::
        Set the splitting ratio of the selected node (0 < 'RATIO' < 1).
 
 *-R*, *--rotate* '90|270|180'::
@@ -489,10 +492,10 @@ The optional selectors are references.
        List the IDs of the matching nodes.
 
 *-D*, *--desktops* ['DESKTOP_SEL']::
-       List the IDs of the matching desktops.
+       List the IDs (or names) of the matching desktops.
 
 *-M*, *--monitors* ['MONITOR_SEL']::
-       List the IDs of the matching monitors.
+       List the IDs (or names) of the matching monitors.
 
 *-T*, *--tree*::
        Print a JSON representation of the matching item.
@@ -505,6 +508,9 @@ Options
 *-n*, *--node* ['NODE_SEL']::
        Constrain matches to the selected monitor, desktop or node. The descriptor can be omitted for '-M', '-D' and '-N'.
 
+*--names*::
+       Print names instead of IDs.
+
 Wm
 ~~
 
@@ -545,7 +551,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] [(hidden|sticky|private|locked|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)] [rectangle=WxH+X+Y]::
        Create a new rule.
 
 *-r*, *--remove* ^<n>|head|tail|(<class_name>|\*)[:(<instance_name>|*)]...::
@@ -560,16 +566,16 @@ Config
 General Syntax
 ^^^^^^^^^^^^^^
 
-config [-m 'MONITOR_SEL'|-d 'DESKTOP_SEL'|-n 'NODE_SEL'] <key> [<value>]::
-       Get or set the value of <key>.
+config [-m 'MONITOR_SEL'|-d 'DESKTOP_SEL'|-n 'NODE_SEL'] <setting> [<value>]::
+       Get or set the value of <setting>.
 
 Subscribe
 ~~~~~~~~~
 
 General Syntax
 ^^^^^^^^^^^^^^
-subscribe (all|report|monitor|desktop|node|...)*::
-       Continuously print status information. See the *EVENTS* section for the detailed description of each event.
+subscribe [-c|--count 'COUNT'] (all|report|monitor|desktop|node|...)*::
+       Continuously print status information. See the *EVENTS* section for the detailed description of each event. If a 'COUNT' argument is provided, then the subscriber will return after having received 'COUNT' events.
 
 Quit
 ~~~~
@@ -618,6 +624,9 @@ 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*.
 
+'directional_focus_tightness'::
+       The tightness of the algorithm used to decide whether a window is on the 'DIR' side of another window. Accept the following values: *high*, *low*.
+
 'borderless_monocle'::
        Remove borders of tiled windows for the *monocle* desktop layout.
 
@@ -630,6 +639,9 @@ Global Settings
 'single_monocle'::
        Set the desktop layout to *monocle* if there's only one tiled window in the tree.
 
+'pointer_motion_interval'::
+       The minimum interval, in milliseconds, between two motion notify events.
+
 'pointer_modifier'::
        Keyboard modifier used for moving or resizing windows. Accept the following values: *shift*, *control*, *lock*, *mod1*, *mod2*, *mod3*, *mod4*, *mod5*.
 
@@ -639,7 +651,10 @@ Global Settings
        Action performed when pressing 'pointer_modifier' + 'button<n>'. Accept the following values: *move*, *resize_side*, *resize_corner*, *focus*, *none*.
 
 'click_to_focus'::
-       Focus a window (or a monitor) by clicking it.
+       Button used for focusing a window (or a monitor). The possible values are: *button1*, *button2*, *button3*, *any*, *none*.
+
+'swallow_first_click'::
+       Don't replay the click that makes a window focused if 'click_to_focus' isn't *none*.
 
 'focus_follows_pointer'::
        Focus the window under the pointer.
@@ -692,8 +707,8 @@ Node Settings
 Pointer Bindings
 ----------------
 
-'button1'::
-       Focus the window under the pointer if 'click_to_focus' is set.
+'click_to_focus'::
+       Focus the window (or the monitor) under the pointer if the value isn't *none*.
 
 'pointer_modifier' + 'button1'::
        Move the window under the pointer.
@@ -790,6 +805,9 @@ Events
 'node_layer <monitor_id> <desktop_id> <node_id> below|normal|above'::
        The layer of a window changed.
 
+'pointer_action <monitor_id> <desktop_id> <node_id> move|resize_corner|resize_side begin|end'::
+       A pointer action occured.
+
 Please note that *bspwm* initializes monitors before it reads messages on its socket, therefore the initial monitor events can't be received.
 
 Report Format