random-scripts/system-menu/system-sleep-menu.sh

39 lines
976 B
Bash
Executable File

#!/usr/bin/env zsh
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
Disable
EOF
)"
(( ${?} != 0 )) && exit
case "${choice}" in
0)
if [[ "${swayidle_state}" == 'Disabled' ]]; then
local cmd_cache=(${(0)"$(<"${CACHE_PATH}")"})
(
set -x
cd "${cmd_cache[1]}"
eval "${cmd_cache[2]}" &
)
fi
;;
1)
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