]> git.lizzy.rs Git - bspwm.git/blob - README.mkd
Fix "alternate" command, min width,height is 1,1
[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 - Each container node is a split rectangle.
11 - Only two methods of node insertion will be provided: *replace* and *pair*.
12
13         Example: insertion of a new node (number 4) into the given tree with the
14         *replace* method:
15
16                      b                                   c
17                     / \                                 / \
18                    3   a              -->              4   b
19                    ^  / \                              ^  / \
20                      2   1                               3   a
21                                                             / \
22                                                            2   1
23         +-------------------------+         +-------------------------+
24         |            |            |         |            |            |
25         |            |     2      |         |            |     3      |
26         |            |            |         |            |            |
27         |     3      |------------|   -->   |     4      |------------|
28         |     ^      |            |         |     ^      |     |      |
29         |            |     1      |         |            |  2  |  1   |
30         |            |            |         |            |     |      |
31         +-------------------------+         +-------------------------+
32
33         And with the *pair* method:
34
35                      b                                   b
36                     / \                                 / \
37                    3   a              -->              c   a
38                    ^  / \                             / \ / \
39                      2   1                           4  3 2  1
40                                                      ^
41         +-------------------------+         +-------------------------+
42         |            |            |         |            |            |
43         |            |     2      |         |     4      |     2      |
44         |            |            |         |     ^      |            |
45         |     3      |------------|   -->   |------------|------------|
46         |     ^      |            |         |            |            |
47         |            |     1      |         |     3      |     1      |
48         |            |            |         |            |            |
49         +-------------------------+         +-------------------------+
50
51
52 ## Features
53
54 - 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.
55 - Directional *pair* splitting preselection (the feedback will be drawn in the window border pixman).
56 - Set or get settings and call methods at runtime.
57 - Configuration file in Lua.
58
59 ## Planned Features
60
61 - Don't automatically give the focus to toolbar windows.
62 - 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.
63 - Close every window except the focused one.
64 - Tree transformations: directional leaf swap, node pulling, rotation...
65 - Rounded corners ? (cairo).