97 lines
1.8 KiB
Bash
Executable file
97 lines
1.8 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
# Import Current Theme
|
|
DIR="$HOME/.config/hypr"
|
|
RASI="$DIR/rofi/powermenu.rasi"
|
|
CNFR="$DIR/rofi/confirm.rasi"
|
|
|
|
# Theme Elements
|
|
prompt="$(hostname) ($XDG_CURRENT_DESKTOP)"
|
|
mesg="Uptime : $(uptime -p | sed -E -e 's/up //g' -e 's/week|weeks/w/g' -e 's/day|days/d/g' -e 's/hour|hours/h/g' -e 's/minute|minutes/m/g')"
|
|
|
|
# Options
|
|
option_1=""
|
|
option_2="☀"
|
|
option_3=""
|
|
option_4=""
|
|
option_5="↺"
|
|
option_6=""
|
|
yes=''
|
|
no=''
|
|
|
|
# Rofi CMD
|
|
rofi_cmd() {
|
|
rofi -dmenu \
|
|
-p "$prompt" \
|
|
-mesg "$mesg" \
|
|
-markup-rows \
|
|
-theme "${RASI}"
|
|
}
|
|
|
|
# Pass variables to rofi dmenu
|
|
run_rofi() {
|
|
echo -e "$option_1\n$option_2\n$option_3\n$option_4\n$option_5\n$option_6" | rofi_cmd
|
|
}
|
|
|
|
# Confirmation CMD
|
|
confirm_cmd() {
|
|
rofi -dmenu \
|
|
-p 'Confirmation' \
|
|
-mesg 'Are you Sure?' \
|
|
-theme "${CNFR}"
|
|
}
|
|
|
|
# Ask for confirmation
|
|
confirm_exit() {
|
|
echo -e "$yes\n$no" | confirm_cmd
|
|
}
|
|
|
|
# Confirm and execute
|
|
confirm_run () {
|
|
selected="$(confirm_exit)"
|
|
if [[ "$selected" == "$yes" ]]; then
|
|
${1} && ${2} && ${3} && ${4}
|
|
else
|
|
exit
|
|
fi
|
|
}
|
|
|
|
# Execute Command
|
|
run_cmd() {
|
|
if [[ "$1" == '--opt1' ]]; then
|
|
pidof hyprlock || hyprlock
|
|
elif [[ "$1" == '--opt2' ]]; then
|
|
confirm_run 'hyprctl dispatch exit 0'
|
|
elif [[ "$1" == '--opt3' ]]; then
|
|
confirm_run 'pulsemixer --mute' 'systemctl suspend'
|
|
elif [[ "$1" == '--opt4' ]]; then
|
|
confirm_run 'systemctl hibernate'
|
|
elif [[ "$1" == '--opt5' ]]; then
|
|
confirm_run 'systemctl reboot'
|
|
elif [[ "$1" == '--opt6' ]]; then
|
|
confirm_run 'systemctl poweroff'
|
|
fi
|
|
}
|
|
|
|
# Actions
|
|
chosen="$(run_rofi)"
|
|
case ${chosen} in
|
|
"$option_1")
|
|
run_cmd --opt1
|
|
;;
|
|
"$option_2")
|
|
run_cmd --opt2
|
|
;;
|
|
"$option_3")
|
|
run_cmd --opt3
|
|
;;
|
|
"$option_4")
|
|
run_cmd --opt4
|
|
;;
|
|
"$option_5")
|
|
run_cmd --opt5
|
|
;;
|
|
"$option_6")
|
|
run_cmd --opt6
|
|
;;
|
|
esac
|