mirror of
https://github.com/hyprwm/hyprlock.git
synced 2025-01-07 11:59:48 +01:00
cdef6593b6
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.
75 lines
2.2 KiB
Markdown
75 lines
2.2 KiB
Markdown
# 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
|
|
|
|
![](https://i.ibb.co/8Bd98BP/20240220-00h12m46s.png)
|
|
|
|
## Docs / Configuration
|
|
[See the wiki](https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock/)
|
|
|
|
### 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:
|
|
``` sh
|
|
# 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
|
|
```sh
|
|
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:
|
|
```sh
|
|
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:
|
|
```sh
|
|
sudo cmake --install build
|
|
```
|