#!/bin/bash # dmenuexit # # Provides a dmenu for the various commands available through ./i3exit # shellcheck disable=SC2086 DMENU_ARGS="-i -nb #e74c3c -nf #303030 -sb #c0392b -sf #ecf0f1" COMMANDS="$(i3exit commands | sed 's/\,/\ /g' | sed 's/.*/\L&/; s/[a-z]*/\u&/g')" ACTION="$(xargs -n 1 <<<"$COMMANDS" | dmenu $DMENU_ARGS -p "exitctl")" [ -z "$ACTION" ] && exit 1 echo "INFO: Selected action $ACTION." CONFIRMATION="$(xargs -n 1 <<<"No Yes" | dmenu $DMENU_ARGS -p "Are you sure you want to ${ACTION,,}?")" { [ -z "$CONFIRMATION" ] || [[ "$CONFIRMATION" != "Yes" ]]; } && exit 1 echo "INFO: Action confirmed." if ! i3exit "${ACTION,,}"; then echo "ERROR: Invalid action '${ACTION,,}'." 1>&2 exit 2 fi