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
Shortcuts
Between Workspaces
- Switch Workspaces
alt-1 = 'workspace 1'
alt-2 = 'workspace 2'
alt-3 = 'workspace 3'
# ...
alt-b = 'workspace B'
alt-c = 'workspace C'
alt-d = 'workspace D'
- Move Node to Workspaces
alt-shift-1 = 'move-node-to-workspace 1'
alt-shift-2 = 'move-node-to-workspace 2'
alt-shift-3 = 'move-node-to-workspace 3'
# ...
alt-shift-b = 'move-node-to-workspace B'
alt-shift-c = 'move-node-to-workspace C'
alt-shift-d = 'move-node-to-workspace D'
In a Workspace
- Focus Different Node
alt-h = 'focus left'
alt-j = 'focus down'
alt-k = 'focus up'
alt-l = 'focus right'
- Change Node Position
alt-shift-h = 'move left'
alt-shift-j = 'move down'
alt-shift-k = 'move up'
alt-shift-l = 'move right'
- Resize Node
alt-shift-minus = 'resize smart -50'
alt-shift-equal = 'resize smart +50'