Description
After upgrading to Hyprland 0.55, I am experiencing a startup race condition involving monitor geometry/layout initialization.
On startup, one monitor (DP-6) appears to register as connected before it is fully presentation-ready. As a result, the cursor cannot move from DP-4 to DP-6 until running:
hyprctl reload
Once hyprctl reload is executed, monitor geometry and cursor movement behave correctly immediately.
This issue is reproducible on every startup.
Environment
-
Hyprland: 0.55
-
GPU: AMD Radeon RX 6900 XT
-
Driver: Mesa / amdgpu
-
Kernel: Linux 7.0.5-2-cachyos
Monitor Topology
# Main ultrawide
monitor = DP-4, 5120x1440@120, 0x0, 1
# Above DP-4
monitor = DP-5, 3440x1440@60, 840x-1440, 1
# Right of DP-4
monitor = DP-6, 3840x2160@60, 5120x0, 1
Observed Behavior
During startup:
-
DP-4andDP-5initialize immediately -
DP-6takes ~3-4 seconds longer before visibly rendering -
hyprctl monitorsreportsDP-6as connected BEFORE it is visually active -
cursor cannot move from
DP-4intoDP-6 -
workspace assignment otherwise appears correct
-
wallpapers and applications can target
DP-6 -
running
hyprctl reloadimmediately fixes cursor boundaries/layout
This smells like monitor geometry or cursor bounds are computed before DP-6 is fully initialized.
Important Diagnostic Observation
I initially suspected a custom wallpaper rotation tool I wrote was interacting with monitor startup timing.
I modified the tool to:
-
wait for
DP-6to appear inhyprctl monitors -
delay several additional seconds before setting wallpapers
This proved:
-
DP-6appears inhyprctl monitorsbefore presentation readiness -
delaying wallpaper activity did not fix the cursor issue
-
only
hyprctl reloadresolves the incorrect cursor bounds
This leads me to believe this is compositor-side rather than application-side.
Temporary Workaround
Adding a delayed reload during startup reliably fixes the issue:
exec-once = bash -c 'sleep 8; hyprctl reload'
After the delayed reload:
-
cursor movement works correctly
-
monitor geometry behaves correctly
-
no further issues occur
Suspected Cause
This appears to be a startup race involving:
-
monitor hotplug/activation timing
-
geometry finalization
-
cursor region computation
Specifically:
-
monitor registration appears to occur before the output is fully ready for presentation
-
layout/cursor bounds are not recomputed once
DP-6becomes active -
hyprctl reloadforces recomputation and resolves the issue
Additional Notes
This issue began immediately after upgrading to Hyprland 0.55 and was not observed previously.