A read-only mirror of https://github.com/hyprwm/hyprlock
Find a file
Maximilian Seidler 318c00d6d0
core: stabilize label updates and revision locking in the asyncResourceGatherer (#384)
* core: handle rerendering when frameCallback is pending

* core: log when skipping label updates

* asyncResourceGatherer: remove busy and use loopMutex

Makes getAssetById fail less often and thus labels get more stable
updates

* asyncResourceGatherer: revision locking

`assetsMutex` was not needed, since `apply` only gets called from the
main thread and resources are also only aquired via the main thread.

`preloadTargets`, previously kinda guarded by the `busy` flag are now
locked as suggested in #367 (but via a copy of `peloadTargets`).

`apply` now returns a boolean so that the locking of preloadTargets in
combination with checking `preloadTargets.empty()` is a bit nicer.

* asyncResourceGatherer: remove explicit template arg for unique lock
2024-06-26 20:31:15 +02:00
.github/workflows Nix & CI: init 2024-02-20 14:37:12 +02:00
nix core: move to hyprutils for utils (#362) 2024-06-08 23:49:49 +02: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 core: stabilize label updates and revision locking in the asyncResourceGatherer (#384) 2024-06-26 20:31:15 +02:00
.clang-format core: initial commit 2024-02-18 23:08:03 +00:00
.gitignore core: Add support for JPEG and WEBP background images (#286) 2024-04-24 18:06:14 +01:00
CMakeLists.txt core: move to hyprutils for utils (#362) 2024-06-08 23:49:49 +02:00
flake.lock core: move to hyprutils for utils (#362) 2024-06-08 23:49:49 +02: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: Add Arch instructions 2024-05-29 15:54:37 +03: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

yay -S hyprlock-git

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 >= 0.4
  • 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