diff --git a/desktop/.config/river/init b/desktop/.config/river/init index 8cd7000..7ad623e 100755 --- a/desktop/.config/river/init +++ b/desktop/.config/river/init @@ -340,16 +340,15 @@ if ! cat /etc/*-release | grep -q '^NAME=.*Void'; then unset loc fi -fi - -# start screen idle locking/dimming/sleep tool -should_start swayidle && riverctl spawn "swayidle \ + # start screen idle locking/dimming/sleep tool + should_start swayidle && riverctl spawn "swayidle \ timeout ${time_to_suspend} \"[ $(cat /sys/class/power_supply/AC/online) -eq 0 ] && systemctl suspend-then-hibernate\" timeout ${time_to_screendim} \"wlopm --off '*'\" \ resume \"wlopm --on '*'\" \ timeout ${time_to_lockscreen} \"pidof waylock || lockscreen\" \ after-resume \"wlopm --on '*'\" \ before-sleep \"pidof waylock || lockscreen\" &" +fi # bash ~/.config/bin/gtktheme # setting our gtk variables # killall polkit-gnome-authentication-agent-1 diff --git a/scripts/.local/bin/lockscreen b/scripts/.local/bin/lockscreen index 6bf7cf4..9894ee1 100755 --- a/scripts/.local/bin/lockscreen +++ b/scripts/.local/bin/lockscreen @@ -6,9 +6,9 @@ ## CONFIGURATION ############################################################## is_wayland() { - # alternative $(</proc/self/sessionid), see - # https://stackoverflow.com/questions/3214935/can-a-bash-script-tell-if-its-being-run-via-cron - if loginctl show-session "$(loginctl show-user "$(whoami)" -p Display --value)" -p Type --value | grep -q wayland; then + if command -v loginctl && loginctl show-session "$(loginctl show-user "$(whoami)" -p Display --value)" -p Type --value | grep -q wayland; then + true + elif [ "$XDG_SESSION_TYPE" = "wayland" ] || [ -n "$WAYLAND_DISPLAY" ]; then true else false @@ -22,12 +22,12 @@ waylock_options="-init-color 0x223344 -input-color 0x224444 -fail-color 0x554444 # Run before starting the locker pre_lock() { # pause all currently playing media and mute system - type mpc >/dev/null 2>&1 && mpc -q pause - type playerctl >/dev/null 2>&1 && playerctl -s pause - type amixer >/dev/null 2>&1 && amixer -q set Master mute + command -v mpc >/dev/null 2>&1 && mpc -q pause + command -v playerctl >/dev/null 2>&1 && playerctl -s pause + command -v amixer >/dev/null 2>&1 && amixer -q set Master mute # lock any pass coffins if we have them - type pass >/dev/null 2>&1 && pass close >/dev/null 2>&1 + command -v pass >/dev/null 2>&1 && pass close >/dev/null 2>&1 return } diff --git a/services/sv/swayidle/log/run b/services/sv/swayidle/log/run new file mode 100755 index 0000000..5de1af2 --- /dev/null +++ b/services/sv/swayidle/log/run @@ -0,0 +1,3 @@ +#!/usr/bin/env sh + +exec vlogger -t swayidle -p daemon diff --git a/services/sv/swayidle/run b/services/sv/swayidle/run new file mode 100755 index 0000000..fb9a063 --- /dev/null +++ b/services/sv/swayidle/run @@ -0,0 +1,20 @@ +#!/bin/sh + +time_to_lockscreen="${time_to_lockscreen:-300}" +time_to_screendim="${time_to_screendim:-600}" +time_to_suspend="${time_to_suspend:-900}" + +[ -r ./conf ] && . ./conf + +exec 2>&1 + +# usual setup: +# waylock -init-color 0x223344 -input-color 0x224444 -fail-color 0x554444 -fork-on-lock + +exec chpst -e "$TURNSTILE_ENV_DIR" swayidle \ + timeout "${time_to_suspend}" "[ $(cat /sys/class/power_supply/AC/online) -eq 0 ] && sudo zzz" \ + timeout "${time_to_screendim}" "wlopm --off '*'" \ + resume "wlopm --on '*'" \ + timeout "${time_to_lockscreen}" "pidof waylock || lockscreen" \ + after-resume "wlopm --on '*'" \ + before-sleep "pidof waylock || lockscreen"