]> git.lizzy.rs Git - bspwm.git/blobdiff - README.md
Options for 'cycle_desktop': --skip-{free,occupied}
[bspwm.git] / README.md
index e991edcc792676f8f574ab4633837101e4f26683..d30d87049cfee45a78c31264a52fff25e016e5fc 100644 (file)
--- a/README.md
+++ b/README.md
@@ -12,15 +12,13 @@ The windows are represented as the leaves of a binary tree.
 
 Those messages are sent through the `bspc` program.
 
-Therefore, the `BSPWM_SOCKET` environment variable must be defined and indicate the path to where the socket will be created.
+If the `BSPWM_SOCKET` environment variable is defined, it will be used as the socket path, otherwise `/tmp/bspwm-socket` is used.
 
-The recommended way of defining keyboard shortcuts, is to use `xbindkeys`.
+The recommended way of defining keyboard shortcuts is to use `xbindkeys`.
 
-Configuration files must be placed in `$XDG_CONFIG_HOME/bspwm/`.
+The only way to configure `bspwm` is by sending *set* messages via the client, hence `bspwm`'s configuration file is an executable called `autostart` which lives in `$XDG_CONFIG_HOME/bspwm/`.
 
-In that directory, `bspwmrc` (written in Lua) will be sourced and `autostart` executed.
-
-Example configurations: [bspwmrc](https://github.com/baskerville/dotfiles/blob/master/bspwmrc), [autostart](https://github.com/baskerville/bin/blob/master/bspwm_autostart) and [xbindkeysrc](https://github.com/baskerville/dotfiles/blob/master/xbindkeysrc)
+Example configurations: [autostart](https://github.com/baskerville/bin/blob/master/bspwm_autostart) and [xbindkeysrc](https://github.com/baskerville/dotfiles/blob/master/xbindkeysrc).
 
 ## Splitting Modes
 
@@ -28,8 +26,8 @@ There is only two splitting modes: *automatic* and *manual*.
 
 The default mode is *automatic*. The *manual* mode is entered by sending a *presel* message.
 
-        Example: insertion of a new node (number 4) into the given tree in
-        *automatic* mode:
+Example: insertion of a new node (number 4) into the given tree in
+*automatic* mode:
 
                      b                                   c
                     / \                                 / \
@@ -48,8 +46,8 @@ The default mode is *automatic*. The *manual* mode is entered by sending a *pres
         |            |            |         |            |     |      |
         +-------------------------+         +-------------------------+
 
-        Same departure, but the mode is *manual*, a `presel up` message
-        was sent beforehand:
+Same departure, but the mode is *manual*, a `presel up` message
+was sent beforehand:
 
                      b                                   b
                     / \                                 / \
@@ -85,8 +83,11 @@ The following messages are handled:
     dump
         Output the internal representation of the window tree.
 
-    list
-        Perform a dump of each desktop.
+    list_monitors [--quiet]
+        Perform a dump of each monitor.
+
+    list [--quiet]
+        Perform a dump of each desktop for the current monitor.
 
     windows
         Return the list of managed windows (i.e. their identifiers).
@@ -94,6 +95,9 @@ The following messages are handled:
     close
         Close the focused window.
 
+    kill
+        Kill the focused window.
+
     presel DIR
         Switch to manual mode and select the splitting direction.
 
@@ -115,33 +119,63 @@ The following messages are handled:
     pull DIR
         Pull the fence located in the given direction.
 
-    cycle CYC [--skip-floating|--skip-tiled]
+    nearest older|newer [--skip-floating|--skip-tiled|--skip-class-equal|--skip-class-differ]
+        Focus the nearest leaf matching the given constraints.
+
+    cycle CYC [--skip-floating|--skip-tiled|--skip-class-equal|--skip-class-differ]
         Focus the next or previous window in the list of leaves.
 
     rotate ROT
         Rotate the tree of the current desktop.
 
+    magnetise COR
+        Move all the fences toward the given corner.
+
+    send_to_monitor MONITOR_NAME
+        Send the focused window to the given monitor.
+
     send_to DESKTOP_NAME
         Send the focused window to the given desktop.
 
+    use_monitor MONITOR_NAME
+        Select the given monitor.
+
     use DESKTOP_NAME
         Select the given desktop.
-    
+
     alternate
+        Alternate between the current and the last focused window.
+
+    alternate_desktop
         Alternate between the current and the last focused desktop.
 
-    add DESKTOP_NAME
-        Make a new desktop with the given name.
+    alternate_monitor
+        Alternate between the current and the last focused monitor.
+
+    add_in MONITOR_NAME DESKTOP_NAME ...
+        Make new desktops with the given names in the given monitor.
+
+    add DESKTOP_NAME ...
+        Make new desktops with the given names.
+
+    rename_monitor CURRENT_NAME NEW_NAME
+        Rename the monitor named CURRENT_NAME to NEW_NAME.
 
     rename CURRENT_NAME NEW_NAME
         Rename the desktop named CURRENT_NAME to NEW_NAME.
 
-    cycle_desktop CYC
+    cycle_monitor CYC
+        Select the next or previous monitor.
+
+    cycle_desktop CYC [--skip-free|--skip-occupied]
         Select the next or previous desktop.
         
     layout LYT
         Set the layout of the current desktop to LYT.
 
+    cycle_layout
+        Cycle the layout of the current desktop.
+
     toggle_fullscreen
         Toggle the fullscreen state of the current window.
 
@@ -152,29 +186,34 @@ The following messages are handled:
         Toggle the locked state of the current window (locked windows will not respond to the 'close' command).
 
     rule PATTERN floating 
-        Make a new rule that will floats the windows whose class name or instance name matches PATTERN. 
+        Make a new rule that will float the windows whose class name or instance name equals PATTERN. 
 
     reload_autostart
         Reload the autostart file.
 
     reload_settings
-        Reload the settings file.
+        Reload the default settings.
 
     reload
-        Reload the autostart and the settings file.
+        Reload the autostart file and the default settings.
 
 Where
+
     DIR = left|right|up|down
     CYC = next|prev
     ROT = clockwise|counter_clockwise|full_cycle
+    COR = top_left|top_right|bottom_left|bottom_right
     LYT = monocle|tiled
 
 ## Settings
 
-Colors are either X color names or '#RRGGBB'.
+Colors are either [X color names](http://en.wikipedia.org/wiki/X11_color_names) or '#RRGGBB', booleans are 'true' or 'false'.
+
+    focused_border_color
+        Color of the main border of a focused window of a focused monitor.
 
     active_border_color
-        Color of the main border of a focused window.
+        Color of the main border of a focused window of an unfocused monitor.
 
     normal_border_color
         Color of the main border of an unfocused window.
@@ -188,8 +227,11 @@ Colors are either X color names or '#RRGGBB'.
     presel_border_color
         Color of the *presel* message feedback.
 
+    focused_locked_border_color
+        Color of the main border of a focused locked window of a focused monitor.
+
     active_locked_border_color
-        Color of the main border of a focused locked window.
+        Color of the main border of a focused locked window of an unfocused monitor.
 
     normal_locked_border_color
         Color of the main border of an unfocused locked window.
@@ -214,8 +256,36 @@ Colors are either X color names or '#RRGGBB'.
     wm_name
         The value that shall be used for the _NET_WM_NAME property of the root window.
 
+    button_modifier
+        The modifier mask used for mouse bindings (possible values: 'mod1' ... 'mod5').
+
+    borderless_monocle 
+        Whether to remove borders for tiled windows in monocle mode.
+
+    focus_follows_mouse
+        Wether to focus the window under the mouse pointer.
+
+## Mouse Bindings
+
+    button_modifier + left mouse button
+        Move the window under the pointer.
+
+    button_modifier + middle mouse button
+        Focus the window under the pointer.
+
+    button_modifier + right mouse button
+        Resize the window under the pointer (by moving one of its four corners).
+
+## Panel
+
+`dzen2` fed with the output of `ewmhstatus`. Example: [launchpanel](https://github.com/baskerville/bin/blob/master/launchpanel).
+
+## Required Libraries:
+
+libxcb, xcb-util, xcb-util-wm.
+
+## Installation
 
-## Requirements
+    make
+    make install
 
-- XCB.
-- Lua.