#!/bin/sh
#
# script by grifter 2001
#
# A quicklauncher for choosing different Window Managers
# using different X Servers if one is already in use.

GMA='-gamma 1'
# Gamma values, 1 is default.

#Following lines are for when I can be arsed to put in an xmodmap checker
#xmap_check () {
#
#if [ -f ~/.xmodmap ]; then XMAP=~/.xmodmap
#   elif [ -f ~/.Xmodmap ]; then XMAP=~/.Xmodmap
#   elif [ -f ~/.xmodmaprc ]; then XMAP=~/.xmodmaprc
#   elif [ -f ~/.Xmodmaprc ]; then XMAP=~/.Xmodmaprc
#   else echo "No xmodmap found."
#fi
#if [ -n $XMAP ]; then


X0=/tmp/.X0-lock
X1=/tmp/.X1-lock
X2=/tmp/.X2-lock
X3=/tmp/.X3-lock
X4=/tmp/.X4-lock
X5=/tmp/.X5-lock

TCP='-nolisten tcp'
# Will not open port 6000, security never hurts (:

echo -n "Correlating with prior X Servers..."
sleep 1
if [ ! -f $X0 ]; then XSERVER=0
   elif [ ! -f $X1 ]; then XSERVER=1
   elif [ ! -f $X2 ]; then XSERVER=2
   elif [ ! -f $X3 ]; then XSERVER=3
   elif [ ! -f $X4 ]; then XSERVER=4
   elif [ ! -f $X5 ]; then XSERVER=5
   else echo " Failure."
   echo "Maximum number of X Servers in use."
   echo "Kill one and try again."
   exit 1
fi
echo " Done."
# As if anyone will ever use more than 6 (:

e_start () {
echo -n "Setting Enlightenment as Window Manager..."
echo "exec enlightenment" > ~/.xinitrc
sleep 1
echo " Done."
sleep 1
startx -- :$XSERVER $TCP $GMA
}

b_start () {
echo -n "Setting Black Box as Window Manager..."
echo "exec blackbox" > ~/.xinitrc
echo "exec bbkeys -i &" >> ~/.xinitrc
echo "" >> ~/.xinitrc
sleep 1
echo " Done."
sleep 1
startx -- :$XSERVER $TCP $GMA
}

k_start () {
echo -n "Setting KDE as Window Manager..."
echo "exec startkde" > ~/.xinitrc
sleep 1
echo " Done."
sleep 1
startx -- :$XSERVER $TCP $GMA
}

w_start () {
echo -n "Setting Window Maker as Window Manager..."
echo "exec wmaker" > ~/.xinitrc
sleep 1
echo " Done."
sleep 1
startx -- :$XSERVER $TCP $GMA
}

x_start () {
echo -n "Setting XFCE as Window Manager..."
echo "exec startxfce" > ~/.xinitrc
sleep 1
echo " Done."
sleep 1
startx -- :$XSERVER $TCP $GMA
}

i_start () {
echo -n "Setting Ion as Window Manager..."
echo "exec ion" > ~/.xinitrc
sleep 1
echo " Done."
sleep 1
startx -- :$XSERVER $TCP $GMA
}

t_start () {
echo -n "Setting wm-tmp-tst as Window Manager..."
echo "exec ion" > ~/.xinitrc
sleep 1
echo " Done."
sleep 1
startx -- :$XSERVER $TCP $GMA
}

case "$1" in
   e)
       e_start
       ;;
   b)
       b_start
       ;;
   k)
       k_start
       ;;
   w)
       w_start
       ;;
   x)
       x_start
       ;;
   t)
       t_start
       ;;
   i)
       i_start
       ;;
   *)
       echo "Usage: x { k | b | e | w | x | a }"
       echo "       k to load KDE"
       echo "       b to load Black Box"
       echo "       e to load Enlightenment"
       echo "       i to load Ion"
       echo "       w to load Window Maker"
       echo "       x to load XFCE"
       echo "       t to load temporary"
       exit 0
esac

exit 1
