]> git.lizzy.rs Git - bspwm.git/blobdiff - doc/bspwm.1.asciidoc
Fix typo
[bspwm.git] / doc / bspwm.1.asciidoc
index 71ea387ff95f980a9fc7c50093bd87871acfa782..1874f245f10ba7747fc80abd91acfb2749e1887c 100644 (file)
@@ -74,11 +74,11 @@ Node
 Select a node.
 
 ----
-NODE_SEL := [NODE_SEL#](DIR|CYCLE_DIR|PATH|any|last|newest|
-                        older|newer|focused|pointed|
-                        biggest|<node_id>)[.[!]focused][.[!]automatic][.[!]local][.[!]active]
-                                          [.[!]leaf][.[!]window][.[!]STATE][.[!]FLAG][.[!]LAYER]
-                                          [.[!]same_class][.[!]descendant_of][.[!]ancestor_of]
+NODE_SEL := [NODE_SEL#](DIR|CYCLE_DIR|PATH|any|first_ancestor|last|newest|
+                        older|newer|focused|pointed|biggest|smallest|
+                        <node_id>)[.[!]focused][.[!]active][.[!]automatic][.[!]local]
+                                  [.[!]leaf][.[!]window][.[!]STATE][.[!]FLAG][.[!]LAYER][.[!]SPLIT_TYPE]
+                                  [.[!]same_class][.[!]descendant_of][.[!]ancestor_of]
 
 STATE := tiled|pseudo_tiled|floating|fullscreen
 
@@ -86,6 +86,8 @@ FLAG := hidden|sticky|private|locked|marked|urgent
 
 LAYER := below|normal|above
 
+SPLIT_TYPE := horizontal|vertical
+
 PATH := @[DESKTOP_SEL:][[/]JUMP](/JUMP)*
 
 JUMP := first|1|second|2|brother|parent|DIR
@@ -98,7 +100,7 @@ Descriptors
        Selects the window in the given (spacial) direction relative to the reference node.
 
 'CYCLE_DIR'::
-       Selects the window in the given (cyclic) direction relative to the reference node.
+       Selects the node in the given (cyclic) direction relative to the reference node within a depth-first in-order traversal of the tree.
 
 'PATH'::
        Selects the node at the given path.
@@ -106,6 +108,9 @@ Descriptors
 any::
        Selects the first node that matches the given selectors.
 
+first_ancestor::
+       Selects the first ancestor of the reference node that matches the given selectors.
+
 last::
        Selects the previously focused node relative to the reference node.
 
@@ -122,10 +127,13 @@ focused::
        Selects the currently focused node.
 
 pointed::
-       Selects the window under the pointer.
+       Selects the leaf under the pointer.
 
 biggest::
-       Selects the biggest window.
+       Selects the biggest leaf.
+
+smallest::
+       Selects the smallest leaf.
 
 <node_id>::
        Selects the node with the given ID.
@@ -154,40 +162,44 @@ Modifiers
 ^^^^^^^^^
 
 [!]focused::
-       Only consider focused or unfocused nodes.
+       Only consider the focused node.
+
+[!]active::
+       Only consider nodes that are the focused node of their desktop.
 
 [!]automatic::
-       Only consider nodes in automatic or manual insertion mode. See also *--presel-dir* under *Node* in the *DOMAINS* section below.
+       Only consider nodes in automatic 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.
+       Only consider nodes in the reference desktop.
 
 [!]leaf::
-       Only consider leaves or internal nodes.
+       Only consider leaf nodes.
 
 [!]window::
-       Only consider nodes that hold or don't hold a window.
+       Only consider nodes that hold a window.
 
 [!](tiled|pseudo_tiled|floating|fullscreen)::
-       Only consider windows in or not in the given state.
+       Only consider windows in the given state.
 
 [!]same_class::
-       Only consider windows that have or don't have the same class as the reference window.
+       Only consider windows that have the same class as the reference window.
 
 [!]descendant_of::
-       Only consider nodes that are or aren't descendants of the reference node.
+       Only consider nodes that are descendants of the reference node.
 
 [!]ancestor_of::
-       Only consider nodes that are or aren't ancestors of the reference node.
+       Only consider nodes that are ancestors of the reference node.
 
 [!](hidden|sticky|private|locked|marked|urgent)::
-       Only consider windows that have or don't have the given flag set.
+       Only consider windows that have the given flag set.
 
 [!](below|normal|above)::
-       Only consider windows in or not in the given layer.
+       Only consider windows in the given layer.
+
+[!](horizontal|vertical)::
+       Only consider nodes with the given split type.
+
 
 Desktop
 ~~~~~~~
@@ -197,7 +209,11 @@ Select a desktop.
 ----
 DESKTOP_SEL := [DESKTOP_SEL#](CYCLE_DIR|any|last|newest|older|newer|
                               [MONITOR_SEL:](focused|^<n>)|
-                              <desktop_id>|<desktop_name>)[.[!]occupied][.[!]focused][.[!]urgent][.[!]local]
+                              <desktop_id>|<desktop_name>)[.[!]focused][.[!]active]
+                                                          [.[!]occupied][.[!]urgent][.[!]local]
+                                                          [.[!]LAYOUT][.[!]user_LAYOUT]
+
+LAYOUT := tiled|monocle
 ----
 
 Descriptors
@@ -236,17 +252,26 @@ focused::
 Modifiers
 ^^^^^^^^^
 
-[!]occupied::
-       Only consider occupied or free desktops.
-
 [!]focused::
-       Only consider focused or unfocused desktops.
+       Only consider the focused desktop.
+
+[!]active::
+       Only consider desktops that are the focused desktop of their monitor.
+
+[!]occupied::
+       Only consider occupied desktops.
 
 [!]urgent::
-       Only consider urgent or non urgent desktops.
+       Only consider urgent desktops.
 
 [!]local::
-       Only consider desktops inside or outside of the reference monitor.
+       Only consider desktops inside the reference monitor.
+
+[!](tiled|monocle)::
+       Only consider desktops with the given layout.
+
+[!](user_tiled|user_monocle)::
+       Only consider desktops which have the given layout as userLayout.
 
 Monitor
 ~~~~~~~
@@ -256,7 +281,7 @@ Select a monitor.
 ----
 MONITOR_SEL := [MONITOR_SEL#](DIR|CYCLE_DIR|any|last|newest|older|newer|
                               focused|pointed|primary|^<n>|
-                              <monitor_id>|<monitor_name>)[.[!]occupied][.[!]focused]
+                              <monitor_id>|<monitor_name>)[.[!]focused][.[!]occupied]
 ----
 
 Descriptors
@@ -305,27 +330,28 @@ primary::
 Modifiers
 ^^^^^^^^^
 
+[!]focused::
+       Only consider the focused monitor.
+
 [!]occupied::
-       Only consider monitors where the focused desktop is occupied or free.
+       Only consider monitors where the focused desktop is occupied.
 
-[!]focused::
-       Only consider focused or unfocused monitors.
 
 
 Window States
 -------------
 
 tiled::
-       Its size and position are determined by the splitting type and ratio of each node of its path in the window tree.
+       Its size and position are determined by the window tree.
 
 pseudo_tiled::
-       Has an unrestricted size while being centered in its tiling space.
+       A tiled window that automatically shrinks but doesn't stretch beyond its floating size.
 
 floating::
-       Can be moved/resized freely. Although it doesn't occupy any tiling space, it is still part of the window tree.
+       Can be moved/resized freely. Although it doesn't use any tiling space, it is still part of the window tree.
 
 fullscreen::
-       Fills its monitor rectangle and has no borders. It is send in the ABOVE layer by default.
+       Fills its monitor rectangle and has no borders.
 
 
 Node Flags
@@ -344,7 +370,7 @@ locked::
        Ignores the *node --close* message.
 
 marked::
-       Is marked (useful for deferred operations).
+       Is marked (useful for deferred actions). A marked node becomes unmarked after being sent on a preselected node.
 
 urgent::
        Has its urgency hint set. This flag is set externally.
@@ -355,12 +381,12 @@ Stacking Layers
 
 There's three stacking layers: BELOW, NORMAL and ABOVE.
 
-In each layer, the window are orderered as follow: tiled & pseudo-tiled < fullscreen < floating.
+In each layer, the window are orderered as follow: tiled & pseudo-tiled < floating < fullscreen.
 
 Receptacles
 -----------
 
-A leaf node that doesn't hold any window is called a receptacle. When a node is inserted on a receptacle in automatic mode, it will replace the receptacle. A receptacle can be inserted on a node and preselected. Receptacles can therefore be used to build a tree whose leaves are receptacles. Using the appropriate rules, one can then send windows on the leaves of this tree. This feature is used in 'examples/receptacles' to store and recreate layouts.
+A leaf node that doesn't hold any window is called a receptacle. When a node is inserted on a receptacle in automatic mode, it will replace the receptacle. A receptacle can be inserted on a node, preselected and killed. Receptacles can therefore be used to build a tree whose leaves are receptacles. Using the appropriate rules, one can then send windows on the leaves of this tree. This feature is used in 'examples/receptacles' to store and recreate layouts.
 
 
 Domains
@@ -415,7 +441,7 @@ Commands
        Rotate the tree rooted at the selected node.
 
 *-F*, *--flip* 'horizontal|vertical'::
-       Flip the the tree rooted at selected node.
+       Flip the tree rooted at selected node.
 
 *-E*, *--equalize*::
        Reset the split ratios of the tree rooted at the selected node to their default value.
@@ -426,8 +452,8 @@ Commands
 *-C*, *--circulate* forward|backward::
        Circulate the windows of the tree rooted at the selected node.
 
-*-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.
+*-t*, *--state* \~|\[~]'STATE'::
+       Set the state of the selected window. If *\~* is present and the current state matches 'STATE', then the argument is interpreted as its last state. If the argument is just *~* with 'STATE' omitted, then the state of the selected window is set to its last state.
 
 *-g*, *--flag* hidden|sticky|private|locked|marked[=on|off]::
        Set or toggle the given flag for the selected node.
@@ -544,10 +570,10 @@ The optional selectors are references.
 Options
 ^^^^^^^
 
-*-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'.
+*-m*,*--monitor* ['MONITOR_SEL'|'MONITOR_MODIFIERS']::
+*-d*,*--desktop* ['DESKTOP_SEL'|'DESKTOP_MODIFIERS']::
+*-n*, *--node* ['NODE_SEL'|'NODE_MODIFIERS']::
+       Constrain matches to the selected monitors, desktops or nodes.
 
 *--names*::
        Print names instead of IDs. Can only be used with '-M' and '-D'.
@@ -567,7 +593,7 @@ Commands
        Dump the current world state on standard output.
 
 *-l*, *--load-state* <file_path>::
-       Load a world state from the given file.
+       Load a world state from the given file. The path must be absolute.
 
 *-a*, *--add-monitor* <name> WxH+X+Y::
        Add a monitor for the given name and rectangle.
@@ -584,6 +610,9 @@ Commands
 *-g*, *--get-status*::
        Print the current status information.
 
+*-r*, *--restart*::
+       Restart the window manager
+
 Rule
 ~~~~
 
@@ -595,10 +624,10 @@ 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|marked|center|follow|manage|focus|border)=(on|off)] [rectangle=WxH+X+Y]::
+*-a*, *--add* (<class_name>|\*)[:(<instance_name>|\*)[:(<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|marked|center|follow|manage|focus|border)=(on|off)] [rectangle=WxH+X+Y]::
        Create a new rule.
 
-*-r*, *--remove* ^<n>|head|tail|(<class_name>|\*)[:(<instance_name>|*)]...::
+*-r*, *--remove* ^<n>|head|tail|(<class_name>|\*)[:(<instance_name>|\*)[:(<name>|*)]]...::
        Remove the given rules.
 
 *-l*, *--list*::
@@ -672,7 +701,10 @@ Global Settings
        Prefix prepended to each of the status lines.
 
 'external_rules_command'::
-       External command used to retrieve rule consequences. The command will receive the following arguments: window ID, class name, instance name, and intermediate consequences. 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).
+       Absolute path to the command used to retrieve rule consequences. The command will receive the following arguments: window ID, class name, instance name, and intermediate consequences. 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).
+
+'automatic_scheme'::
+       The insertion scheme used when the insertion point is in automatic mode. Accept the following values: *longest_side*, *alternate*, *spiral*.
 
 '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*.
@@ -680,18 +712,30 @@ Global Settings
 '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*.
 
+'removal_adjustment'::
+       Adjust the brother when unlinking a node from the tree in accordance with the automatic insertion scheme.
+
+'presel_feedback'::
+       Draw the preselection feedback area. Defaults to 'true'.
+
 'borderless_monocle'::
        Remove borders of tiled windows for the *monocle* desktop layout.
 
 'gapless_monocle'::
        Remove gaps of tiled windows for the *monocle* desktop layout.
 
-'paddingless_monocle'::
-       Remove padding space for the *monocle* desktop layout.
+'top_monocle_padding'::
+'right_monocle_padding'::
+'bottom_monocle_padding'::
+'left_monocle_padding'::
+       Padding space added at the sides of the screen for the *monocle* desktop layout.
 
 'single_monocle'::
        Set the desktop layout to *monocle* if there's only one tiled window in the tree.
 
+'borderless_singleton'::
+       Remove borders of the only window on the only monitor regardless its layout.
+
 'pointer_motion_interval'::
        The minimum interval, in milliseconds, between two motion notify events.
 
@@ -704,7 +748,7 @@ Global Settings
        Action performed when pressing 'pointer_modifier' + 'button<n>'. Accept the following values: *move*, *resize_side*, *resize_corner*, *focus*, *none*.
 
 'click_to_focus'::
-       Button used for focusing a window (or a monitor). The possible values are: *button1*, *button2*, *button3*, *any*, *none*.
+       Button used for focusing a window (or a monitor). The possible values are: *button1*, *button2*, *button3*, *any*, *none*. Defaults to *button1*.
 
 'swallow_first_click'::
        Don't replay the click that makes a window focused if 'click_to_focus' isn't *none*.
@@ -724,6 +768,12 @@ Global Settings
 'ignore_ewmh_focus'::
        Ignore EWMH focus requests coming from applications.
 
+'ignore_ewmh_fullscreen'::
+       Block the fullscreen state transitions that originate from an EWMH request. The possible values are: *none*, *all*, or a comma separated list of the following values: *enter*, *exit*.
+
+'ignore_ewmh_struts'::
+       Ignore strut hinting from clients requesting to reserve space (i.e. task bars).
+
 'center_pseudo_tiled'::
        Center pseudo tiled windows into their tiling rectangles. Defaults to 'true'.
 
@@ -862,7 +912,7 @@ Events
        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.
+       A pointer action occurred.
 
 Please note that *bspwm* initializes monitors before it reads messages on its socket, therefore the initial monitor events can't be received.
 
@@ -903,7 +953,7 @@ Each item has the form '<type><value>' where '<type>' is the first character of
 'T(T|P|F|=|@)'::
        State of the focused node of a focused desktop.
 
-'G(S?P?L?)'::
+'G(S?P?L?M?)'::
        Active flags of the focused node of a focused desktop.
 
 Environment Variables