add rofi-run script

This commit is contained in:
ksyasuda 2022-03-15 10:35:39 -07:00
parent 3dfed596cb
commit aa59a3830a

45
rofi/scripts/rofi-run.sh Executable file
View File

@ -0,0 +1,45 @@
#!/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="<span foreground='#ecbe7b' style='normal' size='small'>$msg1</span>"
span2="<span foreground='dodgerblue' style='italic' size='small'>$msg2</span>"
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 [[ "$1" == "-v" || "$1" == "--verbose" ]]; then
# Send command to dunstify
dunstify "Running command: $cmd"
fi
# Run the command
eval "$cmd"