Keyboard Customization
ZestSSH provides extensive keyboard customization on both desktop and mobile platforms.
Desktop Keyboard Shortcuts
Section titled “Desktop Keyboard Shortcuts”The desktop shell registers 40+ keyboard shortcuts via Flutter’s Shortcuts widget. On macOS, Ctrl is replaced with Cmd throughout.
Connection Management
Section titled “Connection Management”| Shortcut | Action |
|---|---|
Ctrl+T | Quick Connect dialog |
Ctrl+Shift+N | New Connection (open connection editor) |
Ctrl+W | Close current tab |
Ctrl+Shift+T | Reopen last closed tab |
Tab Navigation
Section titled “Tab Navigation”| Shortcut | Action |
|---|---|
Ctrl+Tab | Next tab |
Ctrl+Shift+Tab | Previous tab |
Ctrl+1 through Ctrl+9 | Jump to tab by index |
Split Panes
Section titled “Split Panes”| Shortcut | Action |
|---|---|
Ctrl+Shift+D | Split right (vertical split) |
Ctrl+Shift+E | Split down (horizontal split) |
Ctrl+\ | Close current split pane |
Ctrl+Shift+M | Toggle maximize focused pane |
Ctrl+Alt+Arrow | Move focus between panes (left/right/up/down) |
Layout Presets
Section titled “Layout Presets”| Shortcut | Action |
|---|---|
Ctrl+Alt+1 | Side-by-side (2 columns) |
Ctrl+Alt+2 | Stacked (2 rows) |
Ctrl+Alt+3 | 3 columns |
Ctrl+Alt+4 | 2x2 grid |
Ctrl+Alt+5 | Reset to single pane |
Ctrl+Alt+6 | 1 + 2 layout (one left, two right) |
Ctrl+Alt+7 | 2 + 1 layout (two left, one right) |
Ctrl+Alt+8 | 3 rows |
Terminal Operations
Section titled “Terminal Operations”| Shortcut | Action |
|---|---|
Ctrl+C | Copy selected text (when text is selected) |
Ctrl+V | Paste from clipboard |
Ctrl+F | Find / search in terminal |
Ctrl+Shift+F | SFTP file browser |
Ctrl+Shift+B | Toggle broadcast mode (type to all sessions) |
Font Size
Section titled “Font Size”| Shortcut | Action |
|---|---|
Ctrl+= | Increase font size |
Ctrl+- | Decrease font size |
Ctrl+0 | Reset font size to 14px |
Application
Section titled “Application”| Shortcut | Action |
|---|---|
Ctrl+Shift+P | Command palette |
Ctrl+B | Toggle sidebar collapse/expand |
Ctrl+, | Open settings |
Ctrl+S | Snippets panel |
F11 | Toggle fullscreen |
Command Palette
Section titled “Command Palette”The command palette (Ctrl+Shift+P) provides fuzzy-search access to all actions, connections, and settings. It mirrors VS Code’s command palette behavior:
- Type to filter commands
- Arrow keys to navigate
- Enter to execute
- Escape to dismiss
Mobile Soft Keyboard
Section titled “Mobile Soft Keyboard”On mobile (Android/iOS), ZestSSH adds a two-row toolbar above the system keyboard, styled after the JuiceSSH keyboard pattern. Both rows contain exactly 9 equal-width keys.
Normal Layout
Section titled “Normal Layout”Row 1: [ESC] [/] [|] [-] [UP] [~] [HOME] [END] [FN]Row 2: [TAB] [CTRL] [ALT] [LEFT] [DOWN] [RIGHT] [DEL] [INS] [MIC]Arrow keys form a natural inverted-T pattern because UP and DOWN are at the same column index (position 5) in their respective rows.
FN Layer
Section titled “FN Layer”Pressing FN replaces both rows with function keys and navigation:
Row 1: [<-] [F1] [F2] [F3] [F4] [F5] [F6] [F7] [F8] [F9]Row 2: [F10] [F11] [F12] [PgUp] [PgDn] [INS] [DEL] [HOME] [END] [MIC]Press <- (back arrow) to return to the normal layout.
Modifier Keys
Section titled “Modifier Keys”CTRL and ALT are sticky toggles:
- Tap once to activate (highlighted). The next key press includes the modifier.
- They are mutually exclusive — activating one deactivates the other.
- The active modifier state is exposed to the parent terminal via a
ValueNotifier<SoftKeyModifier>, allowing the terminal provider to intercept system keyboard input and apply the modifier before sending to the shell.
Microphone Button
Section titled “Microphone Button”The microphone button (MIC) activates voice-to-text input for the terminal. This is a premium feature that uses the device’s speech recognition to convert spoken words into terminal commands.
Key Repeat
Section titled “Key Repeat”On the mobile soft keyboard, holding down a key triggers key repeat via a timer. Arrow keys and deletion keys support repeat for continuous movement and character deletion. The repeat rate is hardcoded at 400ms initial delay followed by 80ms repeat interval and is not user-configurable.
Touch Gestures (Mobile)
Section titled “Touch Gestures (Mobile)”In addition to the soft keyboard, the terminal supports advanced touch gestures:
| Gesture | Action |
|---|---|
| Two-finger tap | Send Ctrl+C (interrupt) |
| Three-finger tap | Paste from clipboard |
| Two-finger horizontal swipe | Switch between active sessions |
These gestures work in conjunction with the soft keyboard modifiers.