Commit Graph

3 Commits

Author SHA1 Message Date
nnnet 8452ea1650 whisper.linux: replace pynput with Xlib XRecord for global hotkey
pynput's XRecord backend silently fails to receive keyboard events on
this system. Switch to direct Xlib XRecord API which works reliably.

- Replace pynput keyboard.Listener with Xlib XRecord context
- Hotkey in listen mode now acts as manual dictation trigger:
  LISTENING → DICTATING on press, DICTATING → LISTENING on next press
- Wake word continues to work in parallel with hotkey

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 21:15:11 +03:00
nnnet 200aa7ad0f whisper.linux: add global hotkey, fix X11 injection, improve tray UX
- Add global hotkey (Ctrl+Super) via pynput with config support
- Fix display_server auto-detection (wayland → x11)
- Fix text injection: use xdotool type directly (no clipboard pollution),
  fall back to clipboard with both PRIMARY+CLIPBOARD selections
- Fix tray icon not updating from background threads (pyqtSignal instead
  of QTimer.singleShot)
- Add blinking tray icon for RECORDING/DICTATING states
- Fix wake word → DICTATING: save active window at wake time, play end
  signal on stop, start silence timer immediately
- Reduce VAD trailing silence 300ms → 150ms for faster response
- Redesign Settings menu: hotkey always active, wake word listening
  is an independent ON/OFF toggle

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 18:18:50 +03:00
nnnet d92c33bc51 add examples/whisper.linux 2026-02-08 17:25:49 +03:00