#!/bin/bash
#
# /etc/tacix/Xsession
#
# tacix Xsession sample file
# Lets make this simple.

# umask is 0000 without this. Probably a better fix is needed
. /etc/profile

# The following lines should be moved to a configuration file
BOOTSTRAP_SESSION="1"

CMD_GNOME_SESSION="gnome-session"
CMD_KDE_SESSION="startkde"
CMD_CDE_SESSION="xfce-session"
CMD_UNIX_DEFAULT="$CMD_GNOME_SESSION"
CMD_CONSOLE="xterm"

CMD_XSESSION="/etc/X11/Xsession"
CMD_GDM_XSESSION="/etc/gdm/Xsession"

# Default action
STARTUP="$CMD_GNOME_SESSION"
XSESSION="$CMD_XSESSION"

SYSSESSIONDIR=/etc/tacix/Xsession.d

if [ $NX_SESSION_TYPE = "unix-gnome" ]
then
  STARTUP="$CMD_GNOME_SESSION"
  #[ -x "$CMD_GDM_XSESSION" ] && XSESSION="$CMD_GDM_XSESSION custom"

elif [ $NX_SESSION_TYPE = "unix-kde" ]
then
  STARTUP="$CMD_KDE_SESSION"

elif [ $NX_SESSION_TYPE = "unix-cde" ]
then
  STARTUP="$CMD_CDE_SESSION"

elif [ $NX_SESSION_TYPE = "unix-default" ]
then
  STARTUP="$CMD_UNIX_DEFAULT"

elif [ $NX_SESSION_TYPE = "unix-console" ]
then
  STARTUP="$CMD_CONSOLE"
  XSESSION=""

elif [ $NX_SESSION_TYPE = "unix-application" ]
then
  STARTUP="$NX_APPLICATION"
  XSESSION=""

fi

SESSIONFILES=$(run-parts --list $SYSSESSIONDIR)
if [ -n "$SESSIONFILES" ]
then
  set +e
  for SESSIONFILE in $SESSIONFILES; do
    . $SESSIONFILE
  done
  set -e
fi

unset NX_SESSION_TYPE
unset NX_APPLICATION

# We need to wait the display become available
if [ -n `which xprop` ]
then
  xprop -root >/dev/null 2>/dev/null
  while [ "$?" = "1" ]
  do
    sleep 0.5
    xprop -root >/dev/null 2>/dev/null
  done
fi

if [ -z `which $STARTUP` ]
then
  $NX_CLIENT --dialog error --message "Command $STARTUP could not be found" --caption "Error" --class error
  exit 1
fi

XSESSION=`which $XSESSION`

if [ "$BOOTSTRAP_SESSION" = "1" -a -n "$XSESSION" ]
then
  export STARTUP
  exec $XSESSION
else
  exec $STARTUP
fi

exit 0

# vim:set ai et sts=2 sw=2 tw=80:
