1 ![logo](https://github.com/baskerville/bspwm/raw/master/resources/bspwm_logo.png)
5 - Windows are represented as the leaves of a binary tree.
6 - To each leaf corresponds exactly one window.
7 - The only nodes which can be focused are the leaves.
8 - The leaves are called *window nodes*.
9 - The other nodes are called *container nodes*.
10 - Only two methods of node insertion will be provided: *replace* and *pair*.
12 Example: insertion of a new node (number 4) into the given tree with the
22 +-------------------------+ +-------------------------+
26 | 3 |------------| --> | 4 |------------|
30 +-------------------------+ +-------------------------+
32 And with the *pair* method:
40 +-------------------------+ +-------------------------+
44 | 3 |------------| --> |------------|------------|
48 +-------------------------+ +-------------------------+
50 - Each container node is a split rectangle.
51 - Several tree transformations will be provided: directional leaf swap, node
52 pulling, rotation, contraction, dilatation...
56 - Triple window borders. Rationale: with single borders, it might happen that the color of the window border is too close to the color of its inner or outer environment to be visible.
57 - Directional *pair* splitting preselection (the feedback will be drawn in the window border pixman).
58 - Don't automatically give the focus to toolbar windows.
59 - When a fullscreen window looses the focus, its fullscreen state will be set to *false* if the window to be focused is in the same desktop.
60 - Set or get settings and call methods at runtime.
61 - Configuration file in Lua.