blitztext-app-linux/linux/blitztext
mARTin-B78 436076620c audio cues: add master on/off switch; silence PortAudio teardown noise
Two follow-ups from hands-free testing:

- Audio cues had no off-switch: empty sound fields fall back to the freedesktop
  system chime, so wakeword/recording always made noise. Add a [sounds] enabled
  master flag (default true) exposed as "Play audio cues" in Settings → Input.
  When off, _play_cue/_play_sound are no-ops — fully silent operation.

- The VAD level meter (sounddevice/PortAudio) leaked harmless thread-teardown
  errors ("pthread_join ... failed", "PaUnixThread_Terminate ... failed") to the
  terminal on every clip end. PortAudio writes these straight to fd 2, so wrap
  the stream open/close in a fd-level stderr suppressor (_quiet_c_stderr).

Tests: cue gating respects the master switch (16 passed).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-06 23:45:47 +02:00
..
__init__.py Bump version to 1.2.0 and update CHANGELOG.md 2026-06-05 20:04:39 +02:00
__main__.py Add STT + LLM engine presets, rename entry to blitztext.py, macOS app icon 2026-06-04 20:21:03 +02:00
audio.py audio cues: add master on/off switch; silence PortAudio teardown noise 2026-06-06 23:45:47 +02:00
autostart.py autostart: launch the currently-running copy (source vs installed) 2026-06-06 14:50:56 +02:00
benchmark.py Benchmark: add Device column (CPU/GPU/remote); case-sensitive accuracy 2026-06-05 14:12:16 +02:00
blitztext.py Stop notification storms: transient notifications, single instance, no empty-result alerts 2026-06-06 10:42:13 +02:00
config.py audio cues: add master on/off switch; silence PortAudio teardown noise 2026-06-06 23:45:47 +02:00
daemon.py audio cues: add master on/off switch; silence PortAudio teardown noise 2026-06-06 23:45:47 +02:00
gtksettings.py audio cues: add master on/off switch; silence PortAudio teardown noise 2026-06-06 23:45:47 +02:00
gtkui.py Add tooltips and ATK screen reader accessibility properties 2026-06-05 19:28:19 +02:00
inputmode.py Add modifier-key input scheme (whisper-key style) 2026-06-04 20:26:59 +02:00
llm.py Move Whisper device/compute into Engines→STT; add LLM Type (local/cloud) 2026-06-05 09:48:26 +02:00
logbuffer.py Add Log tab + in-memory log buffer 2026-06-05 09:42:48 +02:00
notify.py Stop notification storms: transient notifications, single instance, no empty-result alerts 2026-06-06 10:42:13 +02:00
paste.py Add Wayland, Tests, CI, and OpenWakeword integration 2026-06-05 17:16:05 +02:00
quality.py Add Wayland, Tests, CI, and OpenWakeword integration 2026-06-05 17:16:05 +02:00
recorder.py Rewrite README; fix fd leak, StopIteration crash, add pip Dependabot 2026-06-05 16:01:31 +02:00
routing.py Add voice-keyword routing 2026-06-04 09:47:12 +02:00
sound.py Add custom WAV audio cues for recording start/stop 2026-06-06 09:40:09 +02:00
streaming.py Add realtime streaming and Linux app docs 2026-06-05 15:06:17 +02:00
stt.py Add realtime streaming and Linux app docs 2026-06-05 15:06:17 +02:00
transcribe.py Benchmark: add Device column (CPU/GPU/remote); case-sensitive accuracy 2026-06-05 14:12:16 +02:00
tray.py wakeword: reversible tray pause toggle; document quiet-session fixes 2026-06-06 22:17:50 +02:00
wakeword.py wakeword: reversible tray pause toggle; document quiet-session fixes 2026-06-06 22:17:50 +02:00