Panes and tabs
A tab holds up to four panes, tiled. Every pane is a real shell with its own header, and every divider can be dragged.
Alt+V splits the pane you're in side by side; Alt+H splits it top and bottom. The new pane opens in the same directory. Alt and an arrow key moves between panes. Drag a pane's title onto another pane to move it there, onto a tab to send it to that tab, or out past the edge of the window to give it a window of its own.
Closing doesn't end anything straight away. Alt+W closes a pane and Ctrl+W a tab, and either one goes to the bay at the foot of the left bar with its shells still running. Ctrl+Shift+Z brings it back. Closing the last tab is the one close that quits.
To make anything bigger, hold Ctrl and turn the wheel over it: over a pane's text it sizes that pane's font, over its header the header, over the chrome the whole window's chrome.
Technical covers the header, the three faces, documents in a pane, the tab strip, the top bar and the footer.
Layout
Each tab is a tiling tree. A split replaces the pane you're in with two panes at half each, the new one on the right or below, and hands it your working directory and your focus. A second split within 200 ms is ignored, so a held key doesn't fill the tab.1
Splitting and moving#
| Key | Does |
|---|---|
| Alt+V | Split beside: a new pane on the right. |
| Alt+H or Ctrl+Alt+D | Split below: a new pane underneath. |
| Alt+← → ↑ ↓ | Move focus to the pane in that direction. Nothing happens at the edge; it doesn't wrap. |
| Alt+W | Close the focused pane, into the bay. |
| Alt+K | Flip the pane between its terminal and its workbench. |
| Alt+R | Open the focus reader on the focused pane. |
The buttons do the same: split → sits at the foot of the right-hand column and split ↓ at the right end of the bottom edge. A tab takes four panes at most; a fifth split is refused. Layouts saved before that limit can still hold up to eight.
Drag a divider to resize; it stops at 15 % and 85 %. There is no key for resizing. Drag a pane by its header title: onto another pane, it splits that pane on the side you drop nearest; onto the outer edge of a region, it re-frames the whole region; onto a tab in the strip, it joins that tab; past the edge of the window, it opens a new window with a fresh shell in the same directory, resuming the same Claude or Codex session. A running shell can't move between processes, so the new window starts its own. Tearing a pane off needs more than one pane in the window.
Closing and bringing back#
A closed pane or tab is held, not ended. Its shell keeps running in the bay at the foot of the left bar for an hour, or four hours if it had two or more panes. The bay holds ten things.
| You close | What happens |
|---|---|
A pane, with Alt+W or its × | The split collapses onto its neighbour; the pane goes to the bay. A pane alone in its tab closes as a tab. |
| A tab, with Ctrl+W | Always asks first: CLOSE TAB?, Enter to close, Esc to cancel. |
A tab, with its × in the strip | Closes a one-pane tab straight away and asks first for more. |
| The last tab | Asks, then ends its shells and quits: “notes” is the last tab — closing it ends its shell and quits. This can’t be undone. |
Ctrl+Shift+Z reopens the newest thing in the bay, and pressing it again walks further back. A reopened pane says where it landed: back where it was, back in its tab, in a new seat or back as its own tab. When a shell exits by itself, its pane is removed, and the app quits when the last pane anywhere is gone.
The pane header#
The title reads ▸ MODE · label. The mode is SHELL, CLAUDE, CODEX, REMOTE, UNKNOWN or the name of the program running. The label is the name you gave the pane, or the file name when it shows a document, or the shell's own title. Double-click or right-click the title to rename it (up to 24 characters), and drag it to move the pane. Left of the title is the pane's logo; click it to pick one.
On the right, in order:
- The face switch,
TERM·BENCH, orDOC·TERM·BENCHon a pane showing a document. When the bench is holding answers for the agent it addsN answers waiting. 🎨for the pane's theme and the display icon for its dials. On a narrow pane these move into the⋯menu as🎨 Themeand📊 Display.- The status word:
❓ your turn,✘ blocked,✔ done,exitedorlive, in that order of precedence. ×closes the pane. The face switch and×never fold into the⋯menu.
Documents in a pane#
A pane can show a Markdown file, an HTML page, an image or a video in place of its terminal. That is its DOC face.
| Click on a file path | Opens |
|---|---|
| Ctrl+Alt+click | Beside you: the tab splits and the new pane shows the document, with focus left where you were. If a pane already shows that file, it comes forward. In a full tab the document floats over your pane instead. |
| Alt+click | In a floating square over the pane, with ⇲ split, ↗ desktop and ✕ esc. A second Alt+click on the same file turns it into a split. |
| Shift or Ctrl+click | Any link, with your desktop's own app. |
On the DOC face, 0 fits the page, 1 shows it at actual size, + and - zoom, the arrows pan and PgUp PgDn page. Other keys are held back so nothing types into the hidden shell. HTML is drawn by a headless Chromium; without one, the file goes to the desktop. A document pane comes back after a restart on the same page.
A video (.mp4, .mov, .webm, .mkv, .m4v, .ogv, .avi) plays in the square or on the DOC face, looping, with sound, through libmpv; without mpv installed, it goes to the desktop. A bar along the bottom pauses it (so does a click on the picture), shows the time, seeks when you press or drag its track, and mutes it. On the DOC face, Space pauses, ← → skip five seconds and M mutes; over the terminal those keys stay the prompt's. A video pane put back by a restart comes back paused.
From a script: terminal-delight ctl doc here|beside <path>, ctl doc close, ctl doc scroll <pixels>.
Sizing#
Ctrl+wheel sizes whatever the pointer is over, and only that becomes the pane's own setting.
| Pointer over | Sizes | Range |
|---|---|---|
| the chrome (top bar, tabs, left bar, gaps) | the window's chrome | 70 % to 160 % |
| a pane's header | that pane's header | 70 % to 160 % |
| a pane's terminal text | that pane's font; the shell reflows | 60 % to 200 % |
| a pane's workbench | the bench's text | 60 % to 200 % |
Each notch is 5 %. The bench's size starts out following the terminal's until you turn it. The footer's ▭ N% button sets the chrome size on a track.
The tab strip#
The tab strip is on screen while the left bar is hidden. With the bar open, which is the default, the middle of the top row is the project ticker instead. The strip shows the tabs of the group you're in, headed by chips for the project and its groups.
| Key or gesture | Does |
|---|---|
Ctrl+Shift+T, or + | New tab in the branch you're in, with its name box open. |
| Ctrl+PgUp PgDn | Previous or next tab, wrapping. |
| Ctrl+Shift+PgUp PgDn | Move the tab one place, never out of its group. |
| double-click or right-click a tab | Rename it (up to 18 characters). |
| Ctrl+click a tab | Its tray: colour, text colour, group and project. |
| drag a tab | Reorder it; past the bottom of the strip, start a new row. |
A tab shows 📌 for pinned notes, then up to four agent badges and +N, then ×. The active tab is drawn larger, lifted and underlined.
The top bar#
From the left: the app's mark and the worktree badge, then the ticker or the tab strip, then the agent counter. Drag the bar to move the window.
- worktree badge
- What the project's git worktrees are doing:
4 WORKTREES ✓,2 WORKTREES · 1 SHARED,⚠ 1 FOREIGN,✗ 1 CONFLICT,NO GITorSCANNING. A◆means something happened in the last fifteen minutes. Click it for the full table; Esc closes it. - activity
- Twelve bars, one per five minutes of the last hour. A quiet hour draws twelve dots.
- ticker
- The project's git state, one sentence at a time, six seconds each. Hover to pause it. The dots below it jump to a sentence; a warning keeps its tint on its dot.
- agent counter
▶working,‖blocked,✕error,✓finished,○idle,?unknown, each with a count. It turns amber when an agent needs you; click it for the agent wall.
The footer#
Right-aligned: N tabs · M panes, then 🎨 for the window's theme, the display dials, 🪦 for the graveyard, 🔔 for notifications, 🧩 for plugins, the ▭ N% chrome size, and split ↓. Below 720 px of window width the glyphs fold into ….
Not yet#
- No keyboard resize for panes.
- The bay does not survive the window closing, which is why closing the last tab still ends its shells.
- The help screen still lists jumping between your own messages, which no key does any more.
What would prove this wrong#
If a pane you closed with Alt+W comes back with Ctrl+Shift+Z as a fresh shell instead of the one you left, with its history gone, the bay has failed at the only thing it promises.
Sources
- Splits, the pane cap, closing and the bay: main.rs (the workspace) and hold.rs; the header and faces: pane.rs and workbench.rs; documents: docopen.rs; the top bar's badge and ticker: engstate.rs.