swaywm/swaylock

Screen locker for Wayland

C

1,236

317 commits

updated Jul 9, 2026

See the code

README

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.

sway
wayland
wlroots

swaywm/swaylock

Screen locker for Wayland

C

1,236

317 commits

updated Jul 9, 2026

See the code

README

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.

sway
wayland
wlroots

Significant stargazers

Jake Bailey

1,255 followers · starred Feb 2019

Ulices

23 followers · starred Sep 2023

依云

2,972 followers · starred Nov 2021

Fernando Borretti

1,042 followers · starred Jan 2026