keep bind as default, document bindr as alternative

This commit is contained in:
leonardotrapani
2026-03-15 15:43:14 +01:00
parent 6a64ba700f
commit 3db74580d8
2 changed files with 9 additions and 11 deletions
+4 -4
View File
@@ -80,7 +80,7 @@ systemctl --user enable --now hyprvoice.service
3. Add a keybinding (Hyprland example): 3. Add a keybinding (Hyprland example):
```bash ```bash
bindr = SUPER, R, exec, hyprvoice toggle bind = SUPER, R, exec, hyprvoice toggle
``` ```
See [Hyprland Keybindings](#hyprland-keybindings) for push-to-talk and other patterns. See [Hyprland Keybindings](#hyprland-keybindings) for push-to-talk and other patterns.
@@ -100,14 +100,14 @@ Hyprland has two bind types that matter for voice input:
- **`bind`** — fires when the key is **pressed down** - **`bind`** — fires when the key is **pressed down**
- **`bindr`** — fires when the key is **released** - **`bindr`** — fires when the key is **released**
### Simple toggle (recommended default) ### Simple toggle
```bash ```bash
# ~/.config/hypr/hyprland.conf # ~/.config/hypr/hyprland.conf
bindr = SUPER, R, exec, hyprvoice toggle bind = SUPER, R, exec, hyprvoice toggle
``` ```
Using `bindr` (release) is important: modifiers like SUPER are fully released before `hyprvoice toggle` runs, so they don't interfere with text injection. With `bind`, the modifier may still be held when text is typed, causing stuck keys or wrong characters. Each press toggles between recording and idle. If you experience issues with text injection (stuck keys, wrong characters), try `bindr` instead — it fires on key release, so modifiers like SUPER are fully released before the command runs.
### Push-to-talk (hold-to-record) ### Push-to-talk (hold-to-record)
+5 -7
View File
@@ -45,21 +45,19 @@ Hyprvoice is triggered via Hyprland keybindings. The bind type you choose affect
| Keyword | Fires on | Use for | | Keyword | Fires on | Use for |
|---------|----------|---------| |---------|----------|---------|
| `bind` | Key **press** (down) | Starting recording | | `bind` | Key **press** (down) | Simple toggle, starting recording |
| `bindr` | Key **release** (up) | Stopping recording / injecting text | | `bindr` | Key **release** (up) | Stopping recording / injecting text |
The critical difference: with `bindr`, modifier keys (SUPER, CTRL, etc.) are fully released before the command executes. This prevents modifiers from interfering with text injection — avoiding stuck keys, wrong characters, or accidental compositor actions. With `bindr`, modifier keys (SUPER, CTRL, etc.) are fully released before the command executes. This can prevent modifiers from interfering with text injection.
### Simple toggle (recommended) ### Simple toggle
A single `bindr` binding toggles recording on and off:
```bash ```bash
# ~/.config/hypr/hyprland.conf # ~/.config/hypr/hyprland.conf
bindr = SUPER, R, exec, hyprvoice toggle bind = SUPER, R, exec, hyprvoice toggle
``` ```
First release starts recording, second release stops and transcribes. This is the safest default because the keyboard is always in a clean state when text is injected. Each press toggles between recording and idle. If you run into issues with text injection (stuck keys, wrong characters), try `bindr` instead — it fires on key release so modifiers are guaranteed released before the command runs.
### Push-to-talk (hold-to-record) ### Push-to-talk (hold-to-record)