mirror of
https://github.com/vale981/bspwm
synced 2025-03-05 09:51:38 -05:00
No description
resources | ||
.bspwmrc | ||
.gitignore | ||
bspc.c | ||
bspwm.c | ||
bspwm.h | ||
common.h | ||
events.c | ||
events.h | ||
ewmh.c | ||
ewmh.h | ||
helpers.h | ||
luautils.c | ||
luautils.h | ||
Makefile | ||
messages.c | ||
messages.h | ||
README.mkd | ||
rules.c | ||
rules.h | ||
settings.c | ||
settings.h | ||
tree.c | ||
tree.h | ||
types.c | ||
types.h | ||
utils.c | ||
utils.h |
Description
-
Windows are represented as the leaves of a binary tree.
-
To each leaf corresponds exactly one window.
-
The only nodes which can be focused are the leaves.
-
The leaves are called window nodes.
-
The other nodes are called container nodes.
-
Each container node is a split rectangle.
-
Only two methods of node insertion will be provided: replace and pair.
Example: insertion of a new node (number 4) into the given tree with the *replace* method: b c / \ / \ 3 a --> 4 b ^ / \ ^ / \ 2 1 3 a / \ 2 1 +-------------------------+ +-------------------------+ | | | | | | | | 2 | | | 3 | | | | | | | | 3 |------------| --> | 4 |------------| | ^ | | | ^ | | | | | 1 | | | 2 | 1 | | | | | | | | +-------------------------+ +-------------------------+ And with the *pair* method: b b / \ / \ 3 a --> c a ^ / \ / \ / \ 2 1 4 3 2 1 ^ +-------------------------+ +-------------------------+ | | | | | | | | 2 | | 4 | 2 | | | | | ^ | | | 3 |------------| --> |------------|------------| | ^ | | | | | | | 1 | | 3 | 1 | | | | | | | +-------------------------+ +-------------------------+
Features
- 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.
- Directional pair splitting preselection (the feedback will be drawn in the window border pixman).
- Set or get settings and call methods at runtime.
- Configuration file in Lua.
Planned Features
- Don't automatically give the focus to toolbar windows.
- 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.
- Close every window except the focused one.
- Tree transformations: directional leaf swap, node pulling, rotation...
- Rounded corners ? (cairo).