initial commit
This commit is contained in:
Executable
+41
@@ -0,0 +1,41 @@
|
||||
#!/usr/bin/env bash
|
||||
# ---------------------------------------------------------------------------
|
||||
# rofi power menu — lock / logout / suspend / hibernate / reboot / shutdown
|
||||
# Destructive entries ask for confirmation before firing.
|
||||
# ---------------------------------------------------------------------------
|
||||
set -euo pipefail
|
||||
|
||||
THEME="$HOME/.config/rofi/themes/powermenu.rasi"
|
||||
LOCK_CMD=(betterlockscreen --lock dimblur)
|
||||
|
||||
lock=" Lock"
|
||||
logout=" Log out"
|
||||
suspend=" Suspend"
|
||||
hibernate=" Hibernate"
|
||||
reboot=" Reboot"
|
||||
shutdown=" Shut down"
|
||||
|
||||
menu() {
|
||||
printf '%s\n' "$lock" "$logout" "$suspend" "$hibernate" "$reboot" "$shutdown" |
|
||||
rofi -dmenu -i \
|
||||
-theme "$THEME" \
|
||||
-p " $(whoami)@$(hostname)" \
|
||||
-select "$lock"
|
||||
}
|
||||
|
||||
confirm() {
|
||||
local answer
|
||||
answer=$(printf ' No\n Yes\n' |
|
||||
rofi -dmenu -i -theme "$THEME" -p "$1" -select " No")
|
||||
[[ "$answer" == *Yes* ]]
|
||||
}
|
||||
|
||||
case "$(menu)" in
|
||||
"$lock") "${LOCK_CMD[@]}" ;;
|
||||
"$logout") confirm "Log out?" && i3-msg exit ;;
|
||||
"$suspend") "${LOCK_CMD[@]}" & sleep 0.3; systemctl suspend ;;
|
||||
"$hibernate") confirm "Hibernate?" && { "${LOCK_CMD[@]}" & sleep 0.3; systemctl hibernate; } ;;
|
||||
"$reboot") confirm "Reboot?" && systemctl reboot ;;
|
||||
"$shutdown") confirm "Shut down?" && systemctl poweroff ;;
|
||||
*) exit 0 ;;
|
||||
esac
|
||||
Reference in New Issue
Block a user