Docs / Soft Key Bars and Keycodes

Soft Key Bars and Keycodes

Customizable on-screen soft key bar with tactile key modes (Press, Latch, Toggle), keycode chording, modifier latching, and 32 preset navigation keys.

Desktop Key Capabilities on Mobile Touchscreens

Touchscreen keyboards lack dedicated Function keys (F1–F12), Escape (⎋), Tab (⇥), Arrow keys (▲▼◀▶), and hardware modifier keys (Ctrl, Alt, Shift). Casshper's Soft Key Bars provide an ultra-responsive, fully customizable toolbar docked directly above the software keyboard or at the bottom of your terminal viewport, giving you instant access to all essential command-line keys.

Tactile Input Architecture

Soft key bindings dispatch directly to the Ghostty terminal core with zero input lag, supporting one-shot modifier latching, persistent toggles, command text macros, and multi-bar switching.

Operational Key Modes

Every key binding on a soft-key bar can be configured with one of three distinct operational modes:

  • Press (Momentary): Dispatches immediately upon touch-down and releases on touch-up. This is the default mode for standard navigation keys like Esc, Tab, Return, Backspace, and Arrow keys.
  • Latch (One-Shot / Sticky): Arms a modifier key or prefix action for the very next keystroke. While armed, the button highlights with an active visual state. As soon as you type the next key (for example, tapping latched Ctrl then typing C to send Ctrl+C), the engine automatically consumes the modifier and clears the latch.
  • Toggle (Persistent Switch): Locks the modifier or action state continuously active until you tap the button a second time. This is ideal for prolonged modifier workflows, multi-key navigation, or locking custom state.

Preset Keys and Custom Keycodes

Casshper includes a comprehensive catalog of 32 pre-configured preset keys and allows arbitrary keycode definitions. Keystrokes, modifiers, and chording (such as Esc, Tab, Ctrl+C, and arrow keys) are handled via Keycode (KEYCODE) bindings, while freeform command macros (such as git status, :w) are handled via Text (TEXT) bindings—not action bindings:

  • Navigation and Control: Esc (⎋), Tab (⇥), Return (↵), Space (␣), Backspace (⌫), Delete (⌦), Page Up (⇞), Page Down (⇟), Home (↖), End (↘), and Arrows (▲▼◀▶).
  • Hardware Modifiers and Chording: Ctrl (Left/Right), Alt (Left/Right), and Shift (Left/Right) with support for Press, Latch, and Toggle modes. Chord with any character (e.g. Ctrl+C) without opening a keyboard.
  • Function Keys: Dedicated presets for F1 through F12.
  • Custom Keycodes and Modifier Bitmasks: Configure custom ASCII hex keycodes with simultaneous Ctrl, Alt, or Shift modifier bitmasks in the Key Editor for KEYCODE bindings.
  • Preset Keys and Custom Key Selection: Easily choose from 32 preset keys or define custom ASCII hex keycodes to match your workflow requirements.
  • Raw Bytes and Bypass XKB Mode: Toggle raw byte mode on keycode bindings to stream escape codes and byte sequences directly into the PTY session, bypassing XKB layout translation.
  • Text Snippets and Command Macros (TEXT): Send multi-character command strings and shell snippets directly into the active session without keyboard entry.

Action Bindings and Terminal Commands

In addition to dispatching standard keycodes and text command macros, buttons on any soft-key bar can be configured as Action Bindings (ACTION). Action bindings are strictly reserved for application-level lifecycle and session operations directly without typing commands or sending raw key events into the shell:

  • Core Action Triggers: Toggle the virtual keyboard on/off, switch between active background sessions (Next, Previous, New, Close), open the session drawer, copy selection, and paste clipboard.
  • Pro Admin Triggers: Open the Sneaky Input scratchpad overlay, launch the in-session Theme Picker, or trigger soft-key bar swapping and cycling.

For a complete breakdown of every supported action, signal, and controller trigger, see our dedicated guide: Action Bindings and Terminal Commands Documentation.

Expanding to Multi-Soft Key Bars (Pro Admin)

While the Core edition includes a single fully customizable soft-key bar with 32 presets, tactile modifier modes, arbitrary keycodes, and support for 0 active bars (hiding the bar completely for full-screen workflows), Casshper Pro Admin enables unlimited custom toolbars, simultaneous multi-bar vertical stacking, and dynamic toolbar swapping or cycling.

To learn how to configure specialized toolbars for tmux, Git, and debugging, see our dedicated guide: Multi-Soft Key Bars Documentation.

Pro Admin Feature: Multi-Soft Key Bars

Creating additional custom soft-key bars, multi-bar stacking, toolbar duplication, and dynamic swapping/cycling require a Casshper Pro Admin lifetime license.

Configuring the Soft Key Bar

  1. Open Casshper and open the sidebar menu to select Settings.
  2. Navigate to the Soft Key Bars section.
  3. Select your soft-key bar to open the layout preview.
  4. Tap on any key button to open the Key Editor dialog.
  5. Set your preferred Label (supports text and emojis like , , 💥, ).
  6. Choose the Binding Type (Keycode, Text, or Action) and select your desired key preset or command.
  7. Select the Key Mode (Press, Latch, or Toggle) and toggle options such as Haptic Feedback or Auto-Repeat.
  8. Tap Save Key, then tap Save Settings to apply your configuration immediately!
Pro Tip: One-Shot Latched Modifier Chords

Set Ctrl and Alt buttons to Latch mode so you can tap Ctrl once with your thumb, and then tap any letter on your regular keyboard to send the chord. For fast access, you can also bind key sequences directly to Custom Gestures with zero-latency immediate execution.