aboutsummaryrefslogtreecommitdiff
path: root/config/polybar/panels/scripts/powermenu.sh
diff options
context:
space:
mode:
authorAnhgelus Morhtuuzh <anhgelus.morhtuuzh@gmx.com>2023-07-25 23:46:05 +0200
committerAnhgelus Morhtuuzh <anhgelus.morhtuuzh@gmx.com>2023-07-25 23:46:05 +0200
commitc57e8ab185623510e527400a34d729b313daffc4 (patch)
tree7b67d44894255ce4810d8074d68fce88f66d37d0 /config/polybar/panels/scripts/powermenu.sh
parent9f004955033387eebf3f58aec2501fba5020f307 (diff)
feat(polybar): update polybar style
Diffstat (limited to 'config/polybar/panels/scripts/powermenu.sh')
-rwxr-xr-xconfig/polybar/panels/scripts/powermenu.sh139
1 files changed, 139 insertions, 0 deletions
diff --git a/config/polybar/panels/scripts/powermenu.sh b/config/polybar/panels/scripts/powermenu.sh
new file mode 100755
index 0000000..a8c9e73
--- /dev/null
+++ b/config/polybar/panels/scripts/powermenu.sh
@@ -0,0 +1,139 @@
+#!/usr/bin/env bash
+
+## Author : Aditya Shakya
+## Mail : adi1090x@gmail.com
+## Github : @adi1090x
+## Twitter : @adi1090x
+
+DIR="$HOME/.config/polybar/panels/menu"
+uptime=$(uptime -p | sed -e 's/up //g')
+
+if [[ "$1" = "--budgie" ]]; then
+ theme="budgie"
+
+elif [[ "$1" = "--deepin" ]]; then
+ theme="deepin"
+
+elif [[ "$1" = "--elight" ]]; then
+ theme="elementary"
+
+elif [[ "$1" = "--edark" ]]; then
+ theme="elementary_dark"
+
+elif [[ "$1" = "--gnome" ]]; then
+ theme="gnome"
+
+elif [[ "$1" = "--klight" ]]; then
+ theme="kde"
+
+elif [[ "$1" = "--kdark" ]]; then
+ theme="kde_dark"
+
+elif [[ "$1" = "--liri" ]]; then
+ theme="liri"
+
+elif [[ "$1" = "--mint" ]]; then
+ theme="mint"
+
+elif [[ "$1" = "--ugnome" ]]; then
+ theme="ubuntu_gnome"
+
+elif [[ "$1" = "--unity" ]]; then
+ theme="ubuntu_unity"
+
+elif [[ "$1" = "--xubuntu" ]]; then
+ theme="xubuntu"
+
+elif [[ "$1" = "--zorin" ]]; then
+ theme="zorin"
+
+else
+ rofi -e "No theme specified."
+ exit 1
+fi
+
+rofi_command="rofi -no-config -theme $DIR/powermenu.rasi"
+
+# Options
+shutdown=" Shutdown"
+reboot=" Restart"
+lock=" Lock"
+suspend=" Sleep"
+logout=" Logout"
+
+# Confirmation
+confirm_exit() {
+ rofi -dmenu\
+ -no-config\
+ -i\
+ -no-fixed-num-lines\
+ -p "Are You Sure? : "\
+ -theme $DIR/$theme/confirm.rasi
+}
+
+# Message
+msg() {
+ rofi -no-config -theme "$DIR/$theme/message.rasi" -e "Available Options - yes / y / no / n"
+}
+
+# Variable passed to rofi
+options="$lock\n$suspend\n$logout\n$reboot\n$shutdown"
+
+chosen="$(echo -e "$options" | $rofi_command -p "Uptime: $uptime" -dmenu -selected-row 0)"
+case $chosen in
+ $shutdown)
+ ans=$(confirm_exit &)
+ if [[ $ans == "yes" || $ans == "YES" || $ans == "y" || $ans == "Y" ]]; then
+ systemctl poweroff
+ elif [[ $ans == "no" || $ans == "NO" || $ans == "n" || $ans == "N" ]]; then
+ exit 0
+ else
+ msg
+ fi
+ ;;
+ $reboot)
+ ans=$(confirm_exit &)
+ if [[ $ans == "yes" || $ans == "YES" || $ans == "y" || $ans == "Y" ]]; then
+ systemctl reboot
+ elif [[ $ans == "no" || $ans == "NO" || $ans == "n" || $ans == "N" ]]; then
+ exit 0
+ else
+ msg
+ fi
+ ;;
+ $lock)
+ if [[ -f /usr/bin/i3lock ]]; then
+ i3lock
+ elif [[ -f /usr/bin/betterlockscreen ]]; then
+ betterlockscreen -l
+ fi
+ ;;
+ $suspend)
+ ans=$(confirm_exit &)
+ if [[ $ans == "yes" || $ans == "YES" || $ans == "y" || $ans == "Y" ]]; then
+ mpc -q pause
+ amixer set Master mute
+ systemctl suspend
+ elif [[ $ans == "no" || $ans == "NO" || $ans == "n" || $ans == "N" ]]; then
+ exit 0
+ else
+ msg
+ fi
+ ;;
+ $logout)
+ ans=$(confirm_exit &)
+ if [[ $ans == "yes" || $ans == "YES" || $ans == "y" || $ans == "Y" ]]; then
+ if [[ "$DESKTOP_SESSION" == "Openbox" ]]; then
+ openbox --exit
+ elif [[ "$DESKTOP_SESSION" == "bspwm" ]]; then
+ bspc quit
+ elif [[ "$DESKTOP_SESSION" == "i3" ]]; then
+ i3-msg exit
+ fi
+ elif [[ $ans == "no" || $ans == "NO" || $ans == "n" || $ans == "N" ]]; then
+ exit 0
+ else
+ msg
+ fi
+ ;;
+esac