Feature/suspend lock - Ensure Desktop is locked after resume #13423
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR solves a problem that has been annoying me for a long time—when the load is too high when opening my laptop, you could sometimes see the content for a few seconds. The problem is apparently well known. The PR solves the problem at the JavaScript level. It works pretty well on my laptop. Details are summarized here in a more officially tone:
Add universal pre-suspend screen lock manager
Summary
This module fixes a race condition where the desktop can be briefly visible after resume when the system is under heavy CPU load. It ensures the screen is always locked before suspend completes, regardless of which screensaver is installed.
Problem
When suspending under heavy CPU load, there's a timing window where:
Solution
The SuspendLockManager uses systemd-logind's delay inhibitor mechanism:
Features
Defense in Depth
This acts as a safety net alongside cinnamon-settings-daemon's existing lock-on-suspend functionality, ensuring the lock always completes before suspend regardless of system load or timing issues.