#!/bin/sh
# -*- Mode: shell-script -*-

[ -e /etc/sysconfig/apmd ] && . /etc/sysconfig/apmd

# Don't try to restore the terminal or lock X if X isn't running...
[ "x`pidof X`" != x ] && {
    [ -n "$CHANGEVT" -a "$CHANGEVT" != "0" ] && chvt 1
    [ "x$LOCK_X" = "xyes" -o "x$LOCK_X" = "x1" ] && {
	# Lock X, based on patch from Hannu Martikka
	# <Hannu.Martikka@nokia.com>
	w |tail +3 |awk '{print $1, $3}'|grep -v '-'|grep : | \
	    sort -u | \
	    while read line; do
	    Usern=`echo $line |awk '{print $1}'`
	    XDisp=`echo $line |awk '{print $2}'`
	    if [ "x`/sbin/pidof 'kdeinit: kdesktop'`" != "x" ]; then
		# We're running KDE - a dcop call is sufficient.
		su $Usern -c "DISPLAY=$XDisp dcop kdesktop KScreensaverIface 'lock()'"
	    else
		# This isn't KDE... Do some ugly stuff.
		if [ "x$Usern" = "xroot" ]; then
		    xlock -display $XDisp &>/dev/null &
		else
		    su $Usern -c "xscreensaver-command -display $XDisp -lock || (xscreensaver -display $XDisp -no-splash &sleep 1; xscreensaver-command -display $XDisp -lock) || (xlock -display $XDisp &)" &>/dev/null
		fi
	    fi
	done
    }
}

