]> git.lizzy.rs Git - bspwm.git/blobdiff - README.md
New logo
[bspwm.git] / README.md
index 7bb0ceebb0b48b9165c9de48e2e2e3fd53065c79..05dda6c39de4f5dddc93593d89e3b9d0f13a1733 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
 
 
 ## Description
 
@@ -10,7 +10,7 @@ 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.
 
 
 `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.
 
 
 If the `BSPWM_SOCKET` environment variable is defined, it will be used as the socket path, otherwise `/tmp/bspwm-socket` is used.
 
@@ -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
 was sent beforehand:
 
                      b                                   b
@@ -67,87 +67,99 @@ was sent beforehand:
 
 ## Messages
 
 
 ## Messages
 
-The syntax for the client is `bspc COMMAND ARGUMENTS...`.
+The syntax for the client is `bspc MESSAGE [ARGUMENTS ...]`.
 
 The following messages are handled:
 
 
 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.
 
     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.
 
         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_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).
 
         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.
 
         Switch to manual mode and select the splitting direction.
 
-    ratio VALUE
-        Set the splitting ratio of the focused window.
-
     cancel
         Switch to automatic mode.
 
     cancel
         Switch to automatic mode.
 
-    focus DIR
-        Focus the neighbor node situated in the given direction. 
+    ratio VALUE
+        Set the splitting ratio of the focused window.
 
 
-    shift DIR
-        Focus the neighbor node situated in the given direction. 
+    focus left|right|up|down
+        Focus the neighbor window situated in the given direction.
 
 
-    push DIR
+    shift left|right|up|down
+        Exchange the current window with the given neighbor.
+
+    push left|right|up|down
         Push the fence located in the given direction.
 
         Push the fence located in the given direction.
 
-    pull DIR
+    pull left|right|up|down
         Pull the fence located in the given direction.
 
         Pull the fence located in the given direction.
 
-    cycle CYC [--skip-floating|--skip-tiled|--skip-class-equal|--skip-class-differ]
-        Focus the next or previous window in the list of leaves.
+    cycle next|prev [--skip-floating|--skip-tiled|--skip-class-equal|--skip-class-differ]
+        Focus the next or previous window matching the given constraints.
 
 
-    rotate ROT
-        Rotate the tree of the current desktop.
+    nearest older|newer [--skip-floating|--skip-tiled|--skip-class-equal|--skip-class-differ]
+        Focus the nearest window matching the given constraints.
 
 
-    magnetise COR
-        Move all the fences toward the given corner.
+    circulate forward|backward
+        Circulate the leaves in the given direction.
 
 
-    send_to_monitor MONITOR_NAME
-        Send the focused window to the given monitor.
+    toggle_fullscreen
+        Toggle the fullscreen state of the current window.
+
+    toggle_floating
+        Toggle the floating state of the current window.
+
+    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.
 
 
     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 DESKTOP_NAME
         Select the given desktop.
-    
-    alternate_monitor
-        Alternate between the current and the last focused monitor.
+
+    use_monitor MONITOR_NAME
+        Select the given monitor.
 
     alternate
 
     alternate
+        Alternate between the current and the last focused window.
+
+    alternate_desktop
         Alternate between the current and the last focused 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 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_monitor CURRENT_NAME NEW_NAME
         Rename the monitor named CURRENT_NAME to NEW_NAME.
@@ -155,29 +167,26 @@ The following messages are handled:
     rename CURRENT_NAME NEW_NAME
         Rename the desktop 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.
 
         Select the next or previous monitor.
 
-    cycle_desktop CYC
+    cycle_desktop next|prev [--skip-free|--skip-occupied]
         Select the next or previous desktop.
         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.
 
 
     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.
 
     reload_autostart
         Reload the autostart file.
@@ -188,17 +197,12 @@ The following messages are handled:
     reload
         Reload the autostart file and the default settings.
 
     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
 
 
 ## 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.
 
     focused_border_color
         Color of the main border of a focused window of a focused monitor.
@@ -208,13 +212,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.
 
     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.
     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.
 
     presel_border_color
         Color of the *presel* message feedback.
 
@@ -247,32 +251,60 @@ Colors are either [X color names](http://en.wikipedia.org/wiki/X11_color_names)
     wm_name
         The value that shall be used for the _NET_WM_NAME property of the root window.
 
     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.
 
         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.
+
 ## Mouse Bindings
 
 ## Mouse Bindings
 
-    M4 + Left Button
+    button_modifier + left mouse button
         Move the window under the pointer.
 
         Move the window under the pointer.
 
-    M4 + Middle Button
+    button_modifier + middle mouse button
         Focus the window under the pointer.
 
         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).
 
         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).
 
 
 ## 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:
 
 ## Required Libraries:
 
-libxcb, xcb-util, xcb-util-wm.
+- libxcb
+- xcb-util
+- xcb-util-wm
 
 ## Installation
 
     make
     make install
 
 
 ## Installation
 
     make
     make install
 
+## Contributors
+
+- [Ivan Kanakarakis](https://github.com/c00kiemon5ter)