Stop screensaver busy-loop when branding text is missing - #11146
caueguerra wants to merge 1 commit into
Conversation
Fall back to $OMARCHY_PATH/logo.txt when the user branding file is absent, and exit instead of relaunching ttfx when it fails to start.
|
Another reason to merge this: the same An orphaned instance (terminal gone, reparented to It still happens on current master (4.0.0.r6687.gb18ab49). Repro, stopped after one second: setsid -f omarchy-screensaver </dev/null >/dev/null 2>&1
sleep 1; pgrep -xc ttfx # I get 8 -> 19 -> 29 at 0.25s steps
pkill -f '/omarchy-screensaver$'; pkill -x ttfx
hyprctl keyword cursor:invisible falseThis PR tracks |
|
Reviewed at dd1d7c7 against Reproduced. With Tests. The new Exiting on a non-zero Related. It closes #11090. #6813, #11178 and #11626 rewrite the same loop as part of larger changes and will conflict with this one. None of them is a focused fix for this bug. Second opinion. None ran: the reviewer answered a ping, but the day's review budget was already spent. This review is Claude Opus 5.5's alone, and that is why this is labelled |
If
~/.config/omarchy/branding/screensaver.txtis missing,ttfxexits immediately andomarchy-screensaverrelaunches it in a tight loop. The keyboard poll lives insidewhile pgrep, so Escape never dismisses it — only Ctrl+C works. To the user this looks like a crashed fullscreen terminal floodingError reading input file.$OMARCHY_PATH/logo.txt(the same fileomarchy branding screensaver resetalready copies).ttfxchild and exit when it fails, so a missing/unreadable file cannot spin the CPU. A clean effect completion still relaunches the next random effect.Fixes #11090