]> git.lizzy.rs Git - bspwm.git/blobdiff - doc/bspwm.1.txt
Remove `apply_floating_atom` setting
[bspwm.git] / doc / bspwm.1.txt
index faece86497109d2322f2e6c2a5b19b08dba4d47d..0a841cb582cf40e66b15fa056488e181a1cd19b8 100644 (file)
@@ -134,7 +134,7 @@ Select a window.
 
 ----
 WINDOW_SEL := <window_id> 
-            | (DIR|CYCLE_DIR|biggest|last|focused|older|newer)[.floating|.tiled][.like|.unlike][.manual|.automatic][.urgent][.local][.unfocused]
+            | (DIR|CYCLE_DIR|biggest|last|focused|older|newer)[.manual|.automatic][.tiled|nontiled][.pseudotiled|.nonpseudotiled][.floating|.nonfloating][.fullscreen|.nonfullscreen][.below|.normal|.above][.local|.foreign][.like|.unlike][.focused|.unfocused][.urgent|.nonurgent][.sticky|.nonsticky][.public|.private][.locked|.unlocked]
 ----
 
 Primary Selectors
@@ -164,17 +164,29 @@ newer::
 Modifiers
 ^^^^^^^^^
 
+tiled::
+       Only consider tiled windows.
+
+nontiled::
+       Only consider tiled windows.
+
+pseudotiled::
+       Only consider pseudo-tiled windows.
+
+nonpseudotiled::
+       Only consider non pseudo-tiled windows.
+
 floating::
        Only consider floating windows.
 
-tiled::
-       Only consider tiled windows.
+nonfloating::
+       Only consider non floating windows.
 
-like::
-       Only consider windows that have the same class as the current window.
+fullscreen::
+       Only consider fullscreen windows.
 
-unlike::
-       Only consider windows that have a different class than the current window.
+nonfullscreen::
+       Only consider non fullscreen windows.
 
 manual::
        Only consider windows in manual splitting mode.
@@ -182,14 +194,56 @@ manual::
 automatic::
        Only consider windows in automatic splitting mode.
 
+focused::
+       Only consider focused windows.
+
+unfocused::
+       Only consider unfocused windows.
+
+below::
+       Only consider windows of the BELOW layer.
+
+normal::
+       Only consider windows of the NORMAL layer.
+
+above::
+       Only consider windows of the ABOVE layer.
+
+like::
+       Only consider windows that have the same class as the current window.
+
+unlike::
+       Only consider windows that have a different class than the current window.
+
 local::
        Only consider windows of the current desktop.
 
+foreign::
+       Only consider windows outside of the current desktop.
+
+private::
+       Only consider private windows.
+
+public::
+       Only consider non private windows.
+
 urgent::
        Only consider urgent windows.
 
-unfocused::
-       Only consider windows other than the focused window.
+nonurgent::
+       Only consider non urgent windows.
+
+sticky::
+       Only consider sticky windows.
+
+nonsticky::
+       Only consider non sticky windows.
+
+locked::
+       Only consider locked windows.
+
+unlocked::
+       Only consider non locked windows.
 
 Desktop
 ~~~~~~~
@@ -199,7 +253,7 @@ Select a desktop.
 ----
 DESKTOP_SEL := <desktop_name>
              | [MONITOR_SEL:]^<n>
-             | (CYCLE_DIR|last|[MONITOR_SEL:]focused|older|newer)[.occupied|.free][.urgent][.local]
+             | (CYCLE_DIR|last|[MONITOR_SEL:]focused|older|newer)[.occupied|.free][.urgent|.nonurgent][.local|.foreign]
 ----
 
 Primary Selectors
@@ -238,9 +292,15 @@ free::
 urgent::
        Only consider urgent desktops.
 
+nonurgent::
+       Only consider non urgent desktops.
+
 local::
        Only consider desktops of the current monitor.
 
