Skip to content

Keep the screensaver dismissable when its branding cannot be shown - #11673

Open
anant1811 wants to merge 1 commit into
omacom:quattrofrom
anant1811:fix/screensaver-missing-branding
Open

anant1811 wants to merge 1 commit into
omacom:quattrofrom
anant1811:fix/screensaver-missing-branding

Conversation

@anant1811

Copy link
Copy Markdown

With ~/.config/omarchy/branding/screensaver.txt missing, ttfx exited on the spot, the poll loop keyed on a live ttfx never ran, and the outer loop relaunched it as fast as the terminal could print the error: a full-CPU, unclosable fullscreen window that only Ctrl+C could end.

Fall back to the stock wordmark when the user's branding is unreadable, track ttfx by pid rather than by tty, and end the screensaver when ttfx fails to start instead of respawning it.

Fixes #11090

Testing

New test/shell.d/screensaver-test.sh covers the fallback, the user-branding path, and that a failing ttfx is launched exactly once. Also ran both scripts under real ttfx in a pty with the branding file missing and a keypress after 1.5 s: the original never exits (355 relaunches in 6 s), the new one exits 0 on the keypress.

🤖 Generated with Claude Code

https://claude.ai/code/session_01LKJ7WaM8LCBtL91KJe3wQT

With ~/.config/omarchy/branding/screensaver.txt missing, ttfx exited on
the spot, the poll loop keyed on a live ttfx never ran, and the outer
loop relaunched it as fast as the terminal could print the error: a
full-CPU, unclosable fullscreen window that only Ctrl+C could end.

Fall back to the stock wordmark when the user's branding is unreadable,
track ttfx by pid rather than by tty, and end the screensaver when ttfx
fails to start instead of respawning it.

Fixes omacom#11090

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LKJ7WaM8LCBtL91KJe3wQT
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.

Screensaver busy-loops and cannot be dismissed when branding/screensaver.txt is missing

1 participant