Resync guest display after Hyprland config reloads - #179
Open
dbachelder wants to merge 1 commit into
Open
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.
A Hyprland configuration reload can restore Aquamarine's cached preferred display mode without generating a DRM hotplug event. After a VM window resize, the guest can therefore render at the old dimensions while absolute pointer input follows the current window, making clicks land away from the visible controls.
Add
--onceto the existing display-sync helper and invoke it afterconfig.reloadedin the QEMU guest profile. Both reload and hotplug synchronization reread Omarchy's numeric zoom setting; automatic zoom still follows live EDID density, and resized modes select the nearest scale with integral logical dimensions. This reuses the existing EDID decoder and does not create another watcher on each reload.Validation:
python3 guest/tests/verify.pypasses, including regression coverage for resync without hotplug, explicit zoom on reload and hotplug, fresh EDID/zoom reads, valid-scale adjustment, and return to automatic zoom.make testreaches six failures/errors in existing boot-export and authentication tests on this Linux VM. The identical six reproduce on unchanged forkmain(768d03d). macOS CI will provide the full-suite result.make guestcould not build because Docker is unavailable here. No supply-chain pins or checksums changed.The original desktop incident was cleared by applying the live EDID: the guest changed from stale 6016×3384 to current 4112×2582. The reload gap is verified in the integration code; the exact event that initiated that incident was not captured.
Reviewed first in dbachelder#4.