diff --git a/system-menu/system-menu.sh b/system-menu/system-menu.sh index ecd8245..307d20f 100755 --- a/system-menu/system-menu.sh +++ b/system-menu/system-menu.sh @@ -8,9 +8,8 @@ function is-desktop-p { ! is-laptop-p } -echo $(is-desktop-p) - -pgrep swayidle && swayidle_state="Enabled" || swayidle_state="Disabled" +systemctl --user --quiet is-active swayidle.service \ + && swayidle_state="Enabled" || swayidle_state="Disabled" # Format: label action condition local entries=('Select system sound output' 'select-sound-output.sh' 'true' @@ -32,7 +31,8 @@ for ((i = 1; i <= ${#entries}; i+=3)); do fi done -local scripts_dir="$(dirname "$(realpath "${0}")")" +local scripts_dir="${1:h:P}" +echo ${scripts_dir} choice="$(printf '%s\n' ${entry_array} | fuzzel --index -d)" (( ${?} != 0 )) && exit diff --git a/system-menu/system-sleep-menu.sh b/system-menu/system-sleep-menu.sh index 7649e6e..5812840 100755 --- a/system-menu/system-sleep-menu.sh +++ b/system-menu/system-sleep-menu.sh @@ -1,10 +1,10 @@ #!/usr/bin/env zsh -local CACHE_PATH="${HOME}/.cache/system-sleep-menu" +let is_active=0 +systemctl --user --quiet is-active swayidle.service && is_active=1 -pgrep swayidle >/dev/null 2>&1 \ - && swayidle_state="Enabled" \ - || swayidle_state="Disabled" +local swayidle_state +(( is_active )) && swayidle_state='Enabled' || swayidle_state='Disabled' choice="$(fuzzel --index -d -p "Cur: ${swayidle_state} > " <<'EOF' Enable @@ -16,25 +16,10 @@ EOF case "${choice}" in 0) - if [[ "${swayidle_state}" == 'Disabled' ]]; then - local cmd_cache=(${(0)"$(<"${CACHE_PATH}")"}) - { - set -x - cd "${cmd_cache[1]}" - exec ${=${cmd_cache[2]}} - } & - disown - fi + systemctl --user start swayidle.service ;; 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 + systemctl --user stop swayidle.service ;; esac