#!/bin/sh
# /usr/bin/i3exit


lock() {
    blurlock
}

case "$1" in
    lock)
        lock
        ;;
    logout)
        i3-msg exit
        ;;
    switch_user)
	dm-tool switch-to-greeter
	;;
    suspend)
	if [ $(cat /proc/1/comm) = "systemd" ]; then 
	lock && systemctl suspend
	else
	lock && dbus-send --system --dest=org.freedesktop.ConsoleKit --type=method_call --print-reply --reply-timeout=2000 /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Suspend boolean:true
	fi
        ;;
    hibernate)
	if [ $(cat /proc/1/comm) = "systemd" ]; then
	lock && systemctl hibernate
	else
	lock && dbus-send --system --dest=org.freedesktop.ConsoleKit --type=method_call --print-reply --reply-timeout=2000 /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Hibernate boolean:true
	fi
        ;;
    reboot)
	if [ $(cat /proc/1/comm) = "systemd" ]; then
        systemctl reboot
	else
	dbus-send --system --print-reply --type=method_call --reply-timeout=2000 --dest=org.freedesktop.ConsoleKit /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart
	fi
        ;;
    shutdown)
	if [ $(cat /proc/1/comm) = "systemd" ]; then
        systemctl poweroff
        else
	dbus-send --system --print-reply --type=method_call --reply-timeout=2000 --dest=org.freedesktop.ConsoleKit /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop
	fi
	;;
    *)
        echo "== ! i3exit: missing or wrong argument ! ==
Try again with: lock | logout | switch_user | suspend | hibernate | reboot | shutdown"
        exit 2
esac

exit 0
