Skip to content

Resync guest display after Hyprland config reloads - #179

Open
dbachelder wants to merge 1 commit into
omacom:mainfrom
dbachelder:fix/display-sync-config-reload
Open

Resync guest display after Hyprland config reloads#179
dbachelder wants to merge 1 commit into
omacom:mainfrom
dbachelder:fix/display-sync-config-reload

Conversation

@dbachelder

Copy link
Copy Markdown
Contributor

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 --once to the existing display-sync helper and invoke it after config.reloaded in 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.py passes, 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.
  • A Lua harness verified that each reload invokes one resync and that the hook is only installed for the QEMU guest.
  • make test reaches six failures/errors in existing boot-export and authentication tests on this Linux VM. The identical six reproduce on unchanged fork main (768d03d). macOS CI will provide the full-suite result.
  • make guest could 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.

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.

1 participant