#!/usr/bin/env zsh pgrep swayidle && swayidle_state="Enabled" || swayidle_state="Disabled" # Format: label action condition local entries=('Select system sound output' 'select-sound-output.sh' 'true' "Enable or disable system sleep (Current: ${swayidle_state})" 'system-sleep-menu.sh' 'true' 'Enable or disable TV' 'tv-power-menu.sh' '[[ "${HOST}" = "alexanders-desktop" ]]' 'Configure USB device access' 'usbguard-menu.py' 'pgrep usbguard-daemon' 'Power settings (restart and shutdown)' 'system-power-menu.sh' 'true') local entry_array=() local enabled_entries=() for ((i = 1; i <= ${#entries}; i+=3)); do if eval "${entries[${i} + 2]}" >/dev/null 2>&1; then entry_array[$((${i} / 3 + 1))]="${entries[${i}]}" enabled_entries+=(${entries[@]:${i} - 1:3}) fi done local scripts_dir="$(dirname "$(realpath "${0}")")" choice="$(printf '%s\n' ${entry_array} | fuzzel --index -d)" (( ${?} != 0 )) && exit eval "${scripts_dir}/${enabled_entries["${choice}" * 3 + 2]}"