#!/bin/bash

# Log Out action script for tiny window managers.
# It works with any window manager and systemd.
# Copyrigt Paweł "pavroo" Pijanowski 2013-2024 under GNU GPLv3 license
# sparky 7 with tint2 installed
# Last update 2024/07/28

# get default's locale file
DEFLOCDIR="/usr/share/sparky/wm-logout"
if [ "`cat /etc/default/locale | grep LANG= | grep de`" != "" ]; then
. $DEFLOCDIR/de
elif [ "`cat /etc/default/locale | grep LANG= | grep el`" != "" ]; then
. $DEFLOCDIR/el
elif [ "`cat /etc/default/locale | grep LANG= | grep es`" != "" ]; then
	if [ "`cat /etc/default/locale | grep LANG= | grep es_AR`" != "" ]; then
. $DEFLOCDIR/es_AR
	else
. $DEFLOCDIR/es_ES
	fi
elif [ "`cat /etc/default/locale | grep LANG= | grep fi`" != "" ]; then
. $DEFLOCDIR/fi
elif [ "`cat /etc/default/locale | grep LANG= | grep fr`" != "" ]; then
. $DEFLOCDIR/fr
elif [ "`cat /etc/default/locale | grep LANG= | grep hu`" != "" ]; then
. $DEFLOCDIR/hu
elif [ "`cat /etc/default/locale | grep LANG= | grep id_ID`" != "" ]; then
. $DEFLOCDIR/id_ID
elif [ "`cat /etc/default/locale | grep LANG= | grep it`" != "" ]; then
. $DEFLOCDIR/it
elif [ "`cat /etc/default/locale | grep LANG= | grep ja_JP`" != "" ]; then
. $DEFLOCDIR/ja
elif [ "`cat /etc/default/locale | grep LANG= | grep pl`" != "" ]; then
. $DEFLOCDIR/pl
elif [ "`cat /etc/default/locale | grep LANG= | grep pt_BR`" != "" ]; then
. $DEFLOCDIR/pt_BR
elif [ "`cat /etc/default/locale | grep LANG= | grep pt_PT`" != "" ]; then
. $DEFLOCDIR/pt_PT
elif [ "`cat /etc/default/locale | grep LANG= | grep ru`" != "" ]; then
. $DEFLOCDIR/ru
elif [ "`cat /etc/default/locale | grep LANG= | grep sv_SE`" != "" ]; then
. $DEFLOCDIR/se
elif [ "`cat /etc/default/locale | grep LANG= | grep uk`" != "" ]; then
. $DEFLOCDIR/uk
else
. $DEFLOCDIR/en
fi

DIALOG="yad --form --width=330 --center --undecorated --skip-taskbar --borders=20 --on-top"
LOGO="--image=/usr/share/pixmaps/sparky-logo-clear0.png --image-on-top"
#FONT="font_weight='bold'"
FIELD="--field="
BUTTON="--button="Cancel!gtk-cancel!Cancel":1 --buttons-layout=center"
ARCHARMHF="`uname -m | grep arm`"
ARCHARM64="`uname -m | grep aarch64`"
TESTLIVE=`grep "live" /etc/passwd`
TESTVIRTUAL=`grep "hypervisor" /proc/cpuinfo`
MYSESSION=`echo $XDG_SESSION_ID`

if [ "$ARCHARMHF" != "" ]; then
WINDOW="mini"
elif [ "$ARCHARM64" != "" ]; then
WINDOW="mini"
elif [ "$TESTLIVE" != "" ]; then
WINDOW="mini"
elif [ "$TESTVIRTUAL" != "" ]; then
WINDOW="mini"
else
WINDOW="big"
fi

# kill openbox
CHECKOPENBOX=`pidof openbox`
CHECKTINT2=`pidof tint2`
#CHECKFBPANEL=`pidof fbpanel`
if [ "$CHECKOPENBOX" != "" ] && [ "$CHECKTINT2" != "" ]; then
	if [ "$WINDOW" = "mini" ]; then
$DIALOG $LOGO \
$FIELD"$LOCAL4!system-logout!$LOCAL4":fbtn "openbox --exit" \
$FIELD"$LOCAL8!system-reboot!$LOCAL8":fbtn "systemctl reboot" \
$FIELD"$LOCAL9!system-shutdown!$LOCAL9":fbtn "systemctl poweroff" \
$BUTTON
	elif [ "$WINDOW" = "big" ]; then
$DIALOG $LOGO \
$FIELD"$LOCAL4!system-logout!$LOCAL4":fbtn "openbox --exit" \
$FIELD"$LOCAL5!system-suspend!$LOCAL5":fbtn "systemctl suspend" \
$FIELD"$LOCAL6!system-suspend-hibernate!$LOCAL6":fbtn "systemctl hibernate" \
$FIELD"$LOCAL8!system-reboot!$LOCAL8":fbtn "systemctl reboot" \
$FIELD"$LOCAL9!system-shutdown!$LOCAL9":fbtn "systemctl poweroff" \
$BUTTON
	fi
	
else

# kill other sessions
	if [ "$WINDOW" = "mini" ]; then
$DIALOG $LOGO \
$FIELD"$LOCAL4!system-logout!$LOCAL4":fbtn "loginctl terminate-session $MYSESSION" \
$FIELD"$LOCAL8!system-reboot!$LOCAL8":fbtn "systemctl reboot" \
$FIELD"$LOCAL9!system-shutdown!$LOCAL9":fbtn "systemctl poweroff" \
$BUTTON
	elif [ "$WINDOW" = "big" ]; then
$DIALOG $LOGO \
$FIELD"$LOCAL4!system-logout!$LOCAL4":fbtn "loginctl terminate-session $MYSESSION" \
$FIELD"$LOCAL5!system-suspend!$LOCAL5":fbtn "systemctl suspend" \
$FIELD"$LOCAL6!system-suspend-hibernate!$LOCAL6":fbtn "systemctl hibernate" \
$FIELD"$LOCAL8!system-reboot!$LOCAL8":fbtn "systemctl reboot" \
$FIELD"$LOCAL9!system-shutdown!$LOCAL9":fbtn "systemctl poweroff" \
$BUTTON
	fi
fi

exit 0
