Screen locker for Wayland
  • C 89.5%
  • Shell 5.6%
  • Meson 4.9%
Find a file
2026-03-09 18:00:43 +01:00
completions build: move completions to separate file 2022-12-05 11:02:41 +01:00
include Better handle subprocess crashes 2025-03-12 11:17:13 +01:00
pam Remove FreeBSD-specific PAM configuration 2020-01-06 13:18:25 -07:00
.build.yml Remove references to pango 2019-01-23 12:20:24 +00:00
.editorconfig Add editorconfig 2021-11-19 09:20:25 +01:00
.gitignore Convert swaylock into standalone project 2019-01-13 21:16:47 -05:00
background-image.c Correct for image orientation when loading image 2024-06-14 22:41:03 +02:00
cairo.c Remove unused functions in common code 2019-01-13 21:19:43 -05:00
comm.c fix missing include for sigaction 2025-08-09 09:08:53 +02:00
LICENSE MIT license 2019-01-13 21:21:09 -05:00
log.c Use bright black rather than black for LOG_DEBUG 2025-11-18 14:35:39 +01:00
loop.c Define _POSIX_C_SOURCE globally 2025-03-18 22:31:01 +01:00
main.c check for pending callback on destroy_surface 2025-08-16 16:22:15 +02:00
meson.build build: bump version to 1.8.5 2026-03-09 18:00:43 +01:00
meson_options.txt Set version in project file 2019-02-05 14:19:14 +01:00
pam.c pam: only send the password once per conversation 2026-02-08 11:52:04 +01:00
password-buffer.c Define _POSIX_C_SOURCE globally 2025-03-18 22:31:01 +01:00
password.c Only submit password if previous validation completed 2025-03-16 16:13:09 +01:00
pool-buffer.c Define _POSIX_C_SOURCE globally 2025-03-18 22:31:01 +01:00
README.md Clarify setup instructions without PAM 2025-10-15 11:02:24 +02:00
render.c Always set wl_buffer scale 2026-02-14 18:16:11 +01:00
seat.c seat: don't abort on wl_keyboard.keymap_format.no_keymap 2026-02-09 15:11:39 +01:00
shadow.c Define _POSIX_C_SOURCE globally 2025-03-18 22:31:01 +01:00
swaylock.1.scd Add short example of config file to man page 2026-02-14 11:20:02 +01:00
unicode.c Delete whole utf8 character on backspace 2022-03-22 22:11:27 +01:00

swaylock

swaylock is a screen locking utility for Wayland compositors. It is compatible with any Wayland compositor which implements the ext-session-lock-v1 Wayland protocol.

See the man page, swaylock(1), for instructions on using swaylock.

Release Signatures

Releases are signed with E88F5E48 and published on GitHub. swaylock releases are managed independently of sway releases.

Installation

From Packages

Swaylock is available in many distributions. Try installing the "swaylock" package for yours.

Compiling from Source

Install dependencies:

  • meson *
  • wayland
  • wayland-protocols *
  • libxkbcommon
  • cairo
  • gdk-pixbuf2 **
  • pam (optional)
  • scdoc (optional: man pages) *
  • git *

* Compile-time dep
** Optional: required for background images other than PNG

Run these commands:

meson build
ninja -C build
sudo ninja -C build install
Without PAM

On systems without PAM, swaylock uses shadow.h.

Systems which rely on a tcb-like setup (either via musl's native support or via glibc+tcb), require no further action.

For most other systems, where passwords for all users are stored in /etc/shadow, swaylock needs to be installed suid:

sudo chmod a+s /usr/local/bin/swaylock

Optionally, on systems where the file /etc/shadow is owned by the shadow group, the binary can be made sgid instead:

sudo chgrp shadow /usr/local/bin/swaylock
sudo chmod g+s /usr/local/bin/swaylock

Swaylock will drop root permissions shortly after startup.