Gestures
Bind taps, swipes, pinches, drags, and long-presses on the terminal, header, toolbar, and D-pad to actions or custom shortcuts.
A phone is a touch device, and Moshi's terminal treats it that way. Most common terminal actions — paste, dictate, switch sessions, send Escape, zoom a tmux pane — can be bound to a tap, swipe, drag, pinch, or long-press so you rarely need the toolbar's labelled buttons.
Configure gestures in Settings -> Input -> Gestures.
Why gestures matter
Two reasons gestures get more important on a phone than on a laptop:
- The keyboard fights you. A software keyboard already covers half the screen. Reaching for an on-screen button is slower than a swipe across what you're already looking at.
- Agents prompt often. Coding agents ask for approval, pause for input, and offer suggestions every few seconds. A double-tap-to-paste or a swipe-to-switch-window beats a precise tap on a small target every time.
Where gestures live
Moshi binds gestures across four surfaces:
- Terminal body — taps, double-tap, triple-tap, swipe, pinch, and a scroll-down threshold on the terminal screen itself.
- Terminal header — soft and hard pull-downs from the top of the session.
- Toolbar buttons — alternate actions on the keyboard, mic, Ctrl, shortcuts, and D-pad buttons (tap, double-tap, long-press).
- D-pad slots — the top-left and top-right corners of the D-pad are configurable shortcut slots.
Each binding lists the actions allowed for that gesture and shows the current choice with the default in muted text and a custom choice in accent.
Body gestures
Defaults on the terminal surface:
Header gestures
The session header has two pull-down depths so a short pull and a long pull can do different things:
Toolbar gestures
The same toolbar button can do multiple things based on how you touch it. Examples of the actions available:
The full list — including which actions are allowed per gesture — is enumerated on the Gestures settings screen.
D-pad slots
The D-pad's two top corners are shortcut slots. Each slot can be set to:
- Hide — leave the corner empty.
- Delete — send Backspace (useful when typing into agents that swallow Backspace from the toolbar).
- Interrupt — clear the current line / send a soft cancel.
- Custom shortcut — bind any captured key sequence built in the shortcut builder.
Hiding a slot is useful on smaller phones where the corners crowd the diagonal arrows.
Custom shortcuts in gestures
Most gestures accept Custom shortcut as an action. Choosing it opens the same shortcut builder used elsewhere in Moshi, so any key sequence you can type — Ctrl+R, Esc :wq, a tmux prefix chord, an agent prompt fragment — can be bound to a swipe or a long-press. See Keyboard and shortcuts for how the builder works.
Reset
The Gestures screen has a Reset all button at the bottom. It returns every binding to its default and clears any custom shortcut attached to a gesture or D-pad slot. Use it if you've experimented yourself into a corner.