A read-only mirror of https://github.com/hyprwm/hyprlock
Find a file
moggiesir f48540fcd4
auth: Support parallel fingerprint auth (#514)
* auth: Support parallel fingerprint auth

I chose to use Fprint's dbus interface directly rather than going through pam (which uses Fprint's dbus interface) due to poor handling of system sleep somewhere between fprintd and pam. When preparing for sleep, fprintd puts the device to sleep, which causes VerifyStatus to emit with verify-unknown-error, which normally should be responded to by calling both Device.StopVerify and Device.Release (and this is what pam does). Unfortunately, if you try to release the device when the system is preparing for sleep, you'll get an error that the device is busy and then you can't can't claim or release the device for 30 seconds.

pam also has a max timeout for pam_fprintd.so of 99 seconds, and so if we used pam, we'd have to deal with the timeouts and keep restarting the auth conversation.

gdm/gnome-session lock seems to get around these issues by having a shutter on top of the lock screen that you have to interact with first that gives gnome-session a trigger to start fingerprint auth.

* nix/overlays: add sdbus overlay

---------

Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
2024-10-22 01:08:24 +01:00
.github misc: add issue templates (#440) 2024-07-24 17:52:15 +02:00
assets assets: add example.conf 2024-08-02 21:39:54 +03:00
nix auth: Support parallel fingerprint auth (#514) 2024-10-22 01:08:24 +01:00
pam Adding a pam configuration file (#115) 2024-03-02 01:49:44 +02:00
protocols background: add screenshot 2024-02-21 21:39:14 +00:00
src auth: Support parallel fingerprint auth (#514) 2024-10-22 01:08:24 +01:00
.clang-format core: initial commit 2024-02-18 23:08:03 +00:00
.gitignore Config: use hyprutils helper (#422) 2024-07-16 22:35:48 +02:00
CMakeLists.txt auth: Support parallel fingerprint auth (#514) 2024-10-22 01:08:24 +01:00
flake.lock misc: use Vector2D, Box and Mat3x3 from hyprutils (#515) 2024-10-13 13:04:32 +01:00
flake.nix core: move to hyprutils for utils (#362) 2024-06-08 23:49:49 +02:00
LICENSE Initial commit 2024-02-18 16:10:12 +00:00
README.md README: update deps 2024-10-13 13:05:11 +01:00
VERSION version: bump to 0.4.1 2024-07-21 14:00:28 +02:00

hyprlock

Hyprland's simple, yet multi-threaded and GPU-accelerated screen locking utility.

Features

  • uses the secure ext-session-lock protocol
  • full support for fractional-scale
  • fully GPU accelerated
  • multi-threaded resource acquisition for no hitches

How it looks

Docs / Configuration

See the wiki

Arch install

pacman -S hyprlock # binary x86 tagged release
# or
yay -S hyprlock-git # compiles from latest source

Building

Deps

You also need the following dependencies

  • wayland-client
  • wayland-protocols
  • mesa

And the development libraries for the following

  • cairo
  • libdrm
  • pango
  • xkbcommon
  • pam
  • hyprlang
  • hyprutils
  • libmagic (file-devel on Fedora)

Development libraries are usually suffixed with -devel or -dev in most distro repos.

You also need to install mesa-libgbm-devel on some distros like RPM based ones where its not bundled with the mesa package.

Building

Building:

cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -S . -B ./build
cmake --build ./build --config Release --target hyprlock -j`nproc 2>/dev/null || getconf _NPROCESSORS_CONF`

Installation:

sudo cmake --install build