Shortcut text follows the platform
When Omniscio tells you to press a key, it names the key your own computer has: Ctrl and Alt on Windows or Linux, Command (⌘) and Option (⌥) on a Mac. You do not have to translate anything in your head, and the Windows wording has not changed.
What it is
Omniscio ships hundreds of keyboard shortcuts, and the interface often says one out loud: an undo tooltip, a settings description, an empty state that suggests a shortcut, the guided tour, an undo confirmation, a plugin's own button label.
Each of those sentences follows the machine it is read on:
| The app says | On Windows and Linux | On a Mac |
|---|---|---|
| "Undo" | Ctrl+Z | ⌘Z |
| "Start dictating" | Alt+V | ⌥V |
| A key shown as a small cap | Ctrl, Shift, K | ⌘, ⇧, K |
The published shortcuts themselves are unchanged. Pressing the same physical keys does the same thing; only the NAME of each key follows the platform.
Where to find it
Anywhere the app writes a shortcut in words:
- the tooltip on a button that has a shortcut;
- Settings — every pane's description text and its search results;
- an empty state or a first-run hint that suggests a shortcut;
- the guided tour's steps;
- a plugin's own labels, such as Decks' undo tooltip or Supermail's snippet help.
How it behaves
The rule is automatic and has no setting. The app reads the platform once at start-up and every written-out shortcut is filled in from it.
- Windows and Linux readers see exactly what they saw before. "Ctrl+Z" stays "Ctrl+Z".
- A Mac reader sees Command and Option wherever the sentence names the app's main modifier or its alternate one.
- Translations follow too. A Mac reader using any of the app's languages sees the Mac key; the sentence is not stuck in an English-only form.
- Shortcuts you can rebind are still your own. The two or three sentences that describe a specific saved hotkey (for example the Quick Launch shortcut in its settings row) show the key you actually saved, not a fixed sentence.
One limit worth knowing: the app only changes the NAME of a modifier. Text that talks about keys Windows itself owns — the Windows key, Ctrl+Alt+Del, the warning about the input-method shortcut — stays as written, because those keys are the same on every machine that has them.
For agents
src/shared/keyboard-accelerator-display.tsis the ONLY mapping (CommandOrControl→Ctrl/⌘,Alt→Alt/⌥).modifierLabels(isMac)returns both prose labels.- Catalog prose uses
{mod}/{alt};src/shared/i18n/config.tsfills them frominterpolation.defaultVariablesat render time, from the main process's platform. An explicit call-site value still wins. Every language must carry the same placeholder. - Plugin islands seed the same two names in their own resolver (
src/plugins/vendor-sdk/shortcut-labels.ts,src/plugins/vendor-sdk/i18n.ts, andsrc/plugins/decks/src/lib/i18n.ts). - Code with no i18n calls
modifierLabel()/altLabel()(src/renderer/src/lib/keyboard-accelerator.ts). The renderer readsgetHostPlatform()(the preload's__amcHostPlatform), nevernavigator. - A stored binding (
defaultBinding,aria-keyshortcuts) keeps its canonical spelling; only the display is platform-derived. tests/unit/lint/no-hardcoded-modifier-prose.test.tsis the shrink-only ratchet; the glyph guard istests/unit/lint/no-hardcoded-command-glyph.test.ts.- The full invariants are in
.claude/memory/contracts/shortcut-prose-platform-labels-contract.md.
Related
- Keyboard shortcuts — the complete list of bindings and how to rebind them.
- Settings → Keyboard Shortcuts — where a binding is changed.
Last verified 2026-10-17