#!/bin/bash

# xx : a flexible replacement for startx
# author S.A. Oct 18 2000. - May 22 2004

USAGE="Usage: xx [program [options] [-- X-options]]"

case "$1" in
   -* ) echo $USAGE ; exit 1 ;;

   "" ) COMMAND="$HOME/.xsession"
   	[ -x $COMMAND ] || COMMAND=`which xterm`
	XARGS="" ;;
    * )	FULLEXE=`which --skip-alias $1`
	if [ "$FULLEXE" == "" ] ; then
		echo "xx: \"$1\" , file not executable" 
		exit 1 ;
	else
		shift
		# now check for '--' and separate command and xargs
		if echo $@ | grep -- '--' >/dev/null 2>&1 ; then
			COMMAND=$FULLEXE" "$(echo $@ | sed -e 's/--.*$//')
			XARGS=$(echo "" $@ | sed -e 's/^.*--//')
		else 
			COMMAND="$FULLEXE $*";
			XARGS=""
		fi
	fi
esac

# X places locks in /tmp/.X0-lock
# find a display not locked
i=0
while [ -f /tmp/.X${i}-lock ] ; do
	let i=$i+1
done

if ! echo $XARGS | grep -- "-depth" ; then
  [ `basename $0` == "xxx" ] && XARGS="$XARGS -depth 24"
fi

echo xx: Starting \"$COMMAND -- $XARGS\" on display $i > /var/log/xx.log
startx $COMMAND -- :$i $XARGS 
# startx $COMMAND -- :$i $XARGS -quiet
