Skip to content

feat: flexible multi-hotkey bindings system#316

Closed
gabrielste1n wants to merge 1 commit intomainfrom
multi-hotkey-support
Closed

feat: flexible multi-hotkey bindings system#316
gabrielste1n wants to merge 1 commit intomainfrom
multi-hotkey-support

Conversation

@gabrielste1n
Copy link
Copy Markdown
Collaborator

Replace the single-hotkey model with a flexible bindings system where each hotkey independently configures language, activation mode (tap/push), and dictation mode (transcription/agent).

  • Data layer: HotkeyBinding type, settingsStore CRUD, migration from legacy single-key settings
  • Multi-binding registration in hotkeyManager (Map-based), windowManager callback factory, IPC payloads carry language + bindingId + dictationMode
  • Split system prompts: transcription mode uses cleanup-only prompt, agent mode uses full agent prompt, routed via getSystemPromptForMode
  • AudioManager language override (one-shot pattern) and dictationMode threading through all reasoning service providers
  • Settings UI: two-row card layout with HotkeyBindingRow (language + hotkey input on top, tap/push + dictation/agent toggles on bottom), HotkeyBindingsList with add/remove, DictationModeSelector toggle
  • Environment persistence (HOTKEY_BINDINGS in .env), preload IPC methods, cross-binding duplicate validation, 20-binding hard limit
  • i18n keys for all 10 locales

Replace the single-hotkey model with a flexible bindings system where
each hotkey independently configures language, activation mode (tap/push),
and dictation mode (transcription/agent).

- Data layer: HotkeyBinding type, settingsStore CRUD, migration from
  legacy single-key settings
- Multi-binding registration in hotkeyManager (Map-based), windowManager
  callback factory, IPC payloads carry language + bindingId + dictationMode
- Split system prompts: transcription mode uses cleanup-only prompt,
  agent mode uses full agent prompt, routed via getSystemPromptForMode
- AudioManager language override (one-shot pattern) and dictationMode
  threading through all reasoning service providers
- Settings UI: two-row card layout with HotkeyBindingRow (language +
  hotkey input on top, tap/push + dictation/agent toggles on bottom),
  HotkeyBindingsList with add/remove, DictationModeSelector toggle
- Environment persistence (HOTKEY_BINDINGS in .env), preload IPC methods,
  cross-binding duplicate validation, 20-binding hard limit
- i18n keys for all 10 locales
@gabrielste1n gabrielste1n deleted the multi-hotkey-support branch February 25, 2026 05:00
@gabrielste1n gabrielste1n restored the multi-hotkey-support branch February 25, 2026 05:02
@gabrielste1n gabrielste1n deleted the multi-hotkey-support branch March 11, 2026 23:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant