--clearmodifiers releases ALL modifiers including Ctrl, so xdotool
sends bare grave (types 'v'). Instead, explicitly release only Alt
before sending Ctrl+grave so OpenWhispr receives the correct combo.
https://claude.ai/code/session_01XKYC1basxdwtHy71tky7xm
Add --clearmodifiers to xdotool so held Ctrl/Alt don't corrupt the
simulated Ctrl+` into Ctrl+Alt+`. Also add 50ms delay before stop
to let key release propagate to X11.
https://claude.ai/code/session_01XKYC1basxdwtHy71tky7xm
pynput on X11 sees key repeats as real press/release pairs, causing
rapid-fire toggling. evdev gives event.value=2 for repeats which
we simply ignore. Only real press (1) and release (0) are handled.
Requires sudo or 'input' group membership.
https://claude.ai/code/session_01XKYC1basxdwtHy71tky7xm
Super key generates rapid press/release events from key repeat.
Changed from set-based tracking to boolean flags (ctrl_held,
super_held) so repeated press events are ignored when the key
is already held. Removed min-hold cancel logic.
https://claude.ai/code/session_01XKYC1basxdwtHy71tky7xm
Python script that converts Ctrl+Super hold-to-talk into Ctrl+`
toggle pairs for OpenWhispr, working around the app's broken
Hold activation mode on Linux.
Uses pynput for key listening and xdotool to send hotkeys.
https://claude.ai/code/session_01XKYC1basxdwtHy71tky7xm
When run via `bash <(curl ...)`, bash reads the script incrementally
from a process substitution fd. If a `read < /dev/tty` call disrupts
the fd state, bash can lose its place and the remaining script lines
get fed to the interactive shell prompt as individual commands.
Wrapping everything in main() forces bash to parse the entire script
into memory before executing any of it — the standard fix for
curl-piped scripts.
Also changed README one-liner to download-then-execute pattern
(curl -o /tmp/... && bash /tmp/...) as a belt-and-suspenders approach.
https://claude.ai/code/session_01XKYC1basxdwtHy71tky7xm
Replace `exec < /dev/tty` (which hijacks bash's script-reading fd and
causes the rest of the script to be interpreted as shell commands) with
per-call `< /dev/tty` redirection on every `read` and prompt `printf`.
This preserves bash's ability to continue reading the script from the
process substitution while still getting interactive input from the
real terminal.
https://claude.ai/code/session_01XKYC1basxdwtHy71tky7xm
- Add `exec < /dev/tty` so `read` works correctly when run via
`bash <(curl ...)` — fixes script failing after pasting API keys
or clicking terminal links
- Search /opt/, /usr/lib/, /snap/bin/ and `dpkg -L` for the
open-whispr binary — fixes "Could not find openwhispr in PATH"
- Replace YOUR_USERNAME with outis1one in all files
- Show detected binary name in summary useful commands
https://claude.ai/code/session_01XKYC1basxdwtHy71tky7xm