diff options
Diffstat (limited to '')
| -rwxr-xr-x | scripts/powercontrol.sh | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/scripts/powercontrol.sh b/scripts/powercontrol.sh new file mode 100755 index 0000000..90304d0 --- /dev/null +++ b/scripts/powercontrol.sh @@ -0,0 +1,45 @@ +#!/usr/bin/env bash +source "$HOME/scripts/modules/rofi-menu.sh"; +source "$HOME/scripts/modules/utils.sh"; + +optn_poweroff="[] off"; +optn_reboot="[] reboot"; +optn_suspend="[] suspend"; +optn_logout="[] logout"; +optn_lock="[] lock"; +optn_cancel="[] cancel"; + +OPTIONS=$(echo -e " +$optn_poweroff +$optn_reboot +$optn_suspend +$optn_logout +$optn_lock +$optn_cancel +" | trim); + +lock() { bslock; } +logout_() { ~/.config/autostart.sh kill; killall dwm; } +poweroff_() { systemctl shutdown; } +reboot_() { systemctl reboot; } +suspend_() { lock & disown; sleep 0.3; sudo zzz; } + +menu() { + result=$(echo -e "$OPTIONS" | open-menu -l 0 -p "Power button"); + case "$result" in + "$optn_lock") lock ;; + "$optn_logout") logout_ ;; + "$optn_poweroff") poweroff_ ;; + "$optn_reboot") reboot_ ;; + "$optn_suspend") suspend_ ;; + esac +} + +case "$1" in + menu) menu ;; + lock) lock ;; + poweroff) poweroff_ ;; + reboot) reboot_ ;; + *) exit 1 ;; +esac + |
