Repository navigation
Replies: 1 comment
|
Formatting note: the opening post predates a check of the repository templates; the text below follows MotivationVoice input can only be started and stopped by clicking the microphone button. There is no keyboard shortcut:
For a user dictating while typing, reaching for the mouse before and after every recording interrupts the input flow. The microphone sits between the model selector and the send button, so the pointer round trip is short but constant. BehaviorAdd a configurable shortcut that toggles recording: idle → start, recording → stop and insert. Suggested defaults, chosen to avoid collisions with common editing bindings:
Where Expected behavior:
Out of scope for an initial version:
RelatedA companion bug report (a silent capture device misreported as "No speech recognized") is filed separately under Q&A. |
Uh oh!
There was an error while loading. Please reload this page.
Feature request: keyboard shortcut for voice input
Problem
Voice input can only be started and stopped by clicking the microphone button. There is no keyboard shortcut:
VoiceInputisEscape, which cancels an active recording.speech/voicerelatedglobalShortcutor menu accelerator.zh.json/en.jsoncontain onlymeta.title/meta.description— no shortcut hints.For users dictating while typing, moving to the mouse for every recording interrupts the input flow.
Proposal
Add a configurable shortcut that toggles recording — idle → start, recording → stop and insert.
Suggested defaults:
⌘⇧VCtrl+Shift+VFall back to
⌘⇧Spaceor⌘\if⌘⇧Vcollides with "paste as plain text" in the host app.Acceptance criteria
catalog,usable,locked, no active capture).preventDefault) when focus is inside the composer, so no character is typed into the draft.lockedis true, matching the button'sdisabledstate.title/aria-labeland in the plugin details page.Implementation notes
start()andfinish()already contain complete guards, so the shortcut can call them directly without duplicating validation:Bind on
documentto matchEscape's existing scope, and clean up whensessionIdchanges to avoid duplicate handlers across sessions.Out of scope
keydown/keyuppairing, key-repeat handling, and recovery when akeyupis lost on focus change (leaving recording stuck). Consider a follow-up.All reactions