Zoom
Make the text in a single terminal pane bigger or smaller on the fly, without touching your global font size or the rest of your layout.
TermFlow's zoom is per-pane. Each terminal owns its own zoom level, so you can blow up one pane for a demo or a screen-share while every other pane stays exactly as it was.
Controls
The zoom modifier is OS-aware: Cmd on macOS, Ctrl on Windows and Linux. All controls act on the pane your pointer or keyboard focus is in.
| Action | Shortcut | Result |
|---|---|---|
| Zoom in | Ctrl/Cmd + + (or =) | Larger text in this pane |
| Zoom out | Ctrl/Cmd + - | Smaller text in this pane |
| Reset to 100% | Ctrl/Cmd + 0 | Back to your normal font size |
| Zoom by wheel | Ctrl/Cmd + mouse wheel | Scroll up to zoom in, down to zoom out |
Each keyboard or wheel step nudges the zoom by a small, browser-style increment.
How per-pane zoom works
Zoom does not overlay or magnify pixels — it multiplies into the font size TermFlow hands that pane's terminal engine. The pane genuinely re-renders at the new size and reflows: zoom in and you get bigger text with fewer columns and rows; zoom out and you get more columns and rows of smaller text. The running program sees a real resize, so vim, htop, and other full-screen TUIs redraw correctly.
Crucially, this never changes your shared Font Size setting. Zoom is a temporary, per-pane multiplier on top of it.
+----------------------------+----------------------------+
| Pane A (zoom 100%) | Pane B (zoom 150%) |
| | |
| $ npm run build | $ npm run build |
| small, normal text | BIG text, fewer cols/rows |
| more columns fit here | reflowed for this pane |
| | only |
+----------------------------+----------------------------+
Font Size setting is unchanged for both panes
Range and steps
Zoom starts at 100% (your normal Font Size) and moves in small, browser-style steps as you press the shortcut or roll the wheel. It has sensible lower and upper bounds so a pane can never shrink to nothing or blow up past what renders cleanly, and the resulting font size is clamped to a sane rendering range regardless of how the zoom multiplier and your base Font Size combine.
An honest note: A terminal pane's zoom is ephemeral. It is not saved to disk, it is tied to that specific terminal session, and it returns to 100% if the session restarts (for example, when you use the restart action on a closed-session pane). Closing the pane forgets its zoom entirely. If you want a larger default for every pane, change the Font Size setting instead of zooming each one.
Native page zoom is blocked
Left to its defaults, the desktop webview TermFlow runs in would treat Ctrl/Cmd + +/-/0 and Ctrl/Cmd + wheel as a request to zoom the entire application chrome — tabs, buttons, and all panes at once. TermFlow deliberately intercepts and suppresses that native page zoom.
Blocking native page zoom guarantees the zoom shortcuts are the single source of truth for one surface at a time. Your tab strip, headers, and other panes never scale unexpectedly, and a hidden background tab can never steal a zoom gesture meant for the pane you're looking at.
The Settings screen has its own zoom
The Settings screen is a separate zoomable surface with the same controls (Ctrl/Cmd + +/-/0 and Ctrl/Cmd + wheel). Unlike terminal panes, the Settings screen's zoom is persisted — it survives an app restart, so if you scale Settings up once for readability it stays that way next time you open it.
The two are independent. Zooming the Settings screen has no effect on any terminal pane, and vice versa.
Next steps
- Split panes — zoom pairs naturally with side-by-side panes; scale just the one you're focused on.
- Appearance settings — set the global Font Size that zoom multiplies on top of.