#!/usr/bin/env bash # ***This script was made by Clay Gomera (Drake)*** # - Description: A simple power menu dmenu script # - Dependencies: dmenu, power-profiles-daemon, slock ####################### ## Main manu options ## ####################### option1=" Logout" option2=" Reboot" option3=" Power off" option4="󰒲 Suspend" option5=" Lock" option6=" Change power profile" option7="󱎘 Exit" options="$option1\n$option2\n$option3\n$option4\n$option5\n$option6\n$option7" #################################### ## Power profiles submenu options ## #################################### pwr1="󰓅 Performance" pwr2="󰾅 Balanced" pwr3="󰾆 Power Saver" pwr4=" Cancel" pwrs="$pwr1\n$pwr2\n$pwr3\n$pwr4" ##### ## This variable will store the current power profile ##### currentpwr=$(powerprofilesctl get) ##### ## This variable will store the current wallpaper set by feh ##### currentwall=$(tail --lines=1 "$HOME/.fehbg" | awk '{print $4}' | sed "s/'//g") ########## ## main ## ########## action=$(echo -e "$options" | dmenu -i -p " Power Options"); # main menu prompt case "$action" in "$option1") killall -u "$(whoami)" ;; "$option2") systemctl reboot; ;; "$option3") systemctl poweroff; ;; "$option4") slock -b "$currentwall" systemctl suspend; ;; "$option5") slock -b "$currentwall"; ;; "$option6") ##### ## These conditions will be used for the prompt ##### if [ "$currentpwr" = "performance" ]; then currentpwr="$pwr1"; elif [ "$currentpwr" = "balanced" ]; then currentpwr="$pwr2"; elif [ "$currentpwr" = "power-saver" ]; then currentpwr="$pwr3"; fi pwraction=$(echo -e "$pwrs" | dmenu -l 6 -i -p " Power Profile Menu - Currently set to: $currentpwr") # power profiles submenu prompt case "$pwraction" in "$pwr1") if [ "$currentpwr" = "$pwr1" ]; then # if the power profile is already set to performance notify-send "The power profile is already set to performance"; exit 1; else powerprofilesctl set performance && notify-send "Power profile switched to performance"; # if not, set the powerprofile to performance fi ;; "$pwr2") if [ "$currentpwr" = "$pwr2" ]; then # if the power profile is already set to balanced notify-send "The power profile is already set to balanced"; exit 1; else powerprofilesctl set balanced && notify-send "Power profile switched to balanced"; # if not, set the powerprofile to balanced fi ;; "$pwr3") if [ "$currentpwr" = "$pwr3" ]; then # if the power profile is already set to power saver notify-send "The power profile is already set to power saver"; exit 1; else powerprofilesctl set power-saver && notify-send "Power profile switched to power saver"; # if not, set the powerprofile to power saver fi ;; "$pwr4") exit 0; esac;; "$option7") exit 0; esac