| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 | 
							- #!/bin/bash
 
- # This is a simple program that makes shutdown easier for QubesOS.
 
- # May not work out of the box, you will have to specify in the script 
 
- # your net-vm and usb-vm names.
 
- # i3-exit - A simple QubesOS shutdown script
 
- # Copyright (C) 2017 Fabrizio Romano Genovese <egonigredo@gmail.com>
 
- # This copyrighted material is made available to anyone wishing to use,
 
- # modify, copy, or redistribute it subject to the terms and conditions of
 
- # the GNU General Public License v.2, or (at your option) any later version.
 
- #
 
- # This program is distributed in the hope that it will be useful, but WITHOUT
 
- # ANY WARRANTY expressed or implied, including the implied warranties of
 
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General
 
- # Public License for more details.
 
- # You should have received a copy of the
 
- # GNU General Public License along with this program; if not, 
 
- # see <http://www.gnu.org/licenses/>
 
- # Put this file in /bin/ or in /usr/bin. Do not forget to give 
 
- # sudo chmod +x i3-exit
 
- # to make it executable.
 
- version=1.0
 
- qubesnetvm=sys-net
 
- qubesusbvm=sys-usb
 
- # Shuts down all the virtual machines in a wise way
 
- vm_shutdown()
 
- {
 
-         echo "Shutting down everything"
 
-         qvm-shutdown --wait --all --exclude=$qubesnetvm --exclude=$qubesusbvm
 
-         echo "Killing sys-usb"
 
-         qvm-kill sys-usb
 
-         echo "Killing sys-net"
 
-         qvm-kill sys-net
 
-         sleep 3
 
- }
 
- # Checks which screensaver is installed and tries to use it
 
- screen_lock()
 
- {
 
- 	if [ -a /bin/i3-blur ]; then
 
-                 i3-blur
 
-         elif [ -a /bin/i3lock ]; then
 
-                 i3lock
 
-         else
 
-         	echo "What screensaver are you using? I cannot find it."
 
-                 exit 2
 
- 	fi
 
- }
 
- if [[ "$#" -ge 2 ]]; then
 
-         echo "0 {-v, --version|-h, --help|lock|logout|suspend|hibernate|reboot|shutdown}"
 
-         exit 2
 
- elif [[ "$#" -eq 1 ]]; then
 
- case "$1" in
 
-         -v | --version)
 
-                 echo "$0 - Version $version"
 
-                 exit 0;;
 
-         -h | --help)
 
-                 echo "This is a simple program that makes shutdown/hibernate/reboot etc. easier for QubesOS users having i3. May not work out of the box, you will have to specify in the script your net-vm and usb-vm names."
 
-                 echo "- v, --version		Display current version"
 
-                 echo "-h, --help		Display this message"
 
- 		echo "lock			Lock the screen"
 
- 		echo "logout			Logout current user"
 
- 		echo "suspend			Suspend system"
 
- 		echo "hibernate		Hibernate system"
 
- 		echo "reboot			Reboot system"
 
- 		echo "shutdown		Power off system"
 
-                 exit 0
 
- 		;;
 
-         lock)
 
- 		screen_lock
 
-                 ;;
 
-         logout)
 
-                 i3-msg exit
 
-                 ;;
 
-         suspend)
 
-                 screen_lock && systemctl suspend
 
-                 ;;
 
-         hibernate)
 
-                 screen_lock && systemctl hibernate
 
-                 ;;
 
-         reboot)
 
-                 vm_shutdown; reboot
 
-                 ;;
 
-         shutdown)
 
-                 vm_shutdown; shutdown now
 
-                 ;;
 
-         *)
 
-                 echo "Usage: $0 {-v, --version|-h, --help|lock|logout|suspend|hibernate|reboot|shutdown}"
 
-                 exit 2
 
- esac
 
- fi
 
- exit 0
 
 
  |