From 8923a5f27822b2332856ffb71bb625edc4a92da4 Mon Sep 17 00:00:00 2001 From: Philip Wittamore Date: Sun, 18 May 2025 17:56:11 +0200 Subject: update --- dpower | 30 ++++++++++++++++++++++++++++++ dprompt | 10 ++++++++++ 2 files changed, 40 insertions(+) create mode 100755 dpower create mode 100755 dprompt 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 + diff --git a/dprompt b/dprompt new file mode 100755 index 0000000..73eda47 --- /dev/null +++ b/dprompt @@ -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 + -- cgit v1.2.3