You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
hyprwhspr setup auto --no-systemd already exists, and the main application can run as a foreground daemon with its own lock file. This makes most of the runtime look close to supervisor-agnostic already.
However, the Noctalia/Waybar integration and parts of the CLI still assume a systemd user service. In particular, config/hyprland/hyprwhspr-tray.sh calls systemctl --user directly for status/start/stop/restart. As a result, a daemon supervised by runit would be reported as stopped and the widget controls would not work, even though recording itself is controlled through hyprwhspr's runtime FIFO.
The README also currently lists systemd as a prerequisite, while the CLI exposes --no-systemd.
Proposed scope
Would you be open to a PR that completes the existing non-systemd path while preserving systemd as the default?
Possible approach:
Detect a foreground/supervised daemon by its lock/PID/process when no active systemd unit exists.
Make tray/Noctalia recording controls work with an already-running non-systemd daemon.
Add clean SIGTERM handling so supervisors such as runit can stop the daemon without skipping application cleanup.
Add a small runit service example and documentation for Void Linux.
Keep installation/service-manager abstraction limited in the first PR; full Void dependency automation could be separate.
A more generic supervisor-neutral approach would also help OpenRC, s6, dinit, and compositor-autostart users, rather than special-casing only runit.
I can implement and test this on Void Linux with runit, Niri, Noctalia v5, and the in-process ONNX-ASR/Parakeet backend. Before preparing the PR, I wanted to check which scope and service-manager interface you would prefer.
Note
This issue has been written with AI help.
Environment
Context
hyprwhspr setup auto --no-systemdalready exists, and the main application can run as a foreground daemon with its own lock file. This makes most of the runtime look close to supervisor-agnostic already.However, the Noctalia/Waybar integration and parts of the CLI still assume a systemd user service. In particular,
config/hyprland/hyprwhspr-tray.shcallssystemctl --userdirectly for status/start/stop/restart. As a result, a daemon supervised by runit would be reported as stopped and the widget controls would not work, even though recording itself is controlled through hyprwhspr's runtime FIFO.The README also currently lists systemd as a prerequisite, while the CLI exposes
--no-systemd.Proposed scope
Would you be open to a PR that completes the existing non-systemd path while preserving systemd as the default?
Possible approach:
SIGTERMhandling so supervisors such as runit can stop the daemon without skipping application cleanup.A more generic supervisor-neutral approach would also help OpenRC, s6, dinit, and compositor-autostart users, rather than special-casing only runit.
I can implement and test this on Void Linux with runit, Niri, Noctalia v5, and the in-process ONNX-ASR/Parakeet backend. Before preparing the PR, I wanted to check which scope and service-manager interface you would prefer.