#!/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