#!/usr/bin/env bash set -Eeuo pipefail # Script to run a bash command from a rofi prompt THEME_STR=" window { width: 35%; height: 10%; anchor: north; location: north; }" # generates a span mesg for rofi given # input: message: str generate_span() { msg1="$1" msg2="$2" span="$msg1" span2="$msg2" printf "%s: %s\n" "$span" "$span2" } # Get the command to run cmd="$(rofi -dmenu -l 0 -p 'Run:' -theme-str "$THEME_STR")" # Check if command is sudo if [[ "$cmd" == "sudo"* ]]; then # Prompt for confirmation confirm="$(rofi -dmenu -l 0 -p 'Confirm (Y/N)' \ -theme-str "$THEME_STR" -mesg "$(generate_span "CMD" "$cmd")" || true)" # If not confirmed, exit if ! [[ "$confirm" == "Y" || "$confirm" == "y" ]]; then exit 0 fi fi if [[ "$#" -gt 0 ]] && [[ "$1" == "-v" || "$1" == "--verbose" ]]; then # Send command to dunstify dunstify "Running command: $cmd" fi # Run the command eval "$cmd"