Regression?
Yes
Hyprlock Info and Version
Hyprlock version v0.9.6
Hyprlock config
$font = Monospace
general {
hide_cursor = false
}
animations {
enabled = true
bezier = linear, 0, 0, 1, 1
animation = fadeIn, 1, 5, default, popin 20%
animation = fadeOut, 1, 5, default, popin 20%
animation = inputFieldDots, 1, 2, linear
}
background {
monitor =
color = rgb(132334)
}
input-field {
monitor =
size = 20%, 5%
outline_thickness = 2
inner_color = rgba(13, 23, 34, 0.0) # transparent inner, matching background hue
# Pavlova outline for normal state
outer_color = rgb(d9c894)
# Jade green for checking state
check_color = rgb(5a7c59)
# Desaturated red for fail state
fail_color = rgb(8a2e37)
font_color = rgb(d9c894) # white text
fade_on_empty = false
rounding = 0 # sharp corners, no rounding
font_family = $font
placeholder_text = <span foreground="##5d5445">Input password...</span>
fail_text = <span foreground="##8a2e37">$PAMFAIL</span>
# uncomment to use a letter instead of a dot to indicate the typed password
# dots_text_format = *
# dots_size = 0.4
dots_spacing = 0.3
# uncomment to use an input indicator that does not show the password length (similar to swaylock's input indicator)
# hide_input = true
position = 0, -20
halign = center
valign = center
}
# TIME
label {
monitor =
text = $TIME # ref. https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock/#variable-substitution
font_size = 90
font_family = $font
color = rgb(d9c894) # Pavlova for prominent time display
position = -30, 0
halign = right
valign = top
}
# DATE
label {
monitor =
text = cmd[update:60000] date +"%A, %d %B %Y" # update every 60 seconds
font_size = 25
font_family = $font
color = rgb(ffffff) # white for body text
position = -30, -150
halign = right
valign = top
}
# YUBIKEY TOUCH STATUS
label {
monitor =
text = cmd[update:1000] ~/.config/hypr/scripts/yubikey-count.sh # update every 1000ms
font_size = 30
font_family = $font
color = rgb(d9c894) # Pavlova for attention
position = 0, -120
halign = center
valign = center
}
PAM config
# PAM configuration file for hyprlock
# the 'login' configuration file (see /etc/pam.d/login)
auth sufficient pam_u2f.so pinverification=1 authfile=/etc/yubico/u2f_keys cue nouserok
auth include login
Compositor Info and Version
System/Version info
Hyprland 0.56.0 built from branch v0.56.0 at commit 36b2e0cfe0c6094dbc47bd42a437431315bb3087 clean (version: bump to 0.56.0).
Date: Mon Jul 20 07:50:48 2026
Tag: v0.56.0, commits: 7625
Libraries:
Hyprgraphics: built against 0.5.1, system has 0.5.1
Hyprutils: built against 0.14.0, system has 0.14.0
Hyprcursor: built against 0.1.13, system has 0.1.13
Hyprlang: built against 0.6.8, system has 0.6.8
Aquamarine: built against 0.13.0, system has 0.13.0
Version ABI string: 36b2e0cfe0c6094dbc47bd42a437431315bb3087_aq_0.13_hu_0.14_hg_0.5_hc_0.1_hlg_0.6
no flags were set
System Information:
System name: Linux
Node name: hypha
Release: 7.1.4-arch1-1
Version: #1 SMP PREEMPT_DYNAMIC Sat, 18 Jul 2026 17:30:57 +0000
Libraries:
Hyprgraphics: built against 0.5.1, system has 0.5.1
Hyprutils: built against 0.14.0, system has 0.14.0
Hyprcursor: built against 0.1.13, system has 0.1.13
Hyprlang: built against 0.6.8, system has 0.6.8
Aquamarine: built against 0.13.0, system has 0.13.0
GPU information:
03:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 31 [Radeon RX 7900 XT/7900 XTX/7900 GRE/7900M] [1002:744c] (rev c8) (prog-if 00 [VGA controller])
os-release: NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://archlinux.org/"
DOCUMENTATION_URL="https://wiki.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://gitlab.archlinux.org/groups/archlinux/-/issues"
PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/"
LOGO=archlinux-logo
plugins:
Explicit sync: supported
GL ver: 3.2
Backend: drm
Monitor info:
Panel DP-1: 3840x2160, DP-1 LG Electronics LG ULTRAGEAR+ 512NTTQG8001 -> backend drm
explicit ✔️
edid:
hdr ✔️
chroma ✔️
bt2020 ✔️
vrr capable ✔️
non-desktop ❌
State:
configProvider: hyprlang
backend: drm
Description
I have a login setup where I have a YubiKey + PIN with a fallback password if the YubiKey is not present. This is done through pam_u2f.so PAM module, configured in /etc/pam.d/hyprlock.
When the computer resumes from suspend and hyprlock is active, the first unlock attempt will always fail. The second attempt always succeeds. This issue seems to be introduced with 927e09f, and can't be replicated on d332164. This only happens through the FIDO2 PIN (pam_u2f.so) path, changing the pam config to Unix password authentication obviously works fine.
How to reproduce
- Configure hyprlock to use
pam_u2f.so
- Plug in YubiKey
- Lock the screen with hyprlock
- Suspend
- Try to unlock
Crash reports, logs, images, videos
bisect-bad.log
bisect-good.log
Regression?
Yes
Hyprlock Info and Version
Hyprlock version v0.9.6
Hyprlock config
PAM config
Compositor Info and Version
System/Version info
Description
I have a login setup where I have a YubiKey + PIN with a fallback password if the YubiKey is not present. This is done through
pam_u2f.soPAM module, configured in/etc/pam.d/hyprlock.When the computer resumes from suspend and hyprlock is active, the first unlock attempt will always fail. The second attempt always succeeds. This issue seems to be introduced with 927e09f, and can't be replicated on d332164. This only happens through the FIDO2 PIN (
pam_u2f.so) path, changing the pam config to Unix password authentication obviously works fine.How to reproduce
pam_u2f.soCrash reports, logs, images, videos
bisect-bad.log
bisect-good.log