aboutsummaryrefslogtreecommitdiff
path: root/.local/bin/powermenu
diff options
context:
space:
mode:
Diffstat (limited to '.local/bin/powermenu')
-rwxr-xr-x.local/bin/powermenu39
1 files changed, 39 insertions, 0 deletions
diff --git a/.local/bin/powermenu b/.local/bin/powermenu
new file mode 100755
index 0000000..31a8f8a
--- /dev/null
+++ b/.local/bin/powermenu
@@ -0,0 +1,39 @@
+#!/usr/bin/env bash
+
+read -r wallpaper<~/.cache/wallpaper
+
+#### Options ###
+power_off=" Shutdown"
+reboot="󰜉 Reboot"
+lock_screen=" Lock Screen"
+suspend=" Suspend"
+hibernate="󰒲 Hibernate"
+log_out="󰍃﫼 Log Out"
+
+# Options passed to fuzzel
+options="$power_off\n$reboot\n$suspend\n$hibernate\n$log_out\n$lock_screen"
+lines="$(echo "$options" | grep -oF '\n' | wc -l)"
+rofi_command="fuzzel -d -w 14 -l $((lines+1))"
+chosen="$(echo -e "$options" | $rofi_command )"
+case $chosen in
+ "$lock_screen")
+ swaylock -f -i "$wallpaper"
+ ;;
+ "$power_off")
+ loginctl poweroff
+ ;;
+ "$reboot")
+ loginctl reboot
+ ;;
+ "$suspend")
+ $lock && loginctl suspend
+ ;;
+ "$hibernate")
+ $lock && loginctl hibernate
+ ;;
+ "$log_out")
+ #swaymsg exit
+ #loginctl terminate-session "${XDG_SESSION_ID-}"
+ riverctl exit
+ ;;
+esac