# $Id: 50x11-common_determine-startup 305 2005-07-03 18:51:43Z dnusinow $

# This file is sourced by Xsession(5), not executed.

# If no X session startup program was passed to the Xsession script as an
# argument (e.g., by the display manager), or if that program was not
# executable, fall back to looking for a user's custom X session script, if
# allowed by the options file.
if [ -z "$STARTUP" ]; then
  if grep -qs ^allow-user-xsession "$OPTIONFILE"; then
    for STARTUPFILE in "$USERXSESSION" "$ALTUSERXSESSION"; do
      if [ -e "$STARTUPFILE" ]; then
        if [ -x "$STARTUPFILE" ]; then
          STARTUP="$STARTUPFILE"
        else
          STARTUP="sh $STARTUPFILE"
        fi
        break
      fi
    done
  fi
fi

# If there is still nothing to use for a startup program, try the system
# default session manager, window manager, and terminal emulator.
if [ -z "$STARTUP" ]; then
  if [ -x /usr/bin/x-session-manager ]; then
    STARTUP=x-session-manager
  elif [ -x /usr/bin/x-window-manager ]; then
    STARTUP=x-window-manager
  elif [ -x /usr/bin/x-terminal-emulator ]; then
    STARTUP=x-terminal-emulator
  fi
fi

# If we still have not found a startup program, give up.
if [ -z "$STARTUP" ]; then
  ERRMSG="unable to start X session ---"
  if grep -qs ^allow-user-xsession "$OPTIONFILE"; then
    ERRMSG="$ERRMSG no \"$USERXSESSION\" file, no \"$ALTUSERXSESSION\" file,"
  fi
  errormsg "$ERRMSG no session managers, no window managers, and no terminal" \
           "emulators found; aborting."
fi

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