Keyboard shortcuts¶
Baudrun binds a small set of global keyboard shortcuts for terminal zoom and the session-level actions that would otherwise be mouse-only. The session shortcuts are user-editable — see Customizing below.
Default bindings¶
| Action | macOS | Linux / Windows | Scope |
|---|---|---|---|
| Zoom in | ⌘= / ⌘+ |
Ctrl+= / Ctrl++ |
Always |
| Zoom out | ⌘- / ⌘_ |
Ctrl+- / Ctrl+_ |
Always |
| Reset zoom to default (13px) | ⌘0 |
Ctrl+0 |
Always |
| Clear terminal | ⌘K |
Ctrl+Shift+K |
Terminal view |
| Send Break | ⌘⇧B |
Ctrl+Shift+B |
Active session |
| Suspend session | ⌘⇧S |
Ctrl+Shift+S |
Active session, not already suspended |
| Cancel overflow menu / modal | Escape |
Escape |
When open |
| Abort in-flight slow paste | Escape |
Escape |
While a slow paste is sending |
Why the split scheme¶
The default bindings differ by OS because terminal devices care about what gets sent to them.
- On macOS,
⌘is never a terminal control character. So the app can use⌘Kby itself for Clear (same convention as Terminal.app and iTerm2) and pick any⌘+letterit wants without fighting for the keystroke with the device. - On Linux and Windows,
Ctrl+letteroften is a control byte a user would want to send —Ctrl+Bis STX (0x02),Ctrl+Kis VT (0x0B),Ctrl+Sis XOFF (0x13). Binding the app actions to plainCtrl+Kwould silently steal the keystroke from devices that rely on it. AddingShiftto the UI shortcuts keeps plainCtrl+*passing straight through to the device, whileCtrl+Shift+*carves out a dedicated UI layer.
You can override any of the session bindings to whatever modifier combo you prefer. The default-scheme rationale only matters if you stick with the platform defaults.
Customizing¶
Settings → Keyboard Shortcuts lets you rebind Clear, Send Break, and Suspend independently.
- Click the binding you want to change. The button flips into "Press a key…" mode.
- Press the new key combination. It's captured and saved immediately.
- Press
Escapeduring recording to cancel. - Click the ↺ button next to a binding to reset it to the platform default.
Overrides are stored in settings.json under shortcuts, keyed by
action name:
The string format is W3C aria-keyshortcuts
syntax: modifier names (Control, Meta, Alt, Shift) joined
with +, followed by the key. Missing entries fall back to the
platform default, so you can override one binding without having
to restate the others.
Discoverability¶
Each session-header button exposes its current shortcut two ways:
- Tooltip on hover, for mouse users who want to check without opening Settings.
aria-keyshortcutsattribute, announced by screen readers on focus.
Both update live when you change a binding — no app relaunch.
Interaction with the terminal¶
When the terminal view has focus, xterm captures most keystrokes
to forward to the device. The shortcut handler sits at the
window level and fires in the normal event-bubble phase, so it
doesn't intercept key events meant for the terminal — it only
claims a keystroke when the modifier+key combo matches a bound
shortcut. Plain Ctrl+C, Ctrl+Z, Ctrl+D, Ctrl+L, etc. all
continue to reach the device, sending the corresponding control
bytes.