]> git.lizzy.rs Git - bspwm.git/blob - README.mkd
Mention only distinctive features
[bspwm.git] / README.mkd
1 ![logo](https://github.com/baskerville/bspwm/raw/master/resources/bspwm_logo.png)
2
3 ## Description
4
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*.
11
12         Example: insertion of a new node (number 4) into the given tree with the
13         *replace* method:
14
15                      b                                   c
16                     / \                                 / \
17                    3   a              -->              4   b
18                    ^  / \                              ^  / \
19                      2   1                               3   a
20                                                             / \
21                                                            2   1
22         +-------------------------+         +-------------------------+
23         |            |            |         |            |            |
24         |            |     2      |         |            |     3      |
25         |            |            |         |            |            |
26         |     3      |------------|   -->   |     4      |------------|
27         |     ^      |            |         |     ^      |     |      |
28         |            |     1      |         |            |  2  |  1   |
29         |            |            |         |            |     |      |
30         +-------------------------+         +-------------------------+
31
32         And with the *pair* method:
33
34                      b                                   b
35                     / \                                 / \
36                    3   a              -->              c   a
37                    ^  / \                             / \ / \
38                      2   1                           4  3 2  1
39                                                      ^
40         +-------------------------+         +-------------------------+
41         |            |            |         |            |            |
42         |            |     2      |         |     4      |     2      |
43         |            |            |         |     ^      |            |
44         |     3      |------------|   -->   |------------|------------|
45         |     ^      |            |         |            |            |
46         |            |     1      |         |     3      |     1      |
47         |            |            |         |            |            |
48         +-------------------------+         +-------------------------+
49
50 - Each container node is a split rectangle.
51 - Several tree transformations will be provided: directional leaf swap, node
52   pulling, rotation, contraction, dilatation...
53
54 ## Planned Features
55
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.