+foreign::
+       Only consider desktops outside of the current monitor.
+
 Monitor
 ~~~~~~~
 
@@ -295,14 +355,21 @@ free::
 Window States
 -------------
 
-floating::
-       Can be moved/resized freely. Although it doesn't occupy any tiling space, it is still part of the window tree.
+tiled::
+       Its size and position are determined by the splitting type and ratio of each node of its path in the window tree.
 
 pseudo_tiled::
        Has an unrestricted size while being centered in its tiling space.
 
+floating::
+       Can be moved/resized freely. Although it doesn't occupy any tiling space, it is still part of the window tree.
+
 fullscreen::
-       Fills its monitor rectangle and has no borders.
+       Fills its monitor rectangle and has no borders. It is send in the ABOVE layer by default.
+
+
+Window Flags
+-------------
 
 locked::
        Ignores the *close* message.
@@ -313,13 +380,16 @@ sticky::
 private::
        Tries to keep the same tiling position/size.
 
+urgent::
+       Has its urgency hint set. This flag is set externally.
+
 
 Stacking Layers
 --------------
 
 There's three stacking layers: BELOW, NORMAL and ABOVE.
 
-In each layer, floating windows are stacked above tiled windows.
+In each layer, the window are orderered as follow: tiled & pseudo-tiled < fullscreen < floating.
 
 
 Commands
@@ -338,6 +408,9 @@ Options
 *-f*, *--focus* ['WINDOW_SEL']::
        Focus the selected or given window.
 
+*-a*, *--activate* ['WINDOW_SEL']::
+       Activate the selected or given window.
+
 *-d*, *--to-desktop* 'DESKTOP_SEL'::
        Send the selected window to the given desktop.
 
@@ -362,8 +435,11 @@ Options
 *-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|pseudo_tiled|locked|sticky|private[=on|off]::
-       Set or toggle the given state for the selected window.
+*-t*, *--state* tiled|pseudo_tiled|floating|fullscreen::
+       Set the state of the selected window.
+
+*-g*, *--flag* locked|sticky|private[=on|off]::
+       Set or toggle the given flag for the selected window.
 
 *-l*, *--layer* below|normal|above::
        Set the stacking layer of the selected window.
@@ -423,9 +499,6 @@ Options
 *-C*, *--circulate* forward|backward::
        Circulate the leaves of the tree of the selected desktop.
 
-*-t*, *--toggle* floating[=on|off]::
-       Set or toggle the given state for the selected desktop.
-
 
 Monitor
 ~~~~~~~
@@ -530,7 +603,7 @@ Options
        Enable or disable the recording of window focus history.
 
 *--subscribe* (all|report|monitor|desktop|window|...)*::
-       Continuously print status information.
+       Continuously print status information. See the *EVENTS* section for the detailed description of each event.
 
 *--get-status*::
        Print the current status information.
@@ -566,7 +639,7 @@ rule 'OPTIONS'
 Options
 ^^^^^^^
 
-*-a*, *--add* <class_name>|<instance_name>|* [*-o*|*--one-shot*] [monitor=MONITOR_SEL|desktop=DESKTOP_SEL|window=WINDOW_SEL] [(floating|fullscreen|pseudo_tiled|locked|sticky|private|center|follow|manage|focus|border)=(on|off)] [layer=LAYER] [split_dir=DIR] [split_ratio=RATIO]::
+*-a*, *--add* <class_name>|<instance_name>|* [*-o*|*--one-shot*] [monitor=MONITOR_SEL|desktop=DESKTOP_SEL|window=WINDOW_SEL] [state=STATE] [layer=LAYER] [split_dir=DIR] [split_ratio=RATIO] [(locked|sticky|private|center|follow|manage|focus|border)=(on|off)]::
        Create a new rule.
 
 *-r*, *--remove* ^<n>|head|tail|<class_name>|<instance_name>|*...::
@@ -694,13 +767,10 @@ Global Settings
        When focusing a monitor, put the pointer at its center.
 
 'auto_alternate'::
-       Interpret two consecutive identical *use* messages as an *alternate* message.
+       Interpret consecutive identical *--focus* arguments as the *last* selector for the *monitor* and *desktop* commands.
 
 'auto_cancel'::
-       Interpret two consecutive identical *presel* messages as a *cancel* message.
-
-'apply_floating_atom'::
-       Set the value of the '_BSPWM_FLOATING_WINDOW' atom of each window according to its floating state.
+       Interpret consecutive identical *--presel* arguments as *--cancel-presel* option.
 
 'ignore_ewmh_focus'::
        Ignore EWMH focus requests coming from applications.
@@ -739,10 +809,84 @@ Default and Desktop Settings
        Size of the gap that separates windows.
 
 
-Status Format
+Events
+------
+
+'report'::
+       See the next section for the description of the format.
+
+'monitor_add <monitor_name> <monitor_id> <monitor_geometry>'::
+       A monitor is added.
+
+'monitor_rename <old_name> <new_name>'::
+       A monitor is renamed.
+
+'monitor_remove <monitor_name>'::
+       A monitor is removed.
+
+'monitor_focus <monitor_name>'::
+       A monitor is focused.
+
+'monitor_geometry <monitor_name> <monitor_geometry>'::
+       The geometry of a monitor changed.
+
+'desktop_add <monitor_name> <desktop_name>'::
+       A desktop is added.
+
+'desktop_rename <monitor_name> <old_name> <new_name>'::
+       A desktop is renamed.
+
+'desktop_remove <monitor_name> <desktop_name>'::
+       A desktop is removed.
+
+'desktop_swap <src_monitor_name> <src_desktop_name> <dst_monitor_name> <dst_desktop_name>'::
+       A desktop is swapped.
+
+'desktop_transfer <src_monitor_name> <src_desktop_name> <dst_monitor_name>'::
+       A desktop is transferred.
+
+'desktop_focus <monitor_name> <desktop_name>'::
+       A desktop is focused.
+
+'desktop_layout <monitor_name> <desktop_name> tiled|monocle'::
+       The layout of a desktop changed.
+
+'window_manage <monitor_name> <desktop_name> <window_id> <ip_id>'::
+       A window is managed.
+
+'window_unmanage <monitor_name> <desktop_name> <window_id>'::
+       A window is unmanaged.
+
+'window_swap <src_monitor_name> <src_desktop_name> <src_window_id> <dst_monitor_name> <dst_desktop_name> <dst_window_id>'::
+       A window is swapped.
+
+'window_transfer <src_monitor_name> <src_desktop_name> <src_window_id> <dst_monitor_name> <dst_desktop_name> <dst_window_id>'::
+       A window is transferred.
+
+'window_focus <monitor_name> <desktop_name> <window_id>'::
+       A window is focused.
+
+'window_activate <monitor_name> <desktop_name> <window_id>'::
+       A window is activated.
+
+'window_geometry <monitor_name> <desktop_name> <window_id> <window_geometry>'::
+       The geometry of a window changed.
+
+'window_state <monitor_name> <desktop_name> <window_id> tiled|pseudo_tiled|floating|fullscreen on|off'::
+       The state of a window changed.
+
+'window_flag <monitor_name> <desktop_name> <window_id> sticky|private|locked|urgent on|off'::
+       One of the flags of a window changed.
+
+'window_layer <monitor_name> <desktop_name> <window_id> below|normal|above'::
+       The layer of a window changed.
+
+Please note that *bspwm* initializes monitors before it reads messages on its socket, therefore the initial monitor events can't be received.
+
+Report Format
 -------------
 
-Status information is composed of items separated by colons.
+Each report event message is composed of items separated by colons.
 
 Each item has the form '<type><value>' where '<type>' is the first character of the item.