![logo](https://github.com/baskerville/bspwm/raw/master/logo/bspwm-logo.png)
+## Synopsis
+
+ bspwm [-v|-s STATUS_FIFO]
+
+ 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).
-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
| | | | | |
+-------------------------+ +-------------------------+
-## Synopsis
-
- bspwm [-v|-s STATUS_FIFO]
-
- bspc MESSAGE [ARGUMENTS] [OPTIONS]
-
## Messages
The syntax for the client is `bspc MESSAGE [ARGUMENTS ...]`.
- `circulate forward|backward` — Circulate the leaves in the given direction.
-- `grab_pointer move|resize|focus|move_tiled|resize_tiled` — Begin the specified pointer action.
+- `grab_pointer focus|move|resize_side|resize_corner` — Begin the specified pointer action.
- `track_pointer ROOT_X ROOT_Y` — Pass the pointer root coordinates for the current pointer action.
- `cycle_layout` — Cycle the layout of the current desktop.
-- `rotate clockwise|counter_clockwise|full_cycle` — Rotate the tree of the current desktop.
+- `rotate clockwise|counter_clockwise|full_cycle` — Rotate the window tree.
-- `rule PATTERN [DESKTOP_NAME] [floating]` — Create a new rule (`PATTERN` must match the class or instance name).
+- `flip horizontal|vertical` — Flip the window tree.
-- `remove_rule UID ...` — Remove the rules with the given UIDs.
+- `balance` — Adjust the split ratios so that all windows occupy the same area.
-- `adopt_orphans` — Manage all the unmanaged windows remaining from a previous session.
+- `rule PATTERN [DESKTOP_NAME] [floating] [follow]` — Create a new rule (`PATTERN` must match the class or instance name).
-- `reload_autostart` — Reload the autostart file.
+- `remove_rule UID ...` — Remove the rules with the given UIDs.
-- `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`.
- `apply_shadow_property` — Enable shadows for floating windows via the `_COMPTON_SHADOW` property.
-- `fence_grip` — If the distance to the nearest fence is greater than `fence_grip`, the `resize_tiled` action will not be engaged.
+## Environment Variables
+
+- `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
+- 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:
- [Ivan Kanakarakis](https://github.com/c00kiemon5ter)
+- [Thomas Adam](https://github.com/ThomasAdam)
+
## Mailing List
bspwm *at* librelist *dot* com.