Features
Language-specific Whisper prompts
Set a per-language prompt via whisper_prompt_{lang}/
Falls back to whisper_prompt when no language-specific prompt is configured.
Works across all prompt-supporting backends: REST API, faster-whisper, and pywhispercpp.
{
"whisper_prompt": "Transcribe with proper capitalization.",
"whisper_prompt_de": "Transkribiere auf Deutsch. Kein ß, immer ss."
}Parakeet model commands
hyprwhspr model list, model status, and model download now route correctly when the onnx-asr (Parakeet) backend is active.
hyprwhspr status is also backend-aware and shows Parakeet cache info when appropriate.
Fixes
hyprwhspr systemd status now streams output correctly
Previously, systemctl output was silently captured when the service was active, and wrapped in [ERROR] tags when inactive or failed.
Output now streams directly to the terminal in all cases.
Single-character word_overrides now match mid-word and are case-insensitive
Single-character overrides (e.g. "ß": "ss") previously used str.replace(), which missed uppercase variants and required exact case. They now use re.sub(..., re.IGNORECASE) without word boundaries, matching anywhere in a word — consistent with multi-character
override behavior.
"Straße" → "Strasse", "Fuß" → "Fuss"
Service starts without keyboard access when grab_keys: false (closes #139)
When no keyboard devices are accessible and grab_keys is disabled, the service now starts successfully instead of exiting.
The shortcut is silently disabled; recording control falls back to the CLI (hyprwhspr record toggle) or the recording_control FIFO.
Error messages also now suggest compositor bindings as an alternative when grab_keys: false.
Full Changelog: v1.20.0...v1.21.0
{ "word_overrides": { "ß": "ss" } }