summaryrefslogtreecommitdiffstatshomepage
path: root/dot_config/systemd/user/swayidle.service
diff options
context:
space:
mode:
authorsommerfeld <sommerfeld@sommerfeld.dev>2026-08-14 14:21:04 +0100
committersommerfeld <sommerfeld@sommerfeld.dev>2026-08-14 14:21:04 +0100
commitc678c19a30f61ab9736e206457b14b26843ae18f (patch)
tree46d4d907f9209daba8bced7855cf5f37003e71d5 /dot_config/systemd/user/swayidle.service
parent0c602b7c6b273b9a5ab7f602bd34da8b63cd8d44 (diff)
downloaddotfiles-c678c19a30f61ab9736e206457b14b26843ae18f.tar.gz
dotfiles-c678c19a30f61ab9736e206457b14b26843ae18f.tar.bz2
dotfiles-c678c19a30f61ab9736e206457b14b26843ae18f.zip
Improve Sway display recovery
Diffstat (limited to 'dot_config/systemd/user/swayidle.service')
-rw-r--r--dot_config/systemd/user/swayidle.service14
1 files changed, 8 insertions, 6 deletions
diff --git a/dot_config/systemd/user/swayidle.service b/dot_config/systemd/user/swayidle.service
index bd0dca5..2ba80e7 100644
--- a/dot_config/systemd/user/swayidle.service
+++ b/dot_config/systemd/user/swayidle.service
@@ -1,5 +1,5 @@
[Unit]
-Description=Idle manager for Wayland (lock + DPMS)
+Description=Idle manager for Wayland (dim + lock + DPMS)
PartOf=graphical-session.target
After=graphical-session.target
ConditionEnvironment=WAYLAND_DISPLAY
@@ -7,12 +7,14 @@ ConditionEnvironment=WAYLAND_DISPLAY
[Service]
Type=simple
ExecStart=%h/.nix-profile/bin/swayidle -w \
- timeout 300 'swaymsg "output * power off"' \
- resume 'swaymsg "output * power on"' \
- timeout 330 'swaylock -f -e -c 000000' \
+ timeout 300 'brightnessctl -s set 10% || true' \
+ resume 'brightnessctl -r || true' \
+ timeout 330 'pgrep -x swaylock >/dev/null || swaylock -f -e -c 000000' \
+ timeout 360 'swaymsg "output * power off"' \
+ resume '%h/.config/sway/display-wake.sh' \
timeout 1800 '%h/.local/bin/on-battery-suspend' \
- before-sleep 'playerctl -a pause; swaylock -f -e -c 000000' \
- lock 'swaylock -f -e -c 000000'
+ before-sleep 'playerctl -a pause; pgrep -x swaylock >/dev/null || swaylock -f -e -c 000000' \
+ lock 'pgrep -x swaylock >/dev/null || swaylock -f -e -c 000000'
Restart=on-failure
RestartSec=2s