Not exit after unlock
Regression?
No
Hyprlock Info and Version
Hyprlock version v0.8.2
Hyprlock config
background {
blur_passes=3
blur_size=8
brightness=0.817200
contrast=0.891600
path=screenshot
vibrancy=0.169600
vibrancy_darkness=0.000000
}
general {
grace=0
hide_cursor=false
}
input-field {
size=250, 60
dots_center=true
dots_size=0.200000
dots_spacing=0.200000
fade_on_empty=false
font_color=rgb(200, 200, 200)
font_family=SF Pro Display Bold
halign=center
hide_input=false
inner_color=rgba(100, 114, 125, 0.5)
outer_color=rgba(0, 0, 0, 0)
outline_thickness=2
placeholder_text=<i><span foreground="##ffffff99">Whatsaaaaaaa!!!!, $USER</span></i>
position=0, -290
valign=center
}
label {
color=rgba(255, 185, 0, .6)
font_family=AlfaSlabOne
font_size=180
halign=center
position=0, 300
text=cmd[update:1000] echo -e "$(date +"%H")"
valign=center
}
label {
color=rgba(255, 255, 255, .6)
font_family=AlfaSlabOne
font_size=180
halign=center
position=0, 75
text=cmd[update:1000] echo -e "$(date +"%M")"
valign=center
}
label {
font_family=SF Pro Display Bold
font_size=30
halign=center
position=0, -80
text=cmd[update:1000] echo "<span color='##ffffff99'>$(date '+%A, ')</span><span color='##ffb90099'>$(date '+%d %B')</span>"
valign=center
}
label {
color=rgba(255, 255, 255, 0.7)
font_family=JetBrains Mono Nerd, SF Pro Display Bold
font_size=18
halign=center
position=0, 60
text=cmd[update:1000] echo "$(/nix/store/k43a6v6kdmhxp0xdx0csi8sn96ajzcds-spotify-script/bin/spotify-script)"
valign=bottom
}
Compositor Info and Version
System/Version info
Hyprland 0.49.0 built from branch at commit 81cd526f923f4a9074bbfef59b4c7e9f3350c349 ().
Date: 2025-05-23
Tag: v0.49.0, commits: 6132
built against:
aquamarine 0.8.0
hyprlang 0.6.3
hyprutils 0.7.1
hyprcursor 0.1.12
hyprgraphics 0.1.3
no flags were set
System Information:
System name: Linux
Node name: lenovo
Release: 6.14.8-cachyos
Version: #1-NixOS SMP PREEMPT_DYNAMIC Thu May 22 12:31:58 UTC 2025
GPU information:
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA106M [GeForce RTX 3060 Mobile / Max-Q] [10de:2520] (rev a1) (prog-if 00 [VGA controller])
06:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Cezanne [Radeon Vega Series / Radeon Vega Mobile Series] [1002:1638] (rev c6) (prog-if 00 [VGA controller])
NVRM version: NVIDIA UNIX Open Kernel Module for x86_64 575.51.02 Release Build (nixbld@)
os-release: ANSI_COLOR="0;38;2;126;186;228"
BUG_REPORT_URL="https://github.com/NixOS/nixpkgs/issues"
BUILD_ID="25.05.20250522.55d1f92"
CPE_NAME="cpe:/o:nixos:nixos:25.05"
DEFAULT_HOSTNAME=nixos
DOCUMENTATION_URL="https://nixos.org/learn.html"
HOME_URL="https://nixos.org/"
ID=nixos
ID_LIKE=""
IMAGE_ID=""
IMAGE_VERSION=""
LOGO="nix-snowflake"
NAME=NixOS
PRETTY_NAME="NixOS 25.05 (Warbler)"
SUPPORT_END="2025-12-31"
SUPPORT_URL="https://nixos.org/community.html"
VARIANT=""
VARIANT_ID=""
VENDOR_NAME=NixOS
VENDOR_URL="https://nixos.org/"
VERSION="25.05 (Warbler)"
VERSION_CODENAME=warbler
VERSION_ID="25.05"
plugins:
Description
I'm using this command to lock my screen pidof hyprlock || hyprlock to avoid a duplicated hyprlock running on the system if already locked the session, but sometimes when hyprlock is executed, after successfully unlocked the session, the hyprlock process gets stuck and not exit, so, pidof return the current PID and hyprlock is not executed again.
How to reproduce
1 - Execute hyprlock on terminal (to show logs)
2 - Unlock (put password)
3 - Sometimes on logs you see that after "Exit" log messages get stuck and not exit from hyprlock (the window close correctly)
Crash reports, logs, images, videos
I tried to check with GDB where is stucked the process and sems that in some place get waiting and polling an event.
Yep I was able to reproduce.
This happens when Hyprland is already locked and another hyprlock process starts (But only with misc:allow_session_lock_restore?).
I think Hyprland should send the finished event to one of them. What happens is that neither locked nor finished is sent and hyprlock never exits.
So I think it's a Hyprland bug.
In my case I dont execute another hyprlock (pidof hyprlock || hyprlock) so sems that hyprlock not receive a signal to stop or something like that after unlock
Able to reproduce directly from the console, without hypridle, executed many times and unlock, until blocked:
Get stuck there.
In difference with the normal output, missing the:
[LOG] Reached the end, exiting
Last log
New founds, only happens to me if: 1 - Change the input of my monitor (I have a multi-input display) 2 - Hyprlock triggered 3 - Come back to the input of my machine 4 - Unblock hyprlock 5 - Unbock OK but hyprlock process get stuck
Sems that the display handler or some message from hyprland or hyprlock itself referred to display is never received.
I am currently a bit busy, but i will have more time after next week to look into fixing it. Or possibly now we will see.
Sems that the display handler or some message from hyprland or hyprlock itself referred to display is never received.
Sort of. The issue seems to be directly related to the protocol.
Whenever you lock the compositor with a lock request, the compositor must either send locked or finished.
When that doesn't happen, it's a protocol error.
@lfdominguez do you have the Hyprland option misc:allow_session_lock_restore enabled?
If so, please disable it. That should fix this behaviour for now.
This option is out of protocol and only used to recover from a lockscreen that crashed.
@lfdominguez do you have the Hyprland option
misc:allow_session_lock_restoreenabled? If so, please disable it. That should fix this behaviour for now. This option is out of protocol and only used to recover from a lockscreen that crashed.
ohhh yeah, let me disable it and check if happens agai
Well disabling that config option, tried the same method of changing my display input many times and trying to lock, unlock, etc.... not get stuck.... I will wait for some days and check if no happening again
Noup, stuck on the same place, waiting for pull
Noup, stuck on the same place, waiting for pull
I doubt that, sorry.
This is an issue with allow_session_lock_restore which causes Hyprland to violate the session lock protocol a bit. There is no way the behavior you described happens without that option.
Maybe you used hyprctl --instance 0 keyword misc:allow_session_lock_restore 1 ??
humm let me check if hyprland took my changes
@PaideiaDilemma like you see here, the option is disabled
Another debugger to check where is stopped the hyprlock threads
Maybe i need to full restart hyprland, only reloaded for config load
Thanks for checking again!
I think I now understand.
1 - Change the input of my monitor (I have a multi-input display) 2 - Hyprlock triggered 3 - Come back to the input of my machine 4 - Unblock hyprlock 5 - Unbock OK but hyprlock process get stuck
That probably means that hyprlock runs without a display for a while correct?? What I would need to know is when you switch your monitor input, is hyprland left without a monitor? Does hyprland log "Entering unsafe state" when you do that?
Hi, yes, i think my LG display when change the input take down the previus one, but need to test, i will test and check
Hi, just confirming that some LG displays can be an issue, probably already known. Native display on my t420 was freezing hyprlock like that during unlocking for me. Disabling that output made it work again.
[LOG] Exposed seat name: Hyprland
[LOG] [core] dmabufFeedbackMainDevice
[LOG] output LVDS-1 name LVDS-1
[LOG] output 58 description LG Display 0x40A0 (LVDS-1)
[LOG] output 58 make LG Display model 0x40A0
[LOG] output 58 done
[LOG] output VGA-1 name VGA-1
[LOG] output 59 description Ancor Communications Inc VX229 H1LMRS015054 (VGA-1)
[LOG] output 59 make Ancor Communications Inc model VX229
[LOG] output 59 done
[LOG] output DP-1 name DP-1
[LOG] output 60 description LG Electronics LG ULTRAWIDE 0x00026F9B (DP-1)
[LOG] output 60 make LG Electronics model LG ULTRAWIDE
[LOG] output 60 done
[LOG] Running on Hyprland
[LOG] Locking session
[WARN] output 58 refu