Skip to main content

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.

ActionShortcutResult
Zoom inCtrl/Cmd + + (or =)Larger text in this pane
Zoom outCtrl/Cmd + -Smaller text in this pane
Reset to 100%Ctrl/Cmd + 0Back to your normal font size
Zoom by wheelCtrl/Cmd + mouse wheelScroll 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.

Why this matters

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.

tip

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.