Hyprland 0.55 startup monitor geometry race causes cursor confinement until hyprctl reload

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-4 and DP-5 initialize immediately

  • DP-6 takes ~3-4 seconds longer before visibly rendering

  • hyprctl monitors reports DP-6 as connected BEFORE it is visually active

  • cursor cannot move from DP-4 into DP-6

  • workspace assignment otherwise appears correct

  • wallpapers and applications can target DP-6

  • running hyprctl reload immediately 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-6 to appear in hyprctl monitors

  • delay several additional seconds before setting wallpapers

This proved:

  • DP-6 appears in hyprctl monitors before presentation readiness

  • delaying wallpaper activity did not fix the cursor issue

  • only hyprctl reload resolves 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-6 becomes active

  • hyprctl reload forces recomputation and resolves the issue


Additional Notes

This issue began immediately after upgrading to Hyprland 0.55 and was not observed previously.

It also happens to me.

Looks like discussions have already been opened on the matter. Hopefully fixed soon.

I was 50 / 50 on posting here v. actual Hyprland github. Thank you for the URL so I know its documented. Its really easy to address so its more annoying trying to initially figure it out than anything else.