]> git.lizzy.rs Git - bspwm.git/blobdiff - README.md
Merge branch 'master' into history
[bspwm.git] / README.md
index a99e74c46885db7eb737628c74c0465d68d2b439..9af84c6379072421fa3a1598b70b24963f07d2cd 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,24 +1,26 @@
 ![logo](https://github.com/baskerville/bspwm/raw/master/logo/bspwm-logo.png)
 
+## Synopsis
+
+    bspwm [-h|-v|-s PANEL_FIFO|-p PANEL_PREFIX]
+
+    bspc MESSAGE [ARGUMENTS] [OPTIONS]
+
 ## Description
 
-`bspwm` is a tiling window manager based on binary space partitioning.
+`bspwm` is a tiling window manager where each window is represented as the leaf of a binary tree.
 
-The windows are represented as the leaves of a binary tree.
+It is controlled and configured via `bspc`.
 
 ## Configuration
 
 `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 via `bspc`.
-
-If the `BSPWM_SOCKET` environment variable is defined, it will be used as the socket path, otherwise `/tmp/bspwm-socket` is used.
+Its configuration file is `$XDG_CONFIG_HOME/bspwm/autostart`.
 
-The recommended way of defining keyboard shortcuts is to use [sxhkd](https://github.com/baskerville/sxhkd).
+Keyboard and pointer bindings are defined through [sxhkd](https://github.com/baskerville/sxhkd).
 
-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/`.
-
-Example configurations: [autostart](https://github.com/baskerville/bin/blob/master/bspwm_autostart) and [sxhkdrc](https://github.com/baskerville/dotfiles/blob/master/sxhkdrc).
+Example configuration files can be found in the `examples` directory.
 
 ## Splitting Modes
 
@@ -65,251 +67,180 @@ was sent beforehand:
         |            |            |         |            |            |
         +-------------------------+         +-------------------------+
 
-## Synopsis
-
-    bspwm [-v|-s STATUS_FIFO]
-
-    bspc MESSAGE [ARGUMENTS] [OPTIONS]
-
 ## Messages
 
 The syntax for the client is `bspc MESSAGE [ARGUMENTS ...]`.
 
 The following messages are handled:
 
-    get SETTING
-        Return 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.
+
+- `list [DESKTOP_NAME]` — Output the internal representation of the window tree.
 
-    set SETTING VALUE
-        Set the value of the given setting.
+- `list_desktops [--quiet]` — Perform a dump of each desktop for the current monitor.
 
-    list [DESKTOP_NAME]
-        Output the internal representation of the window tree.
+- `list_monitors [--quiet]` — Perform a dump of each monitor.
 
-    list_desktops [--quiet]
-        Perform a dump of each desktop for the current monitor.
+- `list_history [DESKTOP_NAME]` — Return the node focus history.
 
-    list_monitors [--quiet]
-        Perform a dump of each monitor.
+- `list_windows` — Return the list of managed windows (i.e. their identifiers).
 
-    list_windows
-        Return the list of managed windows (i.e. their identifiers).
+- `list_rules` — Return the list of rules.
 
-    list_rules
-        Return the list of rules.
+- `presel left|right|up|down [SPLIT_RATIO]` — Switch to manual mode and select the splitting direction.
 
-    presel left|right|up|down [SPLIT_RATIO]
-        Switch to manual mode and select the splitting direction.
+- `cancel` — Switch to automatic mode.
 
-    cancel
-        Switch to automatic mode.
+- `ratio VALUE` — Set the splitting ratio of the focused window.
 
-    ratio VALUE
-        Set the splitting ratio of the focused window.
+- `pad MONITOR_NAME [TOP_PADDING [RIGHT_PADDING [BOTTOM_PADDING [LEFT_PADDING]]]]` — Set the padding of the given monitor.
 
-    pad MONITOR_NAME [TOP_PADDING [RIGHT_PADDING [BOTTOM_PADDING [LEFT_PADDING]]]]
-        Set the padding of the given monitor.
+- `focus left|right|up|down` — Focus the neighbor window situated in the given direction.
 
-    focus left|right|up|down
-        Focus the neighbor window situated in the given direction.
+- `shift left|right|up|down` — Exchange the current window with the given neighbor.
 
-    shift left|right|up|down
-        Exchange the current window with the given neighbor.
+- `swap [biggest|smallest]` — Swap the focused window with the biggest/smallest window or with the last focused window if no arguments are given.
 
-    swap
-        Swap the focused window with the last focused window.
+- `push left|right|up|down` — Push the fence located in the given direction.
 
-    push left|right|up|down
-        Push the fence located in the given direction.
+- `pull left|right|up|down` — Pull the fence located in the given direction.
 
-    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.
 
-    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 window matching the given constraints.
 
-    nearest older|newer [--skip-floating|--skip-tiled|--skip-class-equal|--skip-class-differ]
-        Focus the nearest window matching the given constraints.
+- `circulate forward|backward` — Circulate the leaves in the given direction.
 
-    circulate forward|backward
-        Circulate the leaves in the given direction.
+- `grab_pointer focus|move|resize_side|resize_corner` — Begin the specified pointer action.
 
-    grab_pointer move|resize|focus
-        Begin the specified pointer action.
+- `track_pointer ROOT_X ROOT_Y` — Pass the pointer root coordinates for the current pointer action.
 
-    track_pointer ROOT_X ROOT_Y
-        Pass the pointer root coordinates for the current pointer action.
+- `ungrab_pointer` — End the current pointer action.
 
-    ungrab_pointer
-        End the current pointer action.
+- `toggle_fullscreen` — Toggle the fullscreen state of the current window.
 
-    toggle_fullscreen
-        Toggle the fullscreen state of the current window.
+- `toggle_floating` — Toggle the floating 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).
 
-    toggle_locked
-        Toggle the locked state of the current window (locked windows will not respond to the 'close' message).
+- `toggle_visibility` — Toggle the visibility of all the managed windows.
 
-    toggle_visibility
-        Toggle the visibility of all the managed windows.
+- `close` — Close the focused window.
 
-    close
-        Close the focused window.
+- `kill` — Kill the focused window.
 
-    kill
-        Kill the focused window.
+- `send_to DESKTOP_NAME [--follow]` — Send the focused window to the given desktop.
 
-    send_to DESKTOP_NAME [--follow]
-        Send the focused window to the given desktop.
+- `drop_to next|prev [--follow]` — Send the focused window to the next or previous desktop.
 
-    drop_to next|prev [--follow]
-        Send the focused window to the next or previous desktop.
+- `send_to_monitor MONITOR_NAME [--follow]` — Send the focused window to the given monitor.
 
-    send_to_monitor MONITOR_NAME [--follow]
-        Send the focused window to the given monitor.
+- `drop_to_monitor next|prev [--follow]` — Send the focused window to the next or previous monitor.
 
-    drop_to_monitor next|prev [--follow]
-        Send the focused window to the next or previous monitor.
+- `use DESKTOP_NAME` — Select the given desktop.
 
-    use DESKTOP_NAME
-        Select the given desktop.
+- `use_monitor MONITOR_NAME` — Select the given monitor.
 
-    use_monitor MONITOR_NAME
-        Select the given monitor.
+- `alternate` — Alternate between the current and the last focused window.
 
-    alternate
-        Alternate between the current and the last focused window.
+- `alternate_desktop` — Alternate between the current and the last focused desktop.
 
-    alternate_desktop
-        Alternate between the current and the last focused desktop.
+- `alternate_monitor` — Alternate between the current and the last focused monitor.
 
-    alternate_monitor
-        Alternate between the current and the last focused monitor.
+- `add DESKTOP_NAME ...` — Make new desktops with the given names.
 
-    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.
 
-    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.
+- `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 next|prev` — Select the next or previous monitor.
 
-    cycle_monitor next|prev
-        Select the next or previous monitor.
+- `cycle_desktop next|prev [--skip-free|--skip-occupied]` — Select the next or previous desktop.
 
-    cycle_desktop next|prev [--skip-free|--skip-occupied]
-        Select the next or previous desktop.
+- `layout monocle|tiled [DESKTOP_NAME ...]` — Set the layout of the given desktops (current if none given).
 
-    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.
+- `rotate clockwise|counter_clockwise|full_cycle` — Rotate the window tree.
 
-    rotate clockwise|counter_clockwise|full_cycle
-        Rotate the tree of the current desktop.
+- `flip horizontal|vertical` — Flip the window tree.
 
-    rule PATTERN [DESKTOP_NAME] [floating]
-        Create a new rule (PATTERN must match the class or instance name).
+- `balance` — Adjust the split ratios so that all windows occupy the same area.
 
-    remove_rule UID ...
-        Remove the rules with the given UIDs.
+- `rule PATTERN [DESKTOP_NAME] [floating] [follow]` — Create a new rule (`PATTERN` must match the class or instance name).
 
-    adopt_orphans
-        Manage all the unmanaged windows remaining from a previous session.
+- `remove_rule UID ...` — Remove the rules with the given UIDs.
 
-    reload_autostart
-        Reload the autostart file.
+- `put_status` — Output the current state to the panel fifo.
 
-    reload_settings
-        Reload the default settings.
+- `adopt_orphans` — Manage all the unmanaged windows remaining from a previous session.
 
-    restore FILE_PATH
-        Restore the layout of each desktop from the content of FILE_PATH.
+- `restore FILE_PATH` — Restore the layout of each desktop from the content of `FILE_PATH`.
 
-    quit [EXIT_STATUS]
-        Quit.
+- `quit [EXIT_STATUS]` — Quit.
 
 ## Settings
 
 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 border of a focused window of a focused monitor.
+
+- `active_border_color` — Color of the border of a focused window of an unfocused monitor.
+
+- `normal_border_color` — Color of the border of an unfocused window.
+
+- `presel_border_color` — Color of the `presel` message feedback.
 
-    active_border_color
-        Color of the main border of a focused window of an unfocused monitor.
+- `focused_locked_border_color` — Color of the border of a focused locked window of a focused monitor.
 
-    normal_border_color
-        Color of the main border of an unfocused window.
+- `active_locked_border_color` — Color of the border of a focused locked window of an unfocused monitor.
 
-    inner_border_color
-        Color of the inner border of a window.
+- `normal_locked_border_color` — Color of the border of an unfocused locked window.
 
-    outer_border_color
-        Color of the outer border of a window.
+- `urgent_border_color` — Color of the border of an urgent window.
 
-    presel_border_color
-        Color of the *presel* message feedback.
+- `border_width` — Window border width.
 
-    focused_locked_border_color
-        Color of the main border of a focused locked window of a focused monitor.
+- `window_gap` — Value of the gap that separates windows.
 
-    active_locked_border_color
-        Color of the main border of a focused locked window of an unfocused monitor.
+- `split_ratio` — Default split ratio.
 
-    normal_locked_border_color
-        Color of the main border of an unfocused locked window.
+- `{top,right,bottom,left}_padding` — Padding space added at the sides of the current monitor.
 
-    urgent_border_color
-        Color of the border of an urgent window.
+- `wm_name` — The value that shall be used for the `_NET_WM_NAME` property of the root window.
 
-    inner_border_width
-    main_border_width
-    outer_border_width
-        Width of the inner, main and outer borders.
+- `borderless_monocle` — Whether to remove borders for tiled windows in monocle mode.
 
-    window_gap
-        Value of the gap that separates windows.
+- `gapless_monocle` — Whether to remove gaps for tiled windows in monocle mode.
 
-    {top,right,bottom,left}_padding
-        Padding space added at the sides of the current monitor.
+- `focus_follows_pointer` — Whether to focus the window under the pointer.
 
-    wm_name
-        The value that shall be used for the _NET_WM_NAME property of the root window.
+- `adaptative_raise` — Prevent floating windows from being raised when they might cover other floating windows.
 
-    borderless_monocle
-        Whether to remove borders for tiled windows in monocle mode.
+- `apply_shadow_property` — Enable shadows for floating windows via the `_COMPTON_SHADOW` property.
 
-    gapless_monocle
-        Whether to remove gaps for tiled windows in monocle mode.
+- `auto_alternate` — Whether to interpret two consecutive identical `use` messages as an `alternate` message.
 
-    focus_follows_pointer
-        Wether to focus the window under the pointer.
+## Environment Variables
 
-    adaptative_raise
-        Prevent floating windows from being raised when they might cover other floating windows.
+- `BSPWM_SOCKET` — The path of the socket used for the communication between `bspc` and `bspwm`.
 
 ## Key Features
 
-- Configured and controlled through messages
-- Multiple monitors support (via *Xinerama*)
-- EWMH support (`tint2` works)
-- Automatic and manual modes
-- Triple window borders
+- Configured and controlled through messages.
+- Multiple monitors support (via *Xinerama*).
+- EWMH support (`tint2` works).
+- Automatic and manual modes.
 
-## Panel
+## Panels
 
-Multiple choices:
-- `dzen2` fed with the output of `ewmhstatus`. Example: [launchpanel](https://github.com/baskerville/bin/blob/master/launchpanel).
-- A custom panel if the `-s` flag is used (have a look at the files in `examples/`).
 - Any EWMH compliant panel (e.g. `tint2`, `bmpanel2`, etc.).
+- A custom panel if the `-s` flag is used (have a look at the files in `examples/panel`).
+- `dzen2` fed with the output of `ewmhstatus`. Example: [launchpanel](https://github.com/baskerville/bin/blob/master/launchpanel).
 
 ## Required Libraries:
 
@@ -326,6 +257,12 @@ Multiple choices:
 
 - [Ivan Kanakarakis](https://github.com/c00kiemon5ter)
 
+- [Thomas Adam](https://github.com/ThomasAdam)
+
 ## Mailing List
 
 bspwm *at* librelist *dot* com.
+
+## License
+
+BSD.