65 lines
1.0 KiB
Bash
Executable File
65 lines
1.0 KiB
Bash
Executable File
#!/usr/bin/env sh
|
|
|
|
rofi_command="rofi"
|
|
|
|
# Buttons
|
|
lock=" Lock"
|
|
logout=" Log out"
|
|
suspend=" Suspend"
|
|
shutdown=" Power off"
|
|
reboot=" Reboot"
|
|
|
|
# countdown
|
|
countdown() {
|
|
for sec in $(seq $1 -1 1); do
|
|
dunstify -t 1000 --replace=699 "Taking action in : $sec"
|
|
sleep 1
|
|
done
|
|
}
|
|
|
|
# do actions
|
|
dolock() {
|
|
hyprlock
|
|
}
|
|
|
|
dologout() {
|
|
countdown 3
|
|
hyprctl dispatch exit
|
|
}
|
|
|
|
dosuspend() {
|
|
systemctl suspend
|
|
}
|
|
|
|
doshutdown() {
|
|
countdown 3
|
|
hyprshutdown -t 'Shutting down...' --post-cmd 'systemctl shutdown'
|
|
}
|
|
|
|
doreboot() {
|
|
countdown 3
|
|
hyprshutdown -t 'Restarting...' --post-cmd 'systemctl reboot'
|
|
}
|
|
|
|
# Variable passed to rofi
|
|
options="$shutdown\n$reboot\n$suspend\n$lock\n$logout"
|
|
|
|
chosen="$(echo -e "$options" | $rofi_command -p 'Power' -dmenu -selected-row 0)"
|
|
case $chosen in
|
|
$lock)
|
|
dolock
|
|
;;
|
|
$logout)
|
|
dologout
|
|
;;
|
|
$suspend)
|
|
dosuspend
|
|
;;
|
|
$shutdown)
|
|
doshutdown
|
|
;;
|
|
$reboot)
|
|
doreboot
|
|
;;
|
|
esac
|