2024-02-18 17:10:12 +01:00
|
|
|
# hyprlock
|
2024-02-19 00:08:03 +01:00
|
|
|
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
|
|
|
|
|
2024-02-19 00:10:34 +01:00
|
|
|
## How it looks
|
|
|
|
|
2024-02-20 02:00:51 +01:00
|
|
|
![](https://i.ibb.co/8Bd98BP/20240220-00h12m46s.png)
|
2024-02-19 00:10:34 +01:00
|
|
|
|
2024-02-19 18:22:26 +01:00
|
|
|
## Docs / Configuration
|
|
|
|
[See the wiki](https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock/)
|
2024-02-19 00:08:03 +01:00
|
|
|
|
2024-12-02 17:33:46 +01:00
|
|
|
### 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
|
|
|
|
```
|
|
|
|
|
2024-05-27 23:28:41 +02:00
|
|
|
## Arch install
|
|
|
|
```sh
|
2024-07-08 13:09:29 +02:00
|
|
|
pacman -S hyprlock # binary x86 tagged release
|
|
|
|
# or
|
|
|
|
yay -S hyprlock-git # compiles from latest source
|
2024-05-27 23:28:41 +02:00
|
|
|
```
|
|
|
|
|
2024-02-19 00:08:03 +01:00
|
|
|
## Building
|
|
|
|
|
|
|
|
### Deps
|
2024-03-11 16:18:22 +01:00
|
|
|
You also need the following dependencies
|
|
|
|
- wayland-client
|
|
|
|
- wayland-protocols
|
|
|
|
- mesa
|
|
|
|
|
|
|
|
And the development libraries for the following
|
|
|
|
- cairo
|
|
|
|
- libdrm
|
|
|
|
- pango
|
|
|
|
- xkbcommon
|
|
|
|
- pam
|
2024-10-13 14:05:11 +02:00
|
|
|
- hyprlang
|
|
|
|
- hyprutils
|
2024-05-04 01:11:56 +02:00
|
|
|
- libmagic (file-devel on Fedora)
|
2024-05-03 04:22:48 +02:00
|
|
|
|
2024-03-11 16:18:22 +01:00
|
|
|
Development libraries are usually suffixed with `-devel` or `-dev` in most distro repos.
|
|
|
|
|
2024-03-24 17:48:29 +01:00
|
|
|
You also need to install `mesa-libgbm-devel` on some distros like RPM based ones where its not
|
2024-03-11 16:18:22 +01:00
|
|
|
bundled with the mesa package.
|
2024-02-19 00:08:03 +01:00
|
|
|
|
|
|
|
### Building
|
|
|
|
|
|
|
|
Building:
|
|
|
|
```sh
|
|
|
|
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -S . -B ./build
|
2024-05-13 16:21:54 +02:00
|
|
|
cmake --build ./build --config Release --target hyprlock -j`nproc 2>/dev/null || getconf _NPROCESSORS_CONF`
|
2024-02-19 00:08:03 +01:00
|
|
|
```
|
|
|
|
|
|
|
|
Installation:
|
|
|
|
```sh
|
|
|
|
sudo cmake --install build
|
|
|
|
```
|