]> git.lizzy.rs Git - bspwm.git/blobdiff - README.md
Mention 'shkd'
[bspwm.git] / README.md
index b6760b473738bea9b5ab648194674cf042722f05..21df5b4ca72ae237eefabe0d1d7d08b289d502c2 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-![logo](https://github.com/baskerville/bspwm/raw/master/resources/bspwm_logo.png)
+![logo](https://github.com/baskerville/bspwm/raw/master/logo/bspwm-logo.png)
 
 ## Description
 
@@ -10,11 +10,11 @@ The windows are represented as the leaves of a binary tree.
 
 `bspwm` have only two sources of informations: the X events it receives and the messages it reads on a dedicated socket.
 
-Those messages are sent through the `bspc` program.
+Those messages are sent via `bspc`.
 
 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 `shkd` or `xbindkeys`.
 
 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/`.
 
@@ -46,7 +46,7 @@ Example: insertion of a new node (number 4) into the given tree in
         |            |            |         |            |     |      |
         +-------------------------+         +-------------------------+
 
-Same departure, but the mode is *manual*, a `presel up` message
+Same departure, but the mode is *manual*, and a `presel up` message
 was sent beforehand:
 
                      b                                   b
@@ -67,82 +67,88 @@ was sent beforehand:
 
 ## Messages
 
-The syntax for the client is `bspc COMMAND ARGUMENTS...`.
+The syntax for the client is `bspc MESSAGE [ARGUMENTS ...]`.
 
 The following messages are handled:
 
-    quit
-        Quit.
-
     get SETTING
         Return the value of the given setting.
 
     set SETTING VALUE
         Set the value of the given setting.
 
-    dump
+    list [DESKTOP_NAME]
         Output the internal representation of the window tree.
 
+    list_desktops [--quiet]
+        Perform a dump of each desktop for the current monitor.
+
     list_monitors [--quiet]
         Perform a dump of each monitor.
 
-    list [--quiet]
-        Perform a dump of each desktop for the current monitor.
-
-    windows
+    list_windows
         Return the list of managed windows (i.e. their identifiers).
 
-    close
-        Close the focused window.
-
-    kill
-        Kill the focused window.
-
-    presel DIR
+    presel left|right|up|down
         Switch to manual mode and select the splitting direction.
 
+    cancel
+        Switch to automatic mode.
+
     ratio VALUE
         Set the splitting ratio of the focused window.
 
-    cancel
-        Switch to automatic mode.
+    pad MONITOR_NAME [TOP_PADDING [RIGHT_PADDING [BOTTOM_PADDING [LEFT_PADDING]]]]
+        Set the padding of the given monitor.
 
-    focus DIR
-        Focus the neighbor node situated in the given direction. 
+    focus left|right|up|down
+        Focus the neighbor window situated in the given direction.
 
-    shift DIR
-        Focus the neighbor node situated in the given direction. 
+    shift left|right|up|down
+        Exchange the current window with the given neighbor.
 
-    push DIR
+    push left|right|up|down
         Push the fence located in the given direction.
 
-    pull DIR
+    pull left|right|up|down
         Pull the fence located in the given direction.
 
+    cycle next|prev [--skip-floating|--skip-tiled|--skip-class-equal|--skip-class-differ]
+        Focus the next or previous window matching the given constraints.
+
     nearest older|newer [--skip-floating|--skip-tiled|--skip-class-equal|--skip-class-differ]
-        Focus the nearest leaf matching the given constraints.
+        Focus the nearest window 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.
+    circulate forward|backward
+        Circulate the leaves in the given direction.
 
-    rotate ROT
-        Rotate the tree of the current desktop.
+    toggle_fullscreen
+        Toggle the fullscreen state of the current window.
 
-    magnetise COR
-        Move all the fences toward the given corner.
+    toggle_floating
+        Toggle the floating state of the current window.
 
-    send_to_monitor MONITOR_NAME
-        Send the focused window to the given monitor.
+    toggle_locked
+        Toggle the locked state of the current window (locked windows will not respond to the 'close' message).
+
+    close
+        Close the focused window.
+
+    kill
+        Kill the focused window.
 
     send_to DESKTOP_NAME
         Send the focused window to the given desktop.
 
-    use_monitor MONITOR_NAME
-        Select the given monitor.
+    send_to_monitor MONITOR_NAME
+        Send the focused window to the given monitor.
 
     use DESKTOP_NAME
         Select the given desktop.
 
+    use_monitor MONITOR_NAME
+        Select the given monitor.
+
     alternate
         Alternate between the current and the last focused window.
 
@@ -152,41 +158,38 @@ The following messages are handled:
     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.
 
+    add_in MONITOR_NAME DESKTOP_NAME ...
+        Make new desktops with the given names in the given monitor.
+
     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_monitor CYC
+    cycle_monitor next|prev
         Select the next or previous monitor.
 
-    cycle_desktop CYC
+    cycle_desktop next|prev [--skip-free|--skip-occupied]
         Select the next or previous desktop.
-        
-    layout LYT
-        Set the layout of the current desktop to LYT.
+
+    layout monocle|tiled [DESKTOP_NAME ...]
+        Set the layout of the given desktops (current if none given).
 
     cycle_layout
         Cycle the layout of the current desktop.
 
-    toggle_fullscreen
-        Toggle the fullscreen state of the current window.
-
-    toggle_floating
-        Toggle the floating state of the current window.
+    rotate clockwise|counter_clockwise|full_cycle
+        Rotate the tree of the current desktop.
 
-    toggle_locked
-        Toggle the locked state of the current window (locked windows will not respond to the 'close' command).
+    rule PATTERN [DESKTOP_NAME] [floating]
+        Create a new rule (PATTERN must match the class or instance name).
 
-    rule PATTERN floating 
-        Make a new rule that will float the windows whose class name or instance name equals PATTERN. 
+    adopt_orphans
+        Manage all the unmanaged windows remaining from a previous session.
 
     reload_autostart
         Reload the autostart file.
@@ -197,17 +200,12 @@ The following messages are handled:
     reload
         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
+    quit
+        Quit.
 
 ## Settings
 
-Colors are either [X color names](http://en.wikipedia.org/wiki/X11_color_names) or '#RRGGBB', booleans are 'true' or 'false'.
+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.
@@ -217,13 +215,13 @@ Colors are either [X color names](http://en.wikipedia.org/wiki/X11_color_names)
 
     normal_border_color
         Color of the main border of an unfocused window.
-    
+
     inner_border_color
         Color of the inner border of a window.
 
     outer_border_color
         Color of the outer border of a window.
-    
+
     presel_border_color
         Color of the *presel* message feedback.
 
@@ -247,44 +245,69 @@ Colors are either [X color names](http://en.wikipedia.org/wiki/X11_color_names)
     window_gap
         Value of the gap that separates windows.
 
-    top_padding
-    bottom_padding
-    left_padding
-    right_padding
-        Padding space added at the sides of the screen.
+    {top,right,bottom,left}_padding
+        Padding space added at the sides of the current monitor.
 
     wm_name
         The value that shall be used for the _NET_WM_NAME property of the root window.
 
-    borderless_monocle 
+    button_modifier
+        The modifier mask used for mouse bindings (possible values: 'shift', 'control', 'lock', 'mod1' ... 'mod5').
+
+    numlock_modifier
+        The modifier holding Num_Lock (cf. xmodmap).
+
+    capslock_modifier
+        The modifier holding Lock.
+
+    borderless_monocle
         Whether to remove borders for tiled windows in monocle mode.
 
+    gapless_monocle
+        Whether to remove gaps for tiled windows in monocle mode.
+
     focus_follows_mouse
         Wether to focus the window under the mouse pointer.
 
+    adaptative_raise
+        Prevent floating windows from being raised when they might cover other floating windows.
+
 ## Mouse Bindings
 
-    M4 + Left Button
+    button_modifier + left mouse button
         Move the window under the pointer.
 
-    M4 + Middle Button
+    button_modifier + middle mouse button
         Focus the window under the pointer.
 
-    M4 + Middle Button
+    button_modifier + right mouse button
         Resize the window under the pointer (by moving one of its four corners).
 
-Where *M4* is the fourth modifier mask (generally bound to *Super*).
+## Key Features
+
+- Configured and controlled through messages
+- Multiple monitors support (via *Xinerama*)
+- EWMH support (`tint2` works)
+- Automatic and manual modes
+- Triple window borders
 
 ## Panel
 
 `dzen2` fed with the output of `ewmhstatus`. Example: [launchpanel](https://github.com/baskerville/bin/blob/master/launchpanel).
 
+Or any EWMH compliant panel.
+
 ## Required Libraries:
 
-libxcb, xcb-util, xcb-util-wm.
+- libxcb
+- xcb-util
+- xcb-util-wm
 
 ## Installation
 
     make
     make install
 
+## Contributors
+
+- [Ivan Kanakarakis](https://github.com/c00kiemon5ter)