#!/bin/sh

# make sure that $XFCE4HOME is set
if test x"$XFCE4HOME" = x""; then
	XFCE4HOME=$HOME/.xfce4
	export XFCE4HOME
fi

# verify that $XFCE4HOME exists and create it on-demand
test ! -d $XFCE4HOME/          && mkdir -m 0700 $XFCE4HOME/
test ! -d $XFCE4HOME/settings/ && mkdir -m 0700 $XFCE4HOME/settings/

# fix broken $UID on some system...
if test "x$UID" = "x"; then
	UID=`id -u`
fi

# create temp file for X resources
XRESOURCES=`mktemp /tmp/xrdb.XXXXXX`

# Has to go prior to merging Xft.xrdb, as its the "Defaults" file
test -r $HOME/.Xdefaults && cat $HOME/.Xdefaults >> $XRESOURCES

# Check if the user wants to override the above defaults (set by
# mcs ui plugin)
if test -r $XFCE4HOME/Xft.xrdb; then
	cat $XFCE4HOME/Xft.xrdb >> $XRESOURCES
else
	# Those are fallback settings, use the ui plugin to change it
	# or add your overrides to ~/.Xresources
	# Xft DPI: 96
	# Xft.hintstyle: hintnone/hintslight/hintmedium/hintfull
	# Xft hinting: 1/0
cat >> $XRESOURCES << EOF
Xft.dpi: 96
Xft.hinting: 1
Xft.hintstyle: hintmedium
EOF
fi

# ~/.Xresources contains overrides to the above
test -r $HOME/.Xresources && cat $HOME/.Xresources >> $XRESOURCES

# load all X resources
xrdb -nocpp -merge $XRESOURCES
rm -f $XRESOURCES

# load local modmap
test -r $HOME/.Xmodmap && xmodmap $HOME/.Xmodmap

# Launch xscreensaver (if available), but only as non-root user
test $UID -gt 0 -a -z "$VNCSESSION" && xscreensaver -no-splash &

# Run xfce4-session if installed
xfcesm=`which xfce4-session`
case "x$xfcesm" in
	x|xno*)
		;;
	*)
		exec $xfcesm
		# Shouldn't get there, but anyway...
		exit
		;;
esac

# this is only necessary when running w/o xfce4-session
xsetroot -solid black -cursor_name watch

# or use old-fashioned startup script otherwise
xfce-mcs-manager
xfwm4 --daemon

# Start-up stuff from ~/Desktop/Autostart directory, if it exists
# (as it seems to be the new standard)
if test -d "$HOME/Desktop/Autostart"; then
  for i in `ls -1 -L ${HOME}/Desktop/Autostart/ 2>/dev/null`; do
    if test -x $HOME/Desktop/Autostart/$i; then
      $HOME/Desktop/Autostart/$i &
    fi
  done
fi

xftaskbar4&
xfdesktop&
xfcalendar &

panel=`which xfce4-panel`
case "x$panel" in
	x|xno*)
		;;
	*)
		$panel
		ret=$?
		while test $ret -ne 0; do
			xmessage -center -file - -timeout 20 -title Error <<EOF
A crash occured in the panel
Please report this to the xfce4-dev@xfce.org list
Meanwhile the panel will be restarted
EOF
			cat >&2 <<EOF
A crash occured in the panel
Please report this to the xfce4-dev@xfce.org list
Meanwhile the panel will be restarted
EOF
			$panel
			ret=$?
		done
		;;
esac

xsetroot -bg white -fg red  -solid black -cursor_name watch
