Fold a Pane. Keep the Layout.
Look at a busy terminal window. An agent works in one pane. A test watcher runs in another. A log scrolls in a third. Somewhere in the middle, you are trying to write code.
You have three ways to make room, and each costs you something:
- Close a pane, and its program and its state are gone.
- Squeeze the panes, and everything gets too small to read.
- Maximize the pane you work in, and you hide every other pane, along with the knowledge that they exist.
Nash adds a fourth option: fold the pane.
A Strip Instead of a Pane
A folded pane collapses to a thin strip that shows its title and the folder it works in. The program inside keeps running. The panes beside the strip grow into the space it freed. When you unfold it, the pane returns to exactly the place and size it had.
Before After folding pane 1
┌─────────────────────────┐ ┌─────────────────────────┐
│ 1 agent │ │▓▓ 1 · agent ▓▓▓▓▓▓▓▓▓▓▓▓│
│ │ ├─────────────────────────┤
│ │ │ 2 tests │
├─────────────────────────┤ │ │
│ 2 tests │ │ │
│ │ ├─────────────────────────┤
├─────────────────────────┤ │ 3 server │
│ 3 server │ │ │
│ │ │ │
└─────────────────────────┘ └─────────────────────────┘Nothing was closed. The agent is still working, one row high, in plain view.
Where It Pays Off
Supervise an agent without watching it. Start a coding agent in one pane, fold it, and use the space for your editor and your tests. If you connected the agent status hooks, the tab title keeps showing whether the agent is working, waiting for you, or done. Unfold the pane when you want to read what it did.
Keep a watcher beside your code. A test runner, a dev server, or a build in watch mode only needs your eyes when it fails. Fold it while it is green, and unfold it when you care.
Tail a log you only sometimes need. Leave it in the layout, one row tall, with its title on it. You never have to remember which tab you hid it in.
One Key Pair for the Whole Ladder
A pane now has three sizes, and one pair of keys moves it between them. On
macOS, SUPER is the Command key.
| The pane is | SUPER+E (grow) | SUPER+SHIFT+E (shrink) |
|---|---|---|
| Folded | Unfolds it | Nothing |
| Normal | Maximizes it | Folds it |
| Maximized | Restores the layout | Restores the layout |
SUPER+M and SUPER+SHIFT+M walk the same ladder, so you can use whichever
pair suits your hand.
The ladder is forgiving. When you fold the pane you are in, focus moves to a
pane you can type into, because a strip has no cursor. If you then press
SUPER+E, Nash unfolds the pane you just folded. It does not maximize the
neighbor that got focus. So SUPER+E is also your undo.
Maximizing is not a trap door either. A badge such as Maximized · 2 hidden tells you that other panes exist, and a small corner marker stays until you restore the layout. Both are configurable, and both can be turned off.
Folding That Behaves
A feature like this lives or dies on its details, so we spent time on them.
- Unfolding is exact. Nash keeps your normal layout and draws strips on top of it. Fold three panes, unfold them in any order, and every pane is back in its place at its old size.
- Space goes where you expect. A pane in the top half of a column folds up and the panes below it grow. A pane in the bottom half folds down. Rows work the same way, with left and right in place of up and down.
- A column can fold completely. Fold every pane in a column, and the column collapses to a narrow band of stacked strips, with titles that read downward. The pane beside it takes the width.
- Focus is never lost. After a fold, focus lands on the closest pane you can type into. Nash refuses a fold that would leave nothing visible.
- Your program is left alone. Nash does not squeeze the pane's terminal into one row, so a full-screen program is not resized and redrawn at every fold.
- It survives restarts. Fold state is saved with your window layout. It comes back with session restore, and with a multiplexer session when you reconnect.
Make It Yours
Strips follow your theme. The strip that has focus is bright, and the others are the same color, dimmed. You can set both colors, the title size, the thickness of the band, and whether the strip shows the working folder:
[pane]
folded_pane_color = "rgba(80, 160, 255, 60%)"
folded_pane_thickness = 1.2
folded_pane_show_cwd = trueThe strips also work from the outside. nash cli fold-pane folds, unfolds, or
toggles any pane from a shell script, and Lua can do the same:
nash cli fold-pane --pane-id 3
nash cli fold-pane --pane-id 3 --unfoldTry It in a Minute
You need Nash 0.7.0 or newer. Get it from the download page, or
run nash update.
SUPER+SHIFT+D split the pane downward
CTRL+ALT+K move focus to the pane above
SUPER+SHIFT+E fold it
SUPER+E unfold it
double-click unfold any strip with the mouseStart something long in the top pane before you fold it, and watch it keep going.
Learn More
The pane folding guide has the details:
- Fold and Unfold a Pane lists every key, gesture, and command.
- The Pane Size Ladder explains grow, shrink, and the maximized cues.
- How Folding Rearranges Your Panes covers where the space goes and what happens to focus.
- Configuration, Keys and Commands, and Scripting cover customization.
- Persistence and Limits covers restore, the multiplexer, and troubleshooting.
A terminal should make room for the work in front of you, and keep the rest one keystroke away. Folding does both.
-Nash Team