hypr-dotfiles/hypr/hosts/rutherford.lua
Jeena 5ab0277b3c hypr: bring AltGr back as rutherford's dictation key
With dictation emitted as one batch, nothing is typed while the key
is held, so AltGr's modifier no longer interferes with injection.
The long-hold release-drop quirk remains: if Hyprland swallows the
release, the recording self-heals at the 6s silence auto-stop and
the text lands a few seconds late. Calc stays bound as the
non-modifier fallback; the cheatsheet lists both.
2026-09-18 06:59:48 +09:00

34 lines
2 KiB
Lua

-- Host-specific overrides: Rutherford (desktop PC)
-- Loaded automatically by hyprland.lua via hostname detection.
hl.monitor({
output = "DP-1",
mode = "2560x1440@74.97",
position = "0x0",
scale = 1,
})
-- Bare AltGr (right Alt on the TypeMatrix) is the hold-to-talk dictation key
-- here. Raw keycode 108 (KEY_RIGHTALT) so it matches in every kb group. Press
-- starts, release stops; the scripts guard the daemon state so stray toggles
-- (key repeat, missed release) can't invert it (see keybindings.lua).
-- Kept per-host so machines that use AltGr for characters aren't affected.
-- Calc is rutherford's hold-to-talk dictation key: a single non-modifier
-- key, so nothing is held while whisrs injects text. AltGr failed both ways:
-- Hyprland drops long-hold release events for modifier keys, and the first
-- phrase injected while AltGr was held never reached the target TUI. Pause
-- (Fn+F12) works but needs two keys for a hold button, so Calc won.
-- Press starts, release stops; the scripts guard the daemon state so stray
-- toggles (key repeat, missed release) can't invert it (see keybindings.lua).
-- Kept per-host so machines that use Calc aren't affected.
hl.bind("XF86Calculator", hl.dsp.exec_cmd("~/.config/hypr/scripts/whisrs-hold-start.sh"))
hl.bind("XF86Calculator", hl.dsp.exec_cmd("~/.config/hypr/scripts/whisrs-hold-stop.sh"), { release = true })
-- AltGr is back as the preferred hold-to-talk key now that dictation is
-- batch: nothing is typed while the key is held, so the modifier no longer
-- interferes with injection. Its known quirk: Hyprland occasionally drops
-- long-hold release events for modifier keys, in which case the recording
-- runs until the 6s silence auto-stop and the text lands a few seconds
-- late. Calc remains bound as the non-modifier fallback.
hl.bind("Alt_R", hl.dsp.exec_cmd("~/.config/hypr/scripts/whisrs-hold-start.sh"))
hl.bind("ALT + Alt_R", hl.dsp.exec_cmd("~/.config/hypr/scripts/whisrs-hold-stop.sh"), { release = true })