Go to file
Manuel Stoeckl 31ebd85fe0 Separate input and auth state
This commit establishes separate state machines for auth state (whether
the password submitted is being verified or is wrong) and input state
(typing indicators and clear message -- things relevant to the state of
the password being typed in, before it is submitted.) This makes it
possible to display the auth state while updating the input state (for
example, show that the previously submitted password is 'verifying' or
'wrong' while typing another.)

The two state machines interact only when submitting a password. There
is some interference with the rendering code -- a 'cleared' message
from the input state machine supersedes verifying/wrong messages from
the auth state machine; although since the 'clear' state has a shorter
timeout than the auth 'invalid' state, this is unlikely to hide the 'wrong'
message.
2023-05-09 12:40:41 +02:00
completions build: move completions to separate file 2022-12-05 11:02:41 +01:00
include Separate input and auth state 2023-05-09 12:40:41 +02: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 Fix loss of clarity with odd-sized centered image 2022-09-10 20:04:31 +02:00
cairo.c Remove unused functions in common code 2019-01-13 21:19:43 -05:00
comm.c Use mlock for password buffer 2022-06-15 10:49:32 +02:00
LICENSE MIT license 2019-01-13 21:21:09 -05:00
log.c Implement logging and remove wlroots dependency 2019-01-14 23:30:54 -05:00
loop.c Unlock the screen on SIGUSR1 2022-09-24 12:15:53 +02:00
main.c Separate input and auth state 2023-05-09 12:40:41 +02:00
meson_options.txt Set version in project file 2019-02-05 14:19:14 +01:00
meson.build Drop support for layer-shell 2023-01-28 23:03:30 +01:00
pam.c Use mlock for password buffer 2022-06-15 10:49:32 +02:00
password-buffer.c Use mlock for password buffer 2022-06-15 10:49:32 +02:00
password.c Separate input and auth state 2023-05-09 12:40:41 +02:00
pool-buffer.c Stop pooling background surface buffers 2023-03-22 10:56:42 +01:00
README.md Drop support for layer-shell 2023-01-28 23:03:30 +01:00
render.c Separate input and auth state 2023-05-09 12:40:41 +02:00
seat.c seat: NULL-check on keyboard.modifiers event 2022-02-10 09:40:06 +01:00
shadow.c shadow: make the result of crypt() const 2022-09-26 19:58:04 +02:00
swaylock.1.scd Unlock the screen on SIGUSR1 2022-09-24 12:15:53 +02: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

On systems without PAM, you need to suid the swaylock binary:

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

Swaylock will drop root permissions shortly after startup.