#!/bin/sh
SESS=$1
PARPID=$2
DESKTOP=$3
MYPID=$$

mkdir -p $SESS
echo -e "XDISPLAY=$DISPLAY\nXHOST=$HOSTNAME\nXSESS=$MYPID" > $SESS/$PARPID

if [ -n "$DESKTOP" ]; then
    case $DESKTOP in
    	failsafe)
        xsetroot -cursor_name left_ptr
	type -p rxvt > /dev/null >& 2 && exec rxvt -geometry 80x24-0-0
	type -p xterm > /dev/null >& 2 && exec xterm -geometry 80x24-0-0
	type -p xvt > /dev/null >& 2 && exec xvt
	type -p twm > /dev/null >& 2 && exec twm
	;;
	default)
	;;
	*)
	if type -p "$DESKTOP" > /dev/null; then
	    exec /bin/sh -c "$DESKTOP"
	else
	    exec /bin/sh -c "$(/usr/sbin/chksession -x=$DESKTOP)"
	fi
	;;
    esac
fi

# otherwise, take default action
if [ -x "$HOME/.xsession" ]; then
        xsetroot -cursor_name left_ptr
	exec "$HOME/.xsession"
elif [ -x "$HOME/.Xclients" ]; then
        xsetroot -cursor_name left_ptr
	exec "$HOME/.Xclients"
fi

# We may try with chksession
if [ -x /usr/sbin/chksession ];then
#get the first available
	SESSION=$(/usr/sbin/chksession -F)
	[ -n "$SESSION" -a "$SESSION" != Default ] && exec sh -c "$(/usr/sbin/chksession -x=$SESSION)"
fi

# Argh! Nothing good is installed. Fall back to icewm
if [ -x /usr/X11R6/bin/icewm ];then
	exec /usr/X11R6/bin/icewm
else
	# gosh, neither icewm is available; 
	# fall back to failsafe settings
        xsetroot -cursor_name left_ptr
	xclock -geometry 100x100-5+5 &
	xvt -geometry +0+50 &
	if [ -x "$BROWSER" -a -f /usr/doc/HTML/index.html ]; then
	    $BROWSER /usr/share/doc/HTML/index.html &
	fi
	if [ -x /usr/X11R6/bin/icewm-light ];then
	    exec icewm-light
	elif [ -x /usr/X11R6/bin/twm ];then
	    exec twm
	else
	    exec xsm
	fi
fi
