Hotkeys
The four global hotkeys — push-to-talk, re-paste, read-aloud, and transform — plus the while-held combos that cycle modes and cancel a pass.
WinSTT runs four global hotkeys that work even when its window isn't focused: one to dictate, one to re-paste your last transcription, one to read a selection aloud, and one to transform selected text with the LLM. Two more actions ride on the push-to-talk key while it's held.
Where the controls live
The hotkey recorder UI sits in the Shortcuts tab — that's where you record or rebind the push-to-talk key and read the live shortcuts legend. The re-paste, read-aloud, and transform bindings are recorded in the same recorder, alongside push-to-talk.

Every binding is a uiohook-style combo string — physical-key tokens joined with +, with left/right-specific modifiers (LCtrl, RCtrl, LShift, RShift, LAlt, RAlt, LMeta). Because each token names a specific physical key, picking LMeta over a generic Meta cuts down on conflicts.
The four hotkeys
Push-to-Talk
LCtrl+LMetahotkey.pushToTalkKeyThe primary hotkey for dictation. What pressing it does depends on the active
Push-to-TalkToggle ListenWake Wordrecording mode. Capped at 3 keys (MAX_COMBO_KEYS). Recorded via
low-level uiohook — it only observes keys, so it never blocks the focused
app's own shortcuts. Hidden entirely when the recording mode is Listen
(loopback capture needs no key).
Re-paste last transcription
LCtrl+LShift+Vgeneral.repasteHotkeyRe-injects your most recent dictation into whatever window has focus — for when a paste landed in the wrong app, or you want the same text again without re-dictating. It delivers through the same path as dictation auto-paste, so it behaves identically in terminals, editors, and browsers. Silent if you haven't dictated anything yet. Press Clear (empty string) to disable it.
Re-paste is an exclusive shortcut
Unlike the other three (which passively observe keys), re-paste is registered through WinSTT's exclusive global-shortcut path and swallows the combo system-wide. While WinSTT runs, LCtrlLShiftV only re-pastes — it won't also fire the focused app's native binding (e.g. paste-without-formatting / terminal paste). That's what makes it deterministic, and why it loses its native meaning everywhere until you clear or rebind it.
Read selection aloud (TTS)
LMeta+LShift+Etts.hotkeyCaptures the active selection and reads it aloud with the text-to-speech voice. Only fires when TTS is enabled and something is selected. While the playback is running, hold the TTS hotkey together with Backspace to stop immediately.
Transform selection (LLM)
(unset)llm.transforms.hotkeyRuns the composed transform — your active tone preset plus any custom modifiers — on whatever text is currently selected, in place. Empty by default (the feature is off until you bind it). A suggested combo is LCtrlLShiftT. Single-shot per hold: it fires once, then re-arms only after you release a key, so auto-repeat can't run the LLM dozens of times. Record it on the Shortcuts tab alongside the other global hotkeys.
During dictation
Two extra actions are available while dictating. The mode cycle uses the push-to-talk key; cancel is always Escape.
Hold the hotkey and tap ↑ to advance one link in the mode chain (Push-to-Talk → Toggle → Listen → Wake Word → back to Push-to-Talk). Press Escape to cancel whatever is in flight — useful when you misspoke and want to abandon the result before it pastes. The shortcuts legend on the Shortcuts tab highlights the mode you're currently in and shows these two rows (plus the two TTS rows when TTS is enabled).
Combo format
Tokens are physical keys joined with +. Modifiers are left/right-specific.
| Combo | Meaning |
|---|---|
| LCtrl+LMeta | Left Ctrl + left platform meta key (PTT default) |
| LCtrl+LShift+V | Left Ctrl + Left Shift + V (re-paste default) |
| LMeta+LShift+E | Left Meta + Left Shift + E (TTS default) |
| LCtrl+Space | Left Ctrl + Spacebar |
| F13 | Function key 13 — great for a dedicated macro key |
| LCtrl+LShift+F9 | Left Ctrl + Left Shift + F9 |
Choosing a hotkey
Pick a combo no other app uses. Left/right-specific modifiers (LMeta rather
than a generic Meta) reduce conflicts. F13–F24 are almost never bound by
other software, which makes them excellent dedicated dictation keys —
especially on macro keyboards.
Conflict resolution
The recorder rejects a new binding inline if its key set is equal to, a subset of, or a superset of any other binding — pressing the larger combo would otherwise fire the smaller one "by accident." Two combos are only allowed when each has at least one key the other lacks (they're disjoint).
A second pass runs at startup as defense against hand-edited settings.json or a sync conflict that smuggled overlapping combos past the recorder. Its policy is anchored on push-to-talk:
| Binding | On collision |
|---|---|
| Push-to-Talk | Anchor — never rewritten. |
| Re-paste | Reset to its default if it collides with push-to-talk. |
| TTS | Reset to its default if it collides with push-to-talk or with the settled re-paste binding. |
Recording a hotkey pauses the others
While you're capturing a new combo in the recorder, the re-paste shortcut is unregistered and the TTS / transform listeners are suppressed — so the keys you press to record don't also fire those actions mid-recording.
Related
Recording modes
Push-to-talk, toggle, listen, and wake-word — what the hotkey triggers in each.
Audio & overlay
The input device, recording overlay, and the live shortcuts legend.
Text-to-speech
Enable TTS so the read-aloud hotkey is armed; pick a voice and language.
LLM cleanup
Build the composed transform that the transform hotkey runs on a selection.