AvengeMedia / AvengeMedia/DankMaterialShell

Lock screen: fingerprint retry backoff is not reset when reopening the lid without suspend

Open
#3,403 0 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
QML
Stars
8.1k
Forks
515
Avg merge
1d 8h
Merged PRs (30d)
102

Description

### Compositor

Hyprland

### Distribution

Arch Linux

### If Other, please specify

_No response_

### Select your Installation Method

Distro Packaging

### Was this your original Installation method?

Yes

### If no, specify

_No response_

### dms doctor -vC

Click to expand

## DMS Doctor Report

**System**
- [ok] Operating System: Arch Linux
- ID: arch, Version: rolling, Arch: amd64
- [ok] Architecture: amd64
- [ok] Display Server: Wayland
- WAYLAND_DISPLAY=wayland-1

**Versions**
- [ok] DMS CLI: dms v1.6.1
- /usr/bin/dms
- [ok] Quickshell: Quickshell 0.3.1 (revision 1a4716cde794a59928d9d9fc15f2afc7a95de360, distributed by AUR (package: quickshell-git))
- /usr/bin/qs
- [ok] DMS Shell: v1.6.1
- /run/user/1000/danklinux-shell/d83248ba9119b48a

**Installation**
- [ok] DMS Configuration: Found
- /run/user/1000/danklinux-shell/d83248ba9119b48a
- [ok] shell.qml: Present
- /run/user/1000/danklinux-shell/d83248ba9119b48a/shell.qml
- [info] Install Type: Unknown
- /run/user/1000/danklinux-shell/d83248ba9119b48a

**Compositor**
- [ok] Hyprland: 0.56.2
- /usr/bin/hyprland
- [info] Active: Hyprland
- [ok] Background Blur: Supported
- Compositor supports ext-background-effect-v1

**Quickshell Features**
- [ok] Polkit: Available
- Authentication prompts
- [ok] IdleMonitor: Available
- Idle detection
- [ok] IdleInhibitor: Available
- Prevent idle/sleep
- [ok] ShortcutInhibitor: Available
- Allow shortcut management (niri)
- [ok] BackgroundBlur: Available
- Background blur API support in Quickshell

**Optional Features**
- [ok] accountsservice: Available
- User accounts
- [ok] power-profiles-daemon: Available
- Power profile management
- [ok] logind: Available
- Session management
- [ok] cups-pk-helper: Available
- Printer management
- [info] I2C/DDC: No monitors detected
- External monitor brightness control
- [ok] qt6-imageformats: Installed (5 formats)
- Formats: WebP, TIFF, GIF, JP2, ICNS (/usr/lib/qt6/plugins/imageformats:/usr/lib/qt/plugins/imageformats:/usr/lib64/qt6/plugins/imageformats)
- [ok] kimageformats: Installed (4 formats)
- Formats: AVIF, HEIF, JXL, EXR (/usr/lib/qt6/plugins/imageformats:/usr/lib64/qt6/plugins/imageformats)
- [ok] Terminal: kitty
- [ok] Network: NetworkManager
- NetworkManager present. Using NM API.
- [ok] matugen: Installed
- Dynamic theming
- [ok] cava: Installed
- Audio visualizer
- [info] khal: Not installed
- Calendar events
- [info] danksearch: Not installed
- File search
- [ok] dankcalendar: Installed
- Calendar app
- [ok] fprintd: Installed
- Fingerprint auth
- [ok] adw-gtk3: Installed
- GTK3 dynamic theming (user copy)

**Config Files**
- [ok] settings.json: Present
- /home/ismd/.config/DankMaterialShell/settings.json
- [ok] clsettings.json: Present
- /home/ismd/.config/DankMaterialShell/clsettings.json
- [ok] plugin_settings.json: Present
- /home/ismd/.config/DankMaterialShell/plugin_settings.json
- [ok] session.json: Present
- /home/ismd/.local/state/DankMaterialShell/session.json
- [ok] dms-colors.json: Present
- /home/ismd/.cache/DankMaterialShell/dms-colors.json

**Services**
- [ok] dms.service: enabled, active
- [info] greetd: Not installed
- Optional greeter service

**Environment**
- [info] QT_QPA_PLATFORMTHEME: qt6ct
- [ok] qt6ct plugin (Qt6): Installed
- /usr/lib/qt6/plugins/platformthemes/libqt6ct.so
- [info] QT_QPA_PLATFORMTHEME_QT6: Not set
- [info] QS_ICON_THEME: Not set
- [info] XDG_MENU_PREFIX: arch-

**Fonts**
- [ok] Normal Font: Inter Variable
- /run/user/1000/danklinux-shell/d83248ba9119b48a/DankCommon/assets/fonts/inter/InterVariable.ttf
- [ok] Monospace Font: Fira Code
- /run/user/1000/danklinux-shell/d83248ba9119b48a/DankCommon/assets/fonts/nerd-fonts/FiraCodeNerdFont-Regular.ttf

---
**Summary:** 0 error(s), 0 warning(s), 37 ok

### Description

Fingerprint authentication is intermittently unavailable immediately after reopening my laptop lid while the DMS lock screen is active.

This is related to #3171, but happens **without suspend/resume**. My laptop stays awake on external power when the lid is closed. Closing the lid locks the session through a Hyprland
binding:

```lua
hl.bind("switch:on:Lid Switch", hl.dsp.exec_cmd("dms ipc call lock lock"), { locked = true })
```

My logind configuration includes:

```ini
HandleLidSwitchExternalPower=ignore
```

Fingerprint authentication is enabled in DMS (`enableFprint: true`).

While the session remains locked, fingerprint verification repeatedly times out after approximately 30 seconds. DMS increases the delay between attempts until it reaches 30 seconds.
Reopening the lid during that delay does not restart verification, so the reader can remain inactive when I return.

Password authentication still works.

Environment:
- DMS: 1.6.1 (`dms-shell 1.6.1-1`)
- Hyprland: 0.56.2
- Quickshell: 0.3.1, revision 1a4716cde794a59928d9d9fc15f2afc7a95de360
- fprintd: 1.94.5-2
- libfprint: 1.94.100-1
- Arch Linux

### Expected Behavior

Reopening the lid while the session is locked should promptly make fingerprint authentication available, even when the laptop never entered suspend.

### Steps to Reproduce

1. Enable fingerprint authentication in DMS.
2. Configure lid close to lock the session while keeping the laptop awake on external power.
3. Close the lid and leave the session locked for at least five minutes, allowing several fingerprint verification timeouts.
4. Reopen the lid.
5. If this happens during the retry delay, the fingerprint reader remains inactive instead of immediately offering authentication.

Timing matters: a quick close/open may not reproduce this because the retry delay has not grown yet.

### Error Messages/Logs

Selected journal entries from September 11, 2026, with prefixes shortened:

```text
13:12:41 logind: Lid closed.
13:12:42 DMS: Screen lock active changed: true
...
14:55:04 DMS: Place your right index finger on the fingerprint reader
14:55:34 DMS: Verification timed out
14:55:34 DMS: Error while authenticating: "Authentication service cannot retrieve authentication info" (code 9)
14:55:41 logind: Lid opened.
14:55:59 DMS: Starting pam session with config "dankshell"
14:56:00 DMS: Authenticated successfully.
14:56:00 DMS: Screen lock active changed: false
```

There was no suspend/resume during this interval. I unlocked with my password before the next scheduled fingerprint retry, so this example demonstrates opening the lid during the retry gap, rather than measuring the full delay until recovery.

### Screenshots/Recordings

_No response_

Contributor guide

Open the contributing guide

Research direction

The issue points to the DMS lock screen fingerprint verification flow and the `dms ipc call lock lock` entry point; start by tracing retry scheduling and lid/lock state handling there. Reproduce with the listed lid-switch setup and confirm that reopening the lid immediately makes fingerprint authentication available and resets the retry delay, without suspend/resume.

Written by the indexing model from the issue text.

Assessment

Tech stack
linux
Domain
authentication, desktop, operating-systems
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
65/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.