Files
dotfiles/.config/sway/config.d/90-swayidle.conf
2025-05-26 07:39:19 +03:00

44 lines
1.9 KiB
Plaintext

# Idle and lock configuration
#
# EXAMPLE:
# This will lock your screen after 300 seconds of inactivity, then turn off
# your displays after another 60 seconds, and turn your screens back on when
# resumed. It will also lock your screen before your computer goes to sleep.
# The timeouts can be customized via `$lock_timeout` and `$screen_timeout`
# variables. For a predictable behavior, keep the `$screen_timeout` value
# lesser than the `$lock_timeout`.
#
# You can also lock the screen manually by running `loginctl lock-session` or
# add a binding for the command. Example:
# bindsym $mod+Shift+Escape exec loginctl lock-session
#
# Note that all swaylock customizations are handled via /etc/swaylock/config and
# can be overridden via $XDG_CONFIG_HOME/swaylock/config (~/.config/swaylock/config).
#
# Requires: swayidle
# Requires: swaylock
# Requires: /usr/bin/pkill, /usr/bin/pgrep
#
# exec LT="$lock_timeout" ST="$screen_timeout" LT=${LT:-300} ST=${ST:-60} && \
# swayidle -w \
# timeout $LT 'swaylock -f' \
# timeout $((LT + ST)) 'swaymsg "output * power off"' \
# resume 'swaymsg "output * power on"' \
# timeout $ST 'pgrep -xu "$USER" swaylock >/dev/null && swaymsg "output * power off"' \
# resume 'pgrep -xu "$USER" swaylock >/dev/null && swaymsg "output * power on"' \
# before-sleep 'swaylock -f' \
# lock 'swaylock -f' \
# unlock 'pkill -xu "$USER" -SIGUSR1 swaylock'
# FIXME: doesnt seem to work
exec swayidle -w \
timeout $idle_timeout 'light -G > /tmp/brightness && light -S 10' \
resume 'light -S $([ -f /tmp/brightness ] && cat /tmp/brightness || echo 100%)' \
timeout $locking_timeout 'exec $locking' \
timeout $screen_timeout 'swaymsg "output * dpms off"' \
resume 'swaymsg "output * dpms on"' \
before-sleep 'playerctl pause' \
before-sleep 'exec $locking'