remove README.tree, the warning is obsolete now
This commit is contained in:
parent
559fd54334
commit
c58109700c
49
README.tree
49
README.tree
|
@ -1,49 +0,0 @@
|
||||||
README file for the "tree" branch of i3
|
|
||||||
=======================================
|
|
||||||
|
|
||||||
This is a *massive* refactoring of i3. It was driven by thinking about whether
|
|
||||||
a different data structure could make things easier (for users and developers).
|
|
||||||
The old data structure of a table provided relatively flexible layouts but was
|
|
||||||
*very* hard to implement.
|
|
||||||
|
|
||||||
The new data structure is a tree. You can have horizontally and vertically split
|
|
||||||
containers. Each container can contain either nothing yet (waiting for a window
|
|
||||||
or for the user to put more containers in it), one or more containers or exactly
|
|
||||||
one window. RandR Outputs and workspaces are not treated specially, but they
|
|
||||||
are just containers inside the tree.
|
|
||||||
|
|
||||||
This structure allows for easy serialization, meaning multiple things:
|
|
||||||
- we can store and reload the layout for inplace restarts (this is already working)
|
|
||||||
- we can store parts of the layout and load them at any position in our tree
|
|
||||||
(partly working)
|
|
||||||
- we can load a layout specifying the physical positions of RandR outputs
|
|
||||||
for pathologic screen setups
|
|
||||||
- we can load a default layout for each workspace to specify the position
|
|
||||||
of dock clients
|
|
||||||
- we can use test-driven development to a much higher degree because we have
|
|
||||||
access to the whole tree
|
|
||||||
|
|
||||||
Ripping out the core data structures of i3 and replacing them of course has
|
|
||||||
some side-effects, which I will describe here (the list may not be complete,
|
|
||||||
new side-effects may not be known yet):
|
|
||||||
- Empty containers are allowed. They can swallow windows based on certain
|
|
||||||
criteria. We can implement session-saving this way.
|
|
||||||
- Assignments (put windows on certain workspaces, put workspaces on certain
|
|
||||||
outputs) are just special cases of the point above.
|
|
||||||
- Window decorations are now always rendered on the parent window. This means
|
|
||||||
we don’t have to carry around ugly Stack_Windows any more.
|
|
||||||
- Operations always (?) operate on containers, so you can make a container
|
|
||||||
(containing multiple windows) fullscreen or floating (for example) and no
|
|
||||||
longer just single windows.
|
|
||||||
- All X11 requests are now pushed to X11 in a separate step (rendering is one
|
|
||||||
step, updating X11 another). This makes talking to X11 a lot less error-prone
|
|
||||||
and allows for simpler code.
|
|
||||||
|
|
||||||
======================
|
|
||||||
SOME WORDS OF WARNING:
|
|
||||||
======================
|
|
||||||
|
|
||||||
The current state of the branch is not nearly the quality you know of i3. It
|
|
||||||
is in flux, changes and crashes are to be expected. Many features do not work
|
|
||||||
yet. It is only suitable if you want to help developing or have a look at what
|
|
||||||
is coming. Do *NOT* use it for production! You have been warned.
|
|
Loading…
Reference in New Issue