From 4bde2ad478065de2887fe0d8197d418e83e822ed Mon Sep 17 00:00:00 2001 From: P. J. McDermott Date: Sat, 02 Jun 2018 18:19:51 -0400 Subject: bin/xsession: New script --- (limited to 'bin') 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 "${@}" -- cgit v0.9.1