Tiling blocks
Split, focus, swap, fullscreen and remove blocks from the keyboard, window-manager style.
Every terminal has a 12×6 bento and the bento never has gaps. Adding a block splits the one you are on, removing a block hands its space to a neighbour, and the arrows move you between blocks the way they do in Hyprland or Omarchy. Same habits, inside one window.
Opening a session selects its terminal, so the accent border is already where you type and the arrows have somewhere to start from.
The chords
| Chord | Command | What happens |
|---|---|---|
⌘K → add … | Add a module | Splits the focused block along its long axis (side by side when it is wide, stacked when it is tall). The first block takes the whole grid. |
⌃⌥← ⌃⌥→ ⌃⌥↑ ⌃⌥↓ | Focus block left / right / up / down | Focus moves to the neighbour that shares that edge. Typing follows: the terminal or web module in that block gets the keyboard. |
⌃⌥⇧← ⌃⌥⇧→ ⌃⌥⇧↑ ⌃⌥⇧↓ | Swap block left / right / up / down | The two blocks exchange position and size, so the grid stays gapless. |
⌃⌥F | Toggle block fullscreen | The focused block covers the bento. The saved layout is untouched; Esc, the backdrop, or focusing another block leaves. |
⌃⌥I ⌃⌥O | Zoom in / out one level | The bento zooms one level towards the focused block: the half it sits in, then the block itself. Zoom out steps back to the overview. Focusing a neighbour while zoomed slides over to it at the same level. |
⌃⌫ | Remove focused block | The block goes away and the neighbour sharing a full edge grows into the hole. If no single neighbour fits, the grid is repacked. |
⌘K → move files top right 4x3 | Move block | Puts the block at one of nine zones, optionally with a size. If something is there already, the two swap rects. |
All of these are catalog commands: rebind them in Settings → Keyboard, or run them from the
palette when you forget the chord. Arrow chords are stored as arrowleft, arrowright, and so on.
Arrows only move to a block that shares that edge. A lone full-grid terminal has nowhere to go,
and two stacked blocks ignore ⌃⌥← / ⌃⌥→. Ties (two blocks on the same edge) go to the one whose
centre is closest, then to the longer shared edge.
Zones for move
Type move, the block name, a zone, and an optional WxH:
top left · top · top right · left · center · right · bottom left · bottom · bottom right
The row shows where the block will land, for example Move files top right · 4×3 at 9,1.
Without a size the block keeps its own.
Resize is the mouse's job
Pull any corner grip. Growing shrinks the neighbours you push into, but only when the growth takes a clean slice off their edge. A neighbour that would be cut through the middle blocks the resize and your block keeps its last good size. There is no resize chord on purpose: sizes come from templates, positions from the keyboard.
Layouts and templates
Every terminal remembers its own arrangement. From the palette:
- Layout: … applies a template (built-ins: Terminal only, Terminal + monitor, Terminal + two commands, Empty, plus yours).
- Pin layout: … makes it the default for every new terminal.
- Save layout as template stores the current grid under a name you type in the titlebar.
- Delete layout: … removes one of yours.
On Omarchy, Hyprland owns Super+arrows and Super+F itself, so those chords never reach the
window. Rebind the block commands to something Hyprland leaves alone, for example ctrl+alt+arrowleft.
See Shortcuts for the full default table and the settings.json chord language.