Move to systemd-lock-handler instead of swayidle for locking

Swayidle will likely end up dropping logind support, and they themselves
describe it as unstable. For this reason, move to the suggested
alternative: systemd-lock-handler, and just have swayidle run the
command to trigger the logind session lock event, picked up by
systemd-lock-handler.

See <https://github.com/swaywm/swayidle/issues/117> for reference.
This commit is contained in:
ItsDrike 2022-11-20 02:48:19 +01:00
parent 89a5b15bbd
commit 1f8bebd13b
No known key found for this signature in database
GPG key ID: B014E761034AF742
4 changed files with 20 additions and 2 deletions

View file

@ -1,4 +1,2 @@
timeout 300 "hyprctl dispatch dpms off && dunstctl set-paused true" resume "hyprctl dispatch dpms on && dunstctl set-paused false"
timeout 310 "loginctl lock-session"
before-sleep swaylock -fF
lock swaylock -fF

View file

@ -0,0 +1 @@
/usr/lib/systemd/user/systemd-lock-handler.service

View file

@ -0,0 +1 @@
/home/itsdrike/.config/systemd/user/systemd-lock-handler-swaylock.service

View file

@ -0,0 +1,18 @@
[Unit]
Description=Run Swaylock screenlocker on lock dbus event (using systemd-lock-handler)
# if swaylock exists cleanly, unlock this session
OnSuccess=unlock.target
# When lock.target is stopped, stop this too
PartOf=lock.target
# Delay lock.target until this service is ready
After=lock.target
[Service]
# systemd will consider this service started when swaylock forks
# which swaylock will only do after it has locked the screen
Type=forking
ExecStart=/usr/bin/swaylock -fF
Restart=on-failure
[Install]
WantedBy=lock.target