A read-only mirror of https://github.com/hyprwm/hyprlock
Find a file
Michael Raitza cdef6593b6 Add password hash authentication
As an alternative to PAM authentication, password hash authentication
only relies on the availability of libgcrypt (and some program like
OpenSSL or sha256sum to create the hash).

Supports salted hashes and all hash algorithms that are available in the
actual libgcrypt installation.
2024-12-10 18:45:35 +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 Add password hash authentication 2024-12-10 18:45:35 +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 Add password hash authentication 2024-12-10 18:45:35 +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 Add password hash authentication 2024-12-10 18:45:35 +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 Add password hash authentication 2024-12-10 18:45:35 +01:00
VERSION version: bump to 0.5.0 2024-10-22 01:09:26 +01: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

Password hash configuration

If PAM authentication is unavailable to you, you can use password hash authentication via libgcrypt. Activated it by setting general:password_hash to the desired value as a string of hexadecimal numbers. You can select the hash function with general:password_hash with the default being SHA256. Other known hash functions are SHA3-256, SHA512_256 or SHAKE128. You can also salt the by setting hash_salt. Set an individual salt (and matching hash) on different systems or across different users to possibly mask that you/users are using the same password.

You can set up a new password hash by first selecting the hash function (e.g. SHA3-256) and then using OpenSSL to create the salt and hash:

# Produces 10 bytes salt
SALT=$(openssl rand -hex 10)
printf "hash_salt = %s\n" "$SALT"
# Enter your password (no echo) and press ENTER.
{ read -s v; echo "$v${SALT}" } | openssl sha3-256 -hex

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