Files
hyprland/config/hypr/scripts/RofiPower.sh
T
2024-01-01 20:27:57 +05:45

62 lines
1.4 KiB
Bash
Executable File

#!/bin/bash
# Powermenu using rofi (Power, Screen Lock, Suspend, etc)
# CMDs
uptime_info=$(uptime -p | sed -e 's/up //g')
host=$(hostnamectl hostname)
# Options with Icons and Text
options=("Lock(l)" "Suspend(u)" "Logout(e)" "Reboot(r)" "Shutdown(s)" "Hibernate(h)")
icons=("" "" "󰿅" "󱄌" "" "󰒲")
# Rofi CMD
rofi_cmd() {
options_with_icons=()
for ((i = 0; i < ${#options[@]}; i++)); do
options_with_icons+=("${icons[$i]} ${options[$i]}")
done
chosen_option=$(printf "%s\n" "${options_with_icons[@]}" | \
rofi -dmenu -i -p " $USER@$host" -mesg " Uptime: $uptime_info" \
-kb-select-1 "l" \
-kb-select-2 "u" \
-kb-select-3 "e" \
-kb-select-4 "r" \
-kb-select-5 "s" \
-kb-select-6 "h" \
-theme ~/.config/rofi/config-powermenu.rasi | awk '{print $1}')
echo "$chosen_option"
}
# Execute Command
run_cmd() {
case $1 in
"")
swaylock &
;;
"")
swaylock -f && systemctl suspend
;;
"󰿅")
hyprctl dispatch exit 0
;;
"󱄌")
systemctl reboot
;;
"")
systemctl poweroff
;;
"󰒲")
swaylock -f && systemctl hibernate
;;
*)
echo "choose: $1"
;;
esac
}
# Actions
chosen_option=$(rofi_cmd)
run_cmd "${chosen_option% *}"