Repository navigation
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
When the wlroots Wayland output socket remains blocked, input events are currently discarded while the sending machine can remain captured. In our macOS → Hyprland setup, a temporary stall could leave emulation disabled until an explicit re-enable, making subsequent edge crossings fail.
This patch drains compositor replies, retries flush asynchronously for up to 500ms, and returns a distinct error if output remains blocked. The daemon sends Leave to its peers, destroys the old devices, and rebuilds emulation after two seconds. Recovery is limited to three attempts per rolling minute. Initialization, permission and protocol errors still require explicit re-enabling. Old handles and queued input are discarded before recovery; stale key presses are not replayed.
This is based on current main (
f1b96bd), which already includes #491. It does not include or require #473, change the wire protocol, add production dependencies, or contain machine-specific SSH supervision.Validation:
tests/wayland-recoveryand requires Python only for testing.-D warnings, daemon library clippy, formatting and whitespace checks passed.Draft boundaries: the compositor-side cause of the intermittent stalls is not established; this makes failure and recovery bounded, rather than claiming to fix Hyprland itself. Full cross-platform workspace CI and longer idle/resume testing remain pending. In particular, this is not a proven lock-screen-specific bug.