aboutsummaryrefslogtreecommitdiff
path: root/dpower
diff options
context:
space:
mode:
authorPhilip Wittamore <philip@wittamore.com>2025-05-18 17:56:11 +0200
committerPhilip Wittamore <philip@wittamore.com>2025-05-18 17:56:11 +0200
commit8923a5f27822b2332856ffb71bb625edc4a92da4 (patch)
tree7edbad0fe8171e509f0e766a6784fc5d266f65c7 /dpower
parentce43b91f3035dcc984ed519920198ef91bf89177 (diff)
downloadscripts-8923a5f27822b2332856ffb71bb625edc4a92da4.tar.gz
scripts-8923a5f27822b2332856ffb71bb625edc4a92da4.tar.bz2
scripts-8923a5f27822b2332856ffb71bb625edc4a92da4.zip
Diffstat (limited to 'dpower')
-rwxr-xr-xdpower30
1 files changed, 30 insertions, 0 deletions
diff --git a/dpower b/dpower
new file mode 100755
index 0000000..d19ba8c
--- /dev/null
+++ b/dpower
@@ -0,0 +1,30 @@
+#!/usr/bin/env bash
+
+# Dmenu power menu.
+# Uses dprompt for confirmation.
+
+Menu='Logout
+Power Off
+Reboot
+Lockscreen
+Suspend
+Hibernate'
+
+Chosen=$(printf "$Menu" | dmenu -i -l 10 -p 'dpower')
+
+if [ "$Chosen" = 'Logout' ]; then
+ dprompt "Confirm $Chosen?" "loginctl terminate-session $XDG_SESSION_ID"
+elif [ "$Chosen" = 'Power Off' ]; then
+ dprompt "Confirm $Chosen?" 'sytemctl poweroff'
+elif [ "$Chosen" = 'Restart' ]; then
+ dprompt "Confirm $Chosen?" 'systemctl reboot'
+elif [ "$Chosen" = 'Lockscreen' ]; then
+ dprompt "Confirm $Chosen?" "loginctl lock-session $XDG_SESSION_ID"
+elif [ "$Chosen" = 'Suspend' ]; then
+ dprompt "Confirm $Chosen?" 'systemctl suspend'
+elif [ "$Chosen" = 'Hibernate' ]; then
+ dprompt "Confirm $Chosen?" 'systemctl hibernate'
+else
+ exit 1
+fi
+