loginctl lock-session triggers duplicate Lock DBus signal, spawning two hyprlock instances (input broken until mouse activity)
Hyprland version: 0.56
hyprlock version: 0.9.6
hypridle version: 0.1.7
A single before_sleep_cmd = loginctl lock-session call causes hypridle to receive the DBus Lock signal twice, spawning two hyprlock processes for one lock event. ext_session_lock_manager_v1 correctly rejects the second instance (onLockFinished called. Seems we got yeeten. Is another lockscreen running? in hyprlock's log), but the rejected instance still appears to hold input focus/rendering until some external event (mouse movement) forces a refocus to the surviving instance. Result: after resuming from suspend, keyboard input to the password field is silently dropped until the mouse is moved.
To Reproduce (hypridle.conf):
general {
lock_cmd = hyprlock > /tmp/hyprlock.log 2>&1
before_sleep_cmd = loginctl lock-session
after_sleep_cmd = hyprctl dispatch dpms on
}
Suspend (lid close), resume, attempt to type password immediately, and gets no response. Once mouse is moved, screen "refreshes" and input starts working.
hypridle log (single instance running):
[LOG] Got PrepareForSleep from dbus with sleep true
[LOG] Executing loginctl lock-session
[LOG] Process Created with pid 17308
[LOG] Got dbus .Session
[LOG] Got Lock from dbus
[LOG] Locking with hyprlock > /tmp/hyprlock.log 2>&1
[LOG] Executing hyprlock > /tmp/hyprlock.log 2>&1
[LOG] Process Created with pid 17325
[LOG] Got dbus .Session
[LOG] Got Lock from dbus
[LOG] Locking with hyprlock > /tmp/hyprlock.log 2>&1
[LOG] Executing hyprlock > /tmp/hyprlock.log 2>&1
[LOG] Process Created with pid 17332
[LOG] Wayland session got locked
hyprlock log (rejected instance):
[DEBUG]: Locking session
[DEBUG]: onLockFinished called. Seems we got yeeten. Is another lockscreen running?
Notes:
- Confirmed this is not caused by a duplicate hypridle process (
pgrep -a hypridle showed only one).
- Confirmed this is not caused by config-level duplicate lock triggers (removed the idle-timeout
loginctl lock-session listener, issue persists with only before_sleep_cmd).
- Not reproducible on a second, also fully-updated machine (intel integrated only), is this just NVIDIA PRIME + Intel integrated related? I couldn't find any error logs with this,
lock_cmd = pidof hyprlock || hyprlock masked the symptom differently (both invocations report success since pidof finds the already-running first instance), but the double Lock signal still occurs underneath.
This was heavily diagnosed with Claude, though I've read the logs myself and see the same.
Should I lwk just give this to the Github for hyprland or hypridle? I saw the issue #7391 but it says it was fixed in 2024, and would hate to bring it up again. It also appears I'm the only one with a similar issue. Happened after rebooting after the 0.56 update, but apparently it doesn't break anything? Very confused, any pointers would be appreciated
EDIT possibly related, but doubt it: dmesg shows a kernel-level warning at the exact resume timestamp: `WARNING: drivers/gpu/drm/i915/display/intel_display_power_well.c:1085 at gen9_disable_dc_states+0x2ca/0x340 [i915], CPU#11: systemd-logind` Could this be a timing issue during resume that coincides with (and could contribute to) hyprlock's focus problem. Not sure whether this is a separate i915 bug or an effect of the duplicate lock signal / focus race previously described.