feat: add opt-in always-toggle shortcut alongside push-to-talk - #1877
Open
ljden wants to merge 1 commit into
Open
feat: add opt-in always-toggle shortcut alongside push-to-talk#1877ljden wants to merge 1 commit into
ljden wants to merge 1 commit into
Conversation
Adds a "Toggle Recording" shortcut (transcribe_toggle) that always operates in toggle mode — press to start, press again to stop and transcribe — independent of the global push_to_talk setting, so one key can stay push-to-talk while another starts hands-free sessions. Off by default: a new transcribe_toggle_enabled setting gates registration everywhere transcribe_with_post_process gates on post_process_enabled, so nothing changes for existing users until they enable it in General settings. The Cancel shortcut row now shows whenever any shortcut can start a toggle-mode recording. Design note: the toggle shortcut only makes sense as a companion to push-to-talk — with push_to_talk off, the main transcribe shortcut already toggles. Its switch is therefore only shown while push-to-talk is on, and turning push-to-talk off disables (and unregisters) the toggle shortcut outright rather than suspending it, so the enabled flag always means what it says. Per-binding modes are deferred to the planned keyboard rewrite (cjpais#147). Only the English translation strings were added. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
4 tasks
|
Cross-posting for visibility: #1878 (comment) My preference would be that we have one hot key, and it's 200-300ms key up/down for toggle, or longer for PTT. This would be the best UX. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Before Submitting This PR
Please confirm you have done the following:
requests (including closed ones) to ensure this isn't a duplicate
Human Written Description
I just downloaded Handy today and after using it for a few hours it was the first feature I noticed that was missing.
There's definitely times where I want to be able to just quickly pop something in and other times where a longer bit of text is needed and therefore having the ability to do both is good.
The main thing that I didn't do here that I would have preferred to do is to change the push-to-talk pill control from the current
toggle | PTTbehaviour, to instead bedisabled | enabled, with the separate control for the toggle feature.The one other thing that I didn't do was make the default binding as unset - as it seems like that's not currently supported. That becomes more useful with the independent controls.
I did see the discussion early in the year around the fact that you weren't sure about adding this at the time, so fair enough if you want to reject it!
Related Issues/Discussions
Related to #147 — implements the two-shortcut variant proposed in the comments
(a separate toggle shortcut alongside push-to-talk), rather than the
press-vs-hold hybrid in the original post.
Design decisions worth flagging:
transcribe_toggle_enabledsetting gatesregistration exactly the way
post_process_enabledgates the post-processshortcut, so existing users see zero change (the frozen v0.9 settings-store
test still passes; the new field is
#[serde(default)], no migration).enabling this one is redundant (though harmless). It is deliberately not
gated on
push_to_talk— that would couple registration to two settings andcreate hidden-active-shortcut edge cases for a cosmetic gain. Happy to add
that gating as a follow-up if preferred; per-binding modes seem better left
to the keyboard rewrite mentioned in Auto push to talk and command line options #147.
toggle-mode recording (previously hidden whenever Push To Talk was on).
Community Feedback
In #147, @cjpais said "I like the feature you're describing", and @codepunkt /
@samleibowitz specifically asked for "defining two shortcuts, one for push to
talk and one for toggle" — which is what this PR adds.
Testing
cargo check,cargo clippy,cargo fmt --checkclean (no new warnings)cargo test: 177 passed, including the frozen v0.9 settings-storecompatibility test
bun run lint,tsc,prettier --check,vite buildall passAI Assistance
If AI was used:
checks, and manually tested the feature