1.31.0
Thanks to community member @sqonde for a PR which greatly improves base GNOME/Mutter support. Cheers!
Also many other fixes and QoL improvements.
Added
- Added legacy setup default handling so pywhispercpp maps to Whisper CPU instead of Parakeet.
- Added Mutter detection for GNOME/Mutter Wayland injection behavior.
- Added short TTL caching for active keyboard layout detection.
- Added GNOME input-source parsing for active mru-sources, including non-XKB IME detection.
- Added notification ID fallback via direct gdbus org.freedesktop.Notifications.Notify when notify-send -p is unavailable.
- Added the same notification fallback behavior to the Hyprland tray script.
- Added setup/runtime diagnostics for:
- Keyboard allowlist entries that match no visible devices.
- Layer-shell fallback on wlroots-like sessions.
- GNOME direct typing vs. clipboard-manager behavior.
- Retired ydotool.service migration.
- Added Hyprland config reload after setup writes compositor bindings.
- Added setup summary clarity when Mic-OSD is enabled but dependencies are still missing.
Fixed
- Fixed NotificationPresenter(active_timeout_ms=0) being ignored.
- Fixed clipboard restore fallback delay to use 5.0s, matching config defaults.
- Fixed notification presenter imports in the Mic-OSD daemon path.
- Fixed Mic-OSD startup failures leaving users with no recording indicator by falling back to desktop notifications.
- Fixed backend reinstall logic so missing installed_backend no longer forces reinstall when requirements and imports are valid.
- Fixed setup printing Configuration loaded from ... twice.
- Fixed Hyprland bindings setup to use the configured install root instead of hardcoded /usr/lib/hyprwhspr.
- Fixed local setup behavior so Hyprland OSD/binding changes take effect immediately after setup where possible.
New Contributors
Full Changelog: v1.30.1...v1.31.0