The infinite canvas
The canvas is the whole point. Everything else is a panel on it.
Panning and zooming
| Gesture | Action |
|---|---|
| Two-finger scroll / trackpad drag | Pan |
| Command + scroll wheel | Zoom at the pointer |
| Right-click drag | Pan from anywhere |
| ⌘= / ⌘- / ⌘0 | Zoom in, zoom out, reset |
| ⌘1 | Zoom to fit everything |
| ⌘2 | Zoom to the selection |
| ⌃Space | Toggle select and hand tool |
Zoom is clamped between a minimum and a maximum, and it is centred on the pointer rather than on the middle of the window — so you zoom into the panel you are looking at.
Moving and resizing panels
Drag a panel by its title bar. Drag any edge or corner to resize. Both operate in canvas space, so a panel keeps its position relative to its neighbours regardless of the zoom you were at when you moved it.
⌘↑ ⌘↓ ⌘← ⌘→ move focus to the panel above, below, left or right of the focused one — spatial navigation, not a tab cycle. ⇧ plus an arrow pans the canvas itself.
Auto layout
⇧⌘L arranges the panels of the active canvas into a clean formation. Useful after a squad loads, or when an agent has opened more panels than you were watching.
Nested canvases
A canvas can be a panel inside another canvas. Use it to fold an entire sub-project into one node instead of scattering fifteen panels across the same plane.
Persistence
The canvas is written to .cate/workspace.json inside the project, and the running session to .cate/session.json. Both are plain, hand-editable JSON.
Closing the folder and reopening it restores positions, sizes, zoom, viewport offset and the dock layout.