diff options
author | Philip Wittamore <philip@wittamore.com> | 2025-05-18 17:56:11 +0200 |
---|---|---|
committer | Philip Wittamore <philip@wittamore.com> | 2025-05-18 17:56:11 +0200 |
commit | 8923a5f27822b2332856ffb71bb625edc4a92da4 (patch) | |
tree | 7edbad0fe8171e509f0e766a6784fc5d266f65c7 | |
parent | ce43b91f3035dcc984ed519920198ef91bf89177 (diff) | |
download | scripts-8923a5f27822b2332856ffb71bb625edc4a92da4.tar.gz scripts-8923a5f27822b2332856ffb71bb625edc4a92da4.tar.bz2 scripts-8923a5f27822b2332856ffb71bb625edc4a92da4.zip |
-rwxr-xr-x | dpower | 30 | ||||
-rwxr-xr-x | dprompt | 10 |
2 files changed, 40 insertions, 0 deletions
@@ -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 + @@ -0,0 +1,10 @@ +#!/usr/bin/env sh + +# Dmenu binary prompt. +# Gives a dmenu prompt labled with $1 to perform command $2. +# Example: dprompt "Suspend?" "sudo systemctl suspend" + +[ "$(printf 'No\nYes' \ + | dmenu -p "$1" \ + -i -nb darkred -sb red -sf black -nf gray)" = 'Yes' ] && $2 + |