diff options
author | P. J. McDermott <pj@pehjota.net> | 2018-06-02 18:19:51 (EDT) |
---|---|---|
committer | P. J. McDermott <pj@pehjota.net> | 2021-08-21 20:51:41 (EDT) |
commit | 119b294dc32d4bba5e62947a9e0d4a0390a5c0de (patch) | |
tree | 65d55122d2bd9ed3b6effefb9ffb0e7cf73a569d /bin/xsession | |
parent | 860355bc3695940ddb4e45359d3b0b2f56103380 (diff) | |
download | fluxbox-119b294dc32d4bba5e62947a9e0d4a0390a5c0de.zip fluxbox-119b294dc32d4bba5e62947a9e0d4a0390a5c0de.tar.gz fluxbox-119b294dc32d4bba5e62947a9e0d4a0390a5c0de.tar.bz2 |
bin/xsession: New script
Diffstat (limited to 'bin/xsession')
-rwxr-xr-x | bin/xsession | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/bin/xsession b/bin/xsession new file mode 100755 index 0000000..3b1cf86 --- /dev/null +++ b/bin/xsession @@ -0,0 +1,97 @@ +#!/bin/sh + +set -eu + +actions_icons='/usr/share/icons/gnome/16x16/actions' + +do_logout() +{ + zenity --question --title='Log Out' \ + --window-icon="${actions_icons}/system-log-out.png" \ + --text='Are you sure you want to log out?' \ + --ok-label='Log Out' --cancel-label='Cancel' && \ + printf 'quit\n' >~/.xsessionmanage + + return 0 +} + +do_shutdown() +{ + zenity --question --title='Shut Down' \ + --window-icon="${actions_icons}/system-shutdown.png" \ + --text='Are you sure you want to shut down this system?' \ + --ok-label='Shut Down' --cancel-label='Cancel' && \ + sudo shutdown -hP now + + return 0 +} + +do_reboot() +{ + zenity --question --title='Reboot' \ + --window-icon="${actions_icons}/system-shutdown.png" \ + --text='Are you sure you want to reboot this system?' \ + --ok-label='Reboot' --cancel-label='Cancel' && \ + sudo reboot + + return 0 +} + +do_s2mem() +{ + zenity --question --title='Suspend' \ + --window-icon="${actions_icons}/media-playback-pause.png" \ + --text='Are you sure you want to suspend this system?' \ + --ok-label='Suspend' --cancel-label='Cancel' && \ + sudo dd of='/sys/power/state' <<-EOF + mem + EOF + + return 0 +} + +do_s2disk() +{ + zenity --question --title='Hibernate' \ + --window-icon="${actions_icons}/media-playback-pause.png" \ + --text='Are you sure you want to hibernate this system?' \ + --ok-label='Hibernate' --cancel-label='Cancel' && \ + sudo dd of='/sys/power/state' <<-EOF + disk + EOF + + return 0 +} + +usage() +{ + printf 'Usage: %s {logout|shutdown|reboot|s2mem|s2disk}\n' "${0}" + + return 0 +} + +main() +{ + local action= + + if [ ${#} -ne 1 ]; then + usage 1>&2 + return 1 + fi + action="${1}" + shift 1 + + case "${action}" in + 'logout' | 'shutdown' | 'reboot' | 's2mem' | 's2disk') + "do_${action}" + ;; + *) + usage 1>&2 + return 1 + ;; + esac + + return 0 +} + +main "${@}" |