31 lines
558 B
Bash
31 lines
558 B
Bash
|
|
#!/usr/bin/env bash
|
||
|
|
|
||
|
|
set -euo pipefail
|
||
|
|
SCRIPT=$(basename "$0")
|
||
|
|
LAUNCHER=('rofi' '-theme-str' 'window {width: 20%;}' '-dmenu' '-c' '-l' '3' '-p')
|
||
|
|
|
||
|
|
log() {
|
||
|
|
logger -i -t "$SCRIPT" "$*"
|
||
|
|
}
|
||
|
|
|
||
|
|
main() {
|
||
|
|
local CHOICE
|
||
|
|
CHOICE=$(printf "sleep\nrestart\nshutdown" | "${LAUNCHER[@]}" "power:")
|
||
|
|
|
||
|
|
local EXITCODE=$?
|
||
|
|
case $EXITCODE in
|
||
|
|
0)
|
||
|
|
case "$CHOICE" in
|
||
|
|
"sleep") systemctl suspend;;
|
||
|
|
"restart") reboot;;
|
||
|
|
"shutdown") notify-send "Shutdown in 1 minute!" && shutdown;;
|
||
|
|
esac
|
||
|
|
;;
|
||
|
|
1)
|
||
|
|
exit 0
|
||
|
|
;;
|
||
|
|
esac
|
||
|
|
}
|
||
|
|
|
||
|
|
main
|