A read-only mirror of https://github.com/hyprwm/hyprlock
Find a file
Maximilian Seidler 88b9ce48ed
core: improve dynamic output handling (#386)
* core: check for sessionLockSurface before calling render

This is needed, because when a new monitor is added via `onGlobal` the
order of the events is not guaranteed. Meaning that render for a
particular monitor might get called before a `CSessionLockSurface` for
that monitor exists.

* renderer: remove widgets for destroyed lockSurfaces

* asyncResourceGatherer: don't create duplicate dma frames for a specific stringPort

* core: remove renderer widgets in ~CSessionLockSurface instead of in onGlobalRemoved

* Revert "core: remove renderer widgets in ~CSessionLockSurface instead of in onGlobalRemoved"

This reverts commit 405aa42de8.

Because of destruction order, it is safer to do it in `onGlobalRemoved`.

* core: ditch dynamic DMAFrame generation

* core: identify DMAFrames via output size and stringPort

* core: fallback to background color for dynamic outputs with background:path=screenshot

* core: remove output pointer from DMAFrame
2024-07-02 00:45:06 +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: improve dynamic output handling (#386) 2024-07-02 00:45:06 +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