Concepts
- Each workspace contains its own single root node
- Each non-leaf node is called a “Container”
- Each container can contain arbitrary number of children nodes
- Windows are the only possible leaf nodes. Windows contain zero children nodes
- Every container has two properties:
- Layout (Possible values:
tiles
,accordion
) - Orientation (Possible values:
horizontal
,vertical
)
- Layout (Possible values:
Some examples:
In total, AeroSpace provides 4 possible layouts:
h_tiles
horizontal tiles (in i3, it’s called “horizontal split”)v_tiles
vertical tiles (in i3, it’s called “vertical split”)h_accordion
horizontal accordion (analog of i3’s “tabbed layout”)v_accordion
vertical accordion (analog of i3’s “stacked layout”)
Accordion is a layout where windows are placed on top of each other.
- The horizontal accordion shows left and right paddings to visually indicate the presence of other windows in those directions.
- The vertical accordion shows top and bottom paddings to visually indicate the presence of other windows in those directions.
Normalization
By default, AeroSpace does two types of tree normalizations:
- Containers that have only one child are “flattened”. The root container is an exception, it is allowed to have a single window child. Configured by
enable-normalization-flatten-containers
Example 1
According to the first normalization, such layout isn’t possible:
h_tiles (root node)
└── v_tiles
└── window 1
it will be immediately transformed into
v_tiles (new root node)
└── window 1