Skip to content

Notify users when linux-wallpaperengine exits immediately#289

Open
louzt wants to merge 1 commit into
anufrievroman:mainfrom
louzt:fix/linux-wallpaperengine-silent-crash-notification
Open

Notify users when linux-wallpaperengine exits immediately#289
louzt wants to merge 1 commit into
anufrievroman:mainfrom
louzt:fix/linux-wallpaperengine-silent-crash-notification

Conversation

@louzt
Copy link
Copy Markdown
Contributor

@louzt louzt commented May 23, 2026

Summary

Split from #279 to keep the first user-visible fix small and easy to review.

This changes the linux-wallpaperengine launch path from a shell-backgrounded command to an argv Popen() process that Waypaper can observe briefly after launch. If the renderer exits immediately, Waypaper now prints a clear message and sends a desktop notification when notify-send is available.

Why

Silent linux-wallpaperengine launch exits are hard to diagnose because the previous shell-backgrounded launch path discarded stdout/stderr and did not keep a process handle that Waypaper could check.

This PR only surfaces the immediate failure to the user. It does not include the larger logging/refactor work from #279.

What changed

  • Launch linux-wallpaperengine with argv Popen() instead of shell=True plus &.
  • Start the renderer in a new session so Waypaper does not need shell backgrounding.
  • Poll the process after a short initial delay.
  • Notify the user if the renderer exited immediately.
  • Add unit coverage for the running-process and immediate-exit paths.

Validation

python3 -m py_compile waypaper/*.py tests/test_linux_wallpaperengine_notification.py
python3 -m unittest discover -s tests
git diff --check

Result: 13 tests pass.

Follow-ups

The broader #279 branch still contains logging, fallback, process cleanup, and module-boundary hardening. Those can be rebased/split separately after this smaller piece is reviewed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant