From efa8dc53c1d9369979311b22465a1e4408d1df8d Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 7 Jun 2026 02:40:21 +0000 Subject: [PATCH] fix(doctor): correctly detect running Noctalia Shell MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR #127 introduced a Noctalia check that never matched the real process: stoa-bar launches `quickshell -c noctalia-shell`, but the pgrep patterns looked for argv[0] == 'noctalia-shell' / 'noctalia' or cmdline containing 'qs -c noctalia' (note: 'qs', not 'quickshell'). Result: doctor printed "Noctalia Shell is not running — notifications won't show" on every boot even though it was up. Collapse to a single `pgrep -f 'noctalia-shell'` — substring match over the cmdline catches all three launch shapes: quickshell -c noctalia-shell qs -c noctalia-shell noctalia-shell (AUR wrapper) --- scripts/stoa-doctor.sh | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/scripts/stoa-doctor.sh b/scripts/stoa-doctor.sh index 87cd9a2..8d68b68 100755 --- a/scripts/stoa-doctor.sh +++ b/scripts/stoa-doctor.sh @@ -160,11 +160,12 @@ else fi # Notification daemon — Noctalia owns org.freedesktop.Notifications on -# the Hyprland/Wayland path. Match either binary name to cover the -# upstream Quickshell entry point and the noctalia-shell wrapper. -if pgrep -fx 'noctalia-shell' &>/dev/null \ - || pgrep -f 'qs -c noctalia' &>/dev/null \ - || pgrep -fx 'noctalia' &>/dev/null; then +# the Hyprland/Wayland path. stoa-bar launches it as +# `quickshell -c noctalia-shell` (or `qs -c noctalia-shell`); the AUR +# noctalia-shell package also ships a launcher of the same name. Match +# the cmdline substring "noctalia-shell" with pgrep -f so we catch all +# three forms. +if pgrep -f 'noctalia-shell' &>/dev/null; then _ok "Noctalia Shell is running (notifications)" else _warn "Noctalia Shell is not running — notifications won't show"