Specialkeybars

Special Key Bar — FAQ

The special key bar is the row of buttons above the on-screen keyboard that sends keys a phone
keyboard does not have — Esc, Tab, Ctrl, arrows, function keys
and your own macros. It is fully customisable, and you can assign different layouts to different
connections.

Getting started

Where do I customise the key bar?

Settings → UI Settings → Special Key Bar Layouts

There you can edit the default layout, create your own layouts, set the bar’s colours,
toggle haptic feedback and change the arrow-key repeat rate.

Whether the bar appears at all is a separate setting, Special Key Bar,
with four options: Show always, In landscape only, In portrait only
and Off.

How do I change which keys are on the bar?
  • Tap a key slot to assign a different key to it.
  • Long-press a key slot and drag to reorder the keys.
  • Each layout has two rows — Row 1 and Row 2.

Keys are grouped into categories in the picker: Modifiers, Navigation, Arrows,
Ctrl Shortcuts, Symbols, Function Keys, Special and Macros.

Changed the default layout and want it back the way it was? Use
Reset to built-in.

Can I have more than one layout?

Yes. Alongside the default layout you can create any number of custom layouts,
duplicate an existing one, or start from the built-in Windows preset.

Layouts are assigned per connection under that connection’s
Key Bar Layouts setting. If you assign several layouts to one
connection, swipe left and right on the bar to switch between them — the dots
above the bar show which one you are on.

Custom layouts are included in sync and export, so they travel with your other settings to
your other devices.

Does the key bar work outside the SSH terminal?

Yes — the same bar is available in the remote-desktop sessions (RDP, VNC, SPICE, RustDesk).
A few keys behave differently there because a remote desktop expects real key events rather
than terminal byte sequences:

  • Modifiers (Ctrl, Alt, Shift, Meta)
    are sent as genuinely held modifier keys instead of terminal escape codes.
  • Shift+Tab is the practical way to cycle backwards through controls on a
    remote desktop.

Available keys

Modifiers

Modifiers latch: tap the modifier, then tap the key it should apply to.
They send nothing on their own.

CTRL ALT SHIFT META ⌘ ⌥

META prefixes the next character with Esc, the way Alt works in
xterm. ⌘ (Command) behaves like Meta and ⌥ (Option) like Alt in a
terminal.

Navigation, arrows and function keys
Key Sends Key Sends
Esc 0x1B Insert ESC [2~
Tab 0x09 Home ESC [H
Shift+Tab ESC [Z End ESC [F
Enter 0x0D Page Up ESC [5~
Backspace 0x7F Page Down ESC [6~
Delete ESC [3~

Arrows auto-repeat while held:
↑ ESC [A   ↓ ESC [B  
← ESC [D   → ESC [C.
The repeat speed is adjustable under Arrow repeat rate.

Function keys F1–F12 are available, and the
FN key toggles a dedicated F1–F12 row.

Ctrl shortcuts, symbols and special buttons

Ready-made Ctrl shortcuts:
^C ^D ^Z ^A ^B ^E
^R ^W ^L ^U ^K

Symbols — these route through the modifier chain, so a latched
CTRL or ALT applies to them:

/ | - ~ ` \
: ; @ # $ =
Space ! ? * + _
. , ( ) [ ]
{ } ' " < >
& ^ %

Special buttons:

  • FN — show/hide the F1–F12 row
  • ⌨ — show/hide the on-screen keyboard
  • 📋 — paste the clipboard into the terminal
  • 📄 — copy the entire terminal output, scrollback included
  • — — an empty slot, rendered as an invisible spacer

Macros

A macro is a button that sends a whole sequence of keys at once. It has two parts: the
label printed on the button, and the sequence it sends.

Example. Label :wq with sequence {esc}:wq!{enter}
saves and quits Vim in a single tap: it sends Esc, types :wq!, then
presses Enter.
How do I create a macro?
  1. Open Settings → Appearance → Special Key Bar Layouts.
  2. Edit a layout and tap the key slot you want the macro on.
  3. Choose the Macros category, then + New macro.
  4. Enter a short button label and the key sequence.
Which tokens can I use in a sequence?
Token Sends Also accepted
{esc} Esc (0x1B) —
{enter} Carriage return (0x0D) {cr} {return}
{tab} Tab (0x09) —
{shift_tab} Backtab (ESC [Z) {shifttab} {backtab}
{backspace} 0x7F {bs}
{delete} ESC [3~ {del}
{insert} ESC [2~ {ins}
{space} Space (0x20) —
{home} ESC [H —
{end} ESC [F —
{pageup} ESC [5~ {page_up} {pgup}
{pagedown} ESC [6~ {page_down} {pgdn}
{up} ESC [A {arrow_up}
{down} ESC [B {arrow_down}
{left} ESC [D {arrow_left}
{right} ESC [C {arrow_right}
{f1} … {f12} The matching function key —
{ctrl:b} Ctrl+B — any letter a–z —
{alt:x} Esc followed by x —

Tokens are case-insensitive: {ESC} and {esc} are the same.

Are there shorter ways to write the same thing?
Notation Sends
^A – ^Z Ctrl + that letter (lower case works too)
^[ Esc
\r Carriage return
\n Line feed
\t Tab
\e or \E Esc
↵ Carriage return

Anything that is not a recognised token or shorthand is sent literally as UTF-8 text — which
is what makes {esc}:wq!{enter} work: :wq! is simply typed out.

My macro prints something like “{insert}” instead of pressing the key

An unrecognised token is sent literally, so a typo shows up as the raw text on
screen. Check the spelling against the table above.

If you are on an older version of the app, note that {insert}, {home},
{end}, {pageup}, {pagedown}, the arrow tokens and
{f1}–{f12} were added later. Update the app if these print literally
for you.

Some more useful macro examples
Label Sequence What it does
:wq {esc}:wq!{enter} Save and quit in Vim
quit {esc}:q!{enter} Quit Vim without saving
top {ctrl:a} Jump to start of line (bash/readline)
clear clear{enter} Clear the screen
tmux → {ctrl:b}n Next tmux window
logout exit{enter} Close the session