]> git.lizzy.rs Git - bspwm.git/blobdiff - doc/bspwm.1.asciidoc
Add {,user}_LAYOUT modifiers to desktop selectors
[bspwm.git] / doc / bspwm.1.asciidoc
index 7b57f421abd211bf87dccfdb4464092d2a89287a..7a17b8d94d739e51856ba8d9a12c87a0e8757fb7 100644 (file)
@@ -74,10 +74,10 @@ Node
 Select a node.
 
 ----
-NODE_SEL := [NODE_SEL#](DIR|CYCLE_DIR|PATH|any|last|newest|
+NODE_SEL := [NODE_SEL#](DIR|CYCLE_DIR|PATH|any|first_ancestor|last|newest|
                         older|newer|focused|pointed|biggest|smallest|
-                        <node_id>)[.[!]focused][.[!]automatic][.[!]local][.[!]active]
-                                  [.[!]leaf][.[!]window][.[!]STATE][.[!]FLAG][.[!]LAYER]
+                        <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,13 +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 window.
+       Selects the smallest leaf.
 
 <node_id>::
        Selects the node with the given ID.
@@ -157,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
 ~~~~~~~
@@ -200,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
@@ -239,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
 ~~~~~~~
@@ -259,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
@@ -308,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
@@ -358,7 +381,7 @@ 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
 -----------
@@ -570,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.
@@ -587,6 +610,9 @@ Commands
 *-g*, *--get-status*::
        Print the current status information.
 
+*-r*, *--restart*::
+       Restart the window manager
+
 Rule
 ~~~~
 
@@ -598,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*::
@@ -675,10 +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*, *spiral*.
+       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*.
@@ -686,6 +712,12 @@ 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.
 
@@ -736,6 +768,9 @@ Global Settings
 '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'.
 
@@ -874,7 +909,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.
 
@@ -915,7 +950,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