#!/usr/bin/env bash # Import Current Theme DIR="$HOME/.config/rofi" RASI="$DIR/powermenu.rasi" CNFR="$DIR/confirm.rasi" # Theme Elements prompt="`hostname` (`echo $DESKTOP_SESSION`)" mesg="Uptime : `uptime -p | sed -e 's/up //g'`" # Options layout=`cat ${RASI} | grep 'USE_ICON' | cut -d'=' -f2` if [[ "$layout" == 'NO' ]]; then option_1="󰍁 Lock" option_2="󰗼 Logout" option_3="󰤄 Suspend" option_4="󰤆 Hibernate" option_5="🔳 Hybrid-sleep" option_6="󰜉 Reboot" option_7="⏻ Shutdown" else option_1="󰍁" option_2="󰗼" option_3="󰤄" option_4="󰤆" option_5="🔳" option_6="󰜉" option_7="⏻" fi cnflayout=`cat ${CNFR} | grep 'USE_ICON' | cut -d'=' -f2` if [[ "$cnflayout" == 'NO' ]]; then yes=' Yes' no=' No' else yes='' no='' fi # 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\n$option_7" | rofi_cmd } # Confirmation CMD confirm_cmd() { rofi -dmenu \ -p 'Confirmation' \ -mesg 'Are you Sure?' \ -theme ${CNFR} } confirm_cmd2() { rofi -dmenu \ -p 'Confirmation' \ -mesg "Logout?" \ -theme ${CNFR} } confirm_cmd3() { rofi -dmenu \ -p 'Confirmation' \ -mesg "Sleep/Suspend?" \ -theme ${CNFR} } confirm_cmd4() { rofi -dmenu \ -p 'Confirmation' \ -mesg "Hibernate?" \ -theme ${CNFR} } confirm_cmd5() { rofi -dmenu \ -p 'Confirmation' \ -mesg "Hybrid Sleep?" \ -theme ${CNFR} } confirm_cmd6() { rofi -dmenu \ -p 'Confirmation' \ -mesg "Reboot?" \ -theme ${CNFR} } confirm_cmd7() { rofi -dmenu \ -p 'Confirmation' \ -mesg "Shutdown?" \ -theme ${CNFR} } # Ask for confirmation confirm_exit() { echo -e "$yes\n$no" | confirm_cmd } confirm_exit2() { echo -e "$yes\n$no" | confirm_cmd2 } confirm_exit3() { echo -e "$yes\n$no" | confirm_cmd3 } confirm_exit4() { echo -e "$yes\n$no" | confirm_cmd4 } confirm_exit5() { echo -e "$yes\n$no" | confirm_cmd5 } confirm_exit6() { echo -e "$yes\n$no" | confirm_cmd6 } confirm_exit7() { echo -e "$yes\n$no" | confirm_cmd7 } # Confirm and execute confirm_run () { selected="$(confirm_exit)" if [[ "$selected" == "$yes" ]]; then ${1} && ${2} && ${3} else exit fi } confirm_run2 () { selected="$(confirm_exit2)" if [[ "$selected" == "$yes" ]]; then ${1} && ${2} && ${3} else exit fi } confirm_run3 () { selected="$(confirm_exit3)" if [[ "$selected" == "$yes" ]]; then ${1}; ${2} && ${3} else exit fi } confirm_run4 () { selected="$(confirm_exit4)" if [[ "$selected" == "$yes" ]]; then ${1} && ${2} && ${3} else exit fi } confirm_run5 () { selected="$(confirm_exit5)" if [[ "$selected" == "$yes" ]]; then ${1} && ${2} && ${3} else exit fi } confirm_run6 () { selected="$(confirm_exit6)" if [[ "$selected" == "$yes" ]]; then ${1} && ${2} && ${3} else exit fi } confirm_run7 () { selected="$(confirm_exit7)" if [[ "$selected" == "$yes" ]]; then ${1} && ${2} && ${3} else exit fi } # Execute Command run_cmd() { if [[ "$1" == '--opt1' ]]; then betterlockscreen --lock elif [[ "$1" == '--opt2' ]]; then confirm_run2 'bspc quit' elif [[ "$1" == '--opt3' ]]; then confirm_run3 'playerctl pause' 'systemctl suspend' #'betterlockscreen --suspend' 'pulsemixer --unmute' # 'pulsemixer --mute' elif [[ "$1" == '--opt4' ]]; then confirm_run4 'systemctl hibernate' elif [[ "$1" == '--opt5' ]]; then confirm_run5 'systemctl hybrid-sleep' elif [[ "$1" == '--opt6' ]]; then confirm_run6 'systemctl reboot' elif [[ "$1" == '--opt7' ]]; then confirm_run7 '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 ;; $option_7) run_cmd --opt7 ;; esac