bambouville

Custom shortcuts & remapping

Every keyboard shortcut in Tessera can be yours: remap any built-in chord, and add shortcuts of your own that type for you — fired from a hardware-keyboard chord, a chip on the accessory bar, or both.

It all lives under settings → keyboard & input → shortcuts: a summary card counts what's bound, what's changed, and what's custom, and customize… opens the editor.

The shortcuts editor over settings, listing built-in shortcuts by group with their chords and default badges, a custom group holding one created shortcut, and the + custom shortcut button below.
Every app shortcut in one editor — groups on the left, your own under custom.

Custom shortcuts

+ custom shortcut at the bottom of the editor creates one. A shortcut has:

  • a name — also the VoiceOver label for its chip,
  • sends — the text it types, sent literally, spaces included. Toggle press return afterwards to have it run immediately; the editor warns, because the command then executes the moment the shortcut fires.
  • a trigger — a recorded keyboard shortcut, an accessory bar chip, or both. At least one is required. A chip's label is either a monochrome icon from a small curated set or up to six characters of text — an emoji counts as one character.

Chips you create appear on the bar and in the layout palette under your shortcuts, and can be reordered like any other chip.

The custom shortcut sheet: a name field, keyboard shortcut and accessory bar chip toggles, an icon grid for the chip label, the text it sends, a press return afterwards toggle, and a live byte readout.
One shortcut: a name, a trigger or two, and the text it sends.

Where it applies

Each custom shortcut carries a scope:

scope meaning
everywhere every session, every transport
these hosts only the hosts you pick
this program only while a particular program is in the foreground

this program takes a literal process name (claude, vim) or a regex: prefix — the same matcher swipe-pad profiles use — so an "approve" shortcut can exist only while an agent is up. Tessera reads the foreground process through tmux, so program scoping works in auto-tmux and named tmux sessions; in a custom-command session such a shortcut stays dormant. Out-of-scope chips dim on the bar rather than disappear.

Remapping the built-ins

Tap the pencil on any row and press a new chord. The recorder answers immediately:

  • free — nothing else uses it; save.
  • already used — saving takes it, and the previous owner becomes unbound until you give it another chord.
  • rejected — a few chords can't be taken:
    • app shortcuts must include — everything without it belongs to the terminal (^E is end-of-line in every shell),
    • chords where ⌥ changes the character a key produces would never match, so the recorder refuses them,
    • iPadOS keeps a few for itself (⌘space, ⌘tab, ⌘H, ⌘W, the screenshot chords) — Tessera closes tmux windows with ⇧⌘W for exactly that reason,
    • arrows and ⌃tab are claimed by the system focus engine and can't be captured.

⌘1–⌘9 remaps as a block: you change the modifiers, the digits stay. restore all defaults puts every built-in back; your custom shortcuts are not affected.

Recording a chord needs a hardware keyboard attached — iPhone or iPad, it's the keyboard that matters, not the device. Chip-only custom shortcuts need no keyboard at all.

Glyphs or words

settings → keyboard & input → modifier notation chooses how chords are written everywhere in the app — the accessory bar, the shortcut list, window tabs, and hints:

  • glyphs — ⌘⇧E (the default),
  • words — cmd-shift-e.

A live sample under the control shows the difference before you commit.

The keyboard & input page lists every default chord.