Make system-sleep-menu.sh more flexible

This commit is contained in:
Alexander Rosenberg 2024-05-16 04:18:17 -07:00
parent 9c80e72e37
commit 9301bb1bb4
Signed by: Zander671
GPG Key ID: 5FD0394ADBD72730

View File

@ -1,6 +1,10 @@
#!/usr/bin/env zsh
pgrep swayidle && swayidle_state="Enabled" || swayidle_state="Disabled"
local CACHE_PATH="${HOME}/.cache/system-sleep-menu"
pgrep swayidle >/dev/null 2>&1 \
&& swayidle_state="Enabled" \
|| swayidle_state="Disabled"
choice="$(fuzzel --index -d -p "Cur: ${swayidle_state} > " <<'EOF'
Enable
@ -12,9 +16,23 @@ EOF
case "${choice}" in
0)
swayidle -w &
if [[ "${swayidle_state}" == 'Disabled' ]]; then
local cmd_cache=(${(0)"$(<"${CACHE_PATH}")"})
(
set -x
cd "${cmd_cache[1]}"
eval "${cmd_cache[2]}" &
)
fi
;;
1)
pkill swayidle
pgrep_output=(${(ps: :)"$(pgrep -fa swayidle)"})
if [[ "${swayidle_state}" = 'Enabled' ]]; then
local si_pid="${pgrep_output[1]}"
local si_pwd="$(readlink "/proc/${si_pid}/cwd")"
local si_cmd="${pgrep_output:1}"
printf '%s\0%s' "${si_pwd}" "${si_cmd}" >"${CACHE_PATH}"
pkill swayidle
fi
;;
esac