--- /dev/null
+--- entrance/data/config/build_config.sh.in 2004-04-11 00:23:16.000000000 +0200
++++ entrance/data/config/build_config.sh.in.new 2005-01-08 15:49:36.768610184 +0100
+@@ -1,5 +1,5 @@
+ #!/bin/sh -e
+-DB="./entrance_config.db"
++DB="/var/lib/entrance/entrance_config.db"
+ rm -f $DB
+
+ # set auth to 1 for pam, 2 for shadow
+@@ -19,31 +19,22 @@
+ #edb_ed $DB add /entrance/fonts/1/str str "/usr/X11R6/lib/X11/fonts/Truetype/"
+ edb_ed $DB add /entrance/greeting/before str "Welcome to "
+ edb_ed $DB add /entrance/greeting/after str ""
+-edb_ed $DB add /entrance/session/count int 8
+-edb_ed $DB add /entrance/session/0/session str "default"
+-edb_ed $DB add /entrance/session/0/title str "Default"
+-edb_ed $DB add /entrance/session/0/icon str "default.png"
+-edb_ed $DB add /entrance/session/1/icon str "enlightenment.png"
+-edb_ed $DB add /entrance/session/1/title str "Enlightenment"
+-edb_ed $DB add /entrance/session/1/session str "Enlightenment"
+-edb_ed $DB add /entrance/session/2/session str "kde"
+-edb_ed $DB add /entrance/session/2/title str "KDE"
+-edb_ed $DB add /entrance/session/2/icon str "kde.png"
+-edb_ed $DB add /entrance/session/3/session str "gnome"
+-edb_ed $DB add /entrance/session/3/title str "Gnome"
+-edb_ed $DB add /entrance/session/3/icon str "gnome.png"
+-edb_ed $DB add /entrance/session/4/session str "blackbox"
+-edb_ed $DB add /entrance/session/4/title str "Blackbox"
+-edb_ed $DB add /entrance/session/4/icon str "blackbox.png"
+-edb_ed $DB add /entrance/session/5/session str "sawfish"
+-edb_ed $DB add /entrance/session/5/title str "Sawfish"
+-edb_ed $DB add /entrance/session/5/icon str "default.png"
+-edb_ed $DB add /entrance/session/6/session str "xfce"
+-edb_ed $DB add /entrance/session/6/title str "XFce"
+-edb_ed $DB add /entrance/session/6/icon str "xfce.png"
+-edb_ed $DB add /entrance/session/7/session str "failsafe"
+-edb_ed $DB add /entrance/session/7/title str "Failsafe"
+-edb_ed $DB add /entrance/session/7/icon str "failsafe.png"
++edb_ed $DB add /entrance/session/count int @COUNT@
++
++# lines starting with ^#session: will be parsed for each .desktop file
++# in /usr/share/xsessions where:
++# @SESSION@ is Exec=(*)
++# @TITLE@ is Name=(*)
++# @ICON@ is entrance icon if exist, or default
++# see /usr/share/entrance/images/sessions/
++# everything will by in /tmp/sessions
++
++#session:edb_ed $DB add /entrance/session/@NUM@/session str "@SESSION@"
++#session:edb_ed $DB add /entrance/session/@NUM@/title str "@TITLE@"
++#session:edb_ed $DB add /entrance/session/@NUM@/icon str "@ICON@"
++
++. /tmp/sessions
++
+ edb_ed $DB add /entrance/system/reboot int 1
+ edb_ed $DB add /entrance/system/halt int 1
+ edb_ed $DB add /entrance/user/remember int 1
+--- entrance/data/Makefile.am 2003-10-22 13:29:59.000000000 +0200
++++ entrance/data/Makefile.am.new 2005-01-08 15:50:12.962107936 +0100
+@@ -1,2 +1,2 @@
+-SUBDIRS = config images themes fonts users
++SUBDIRS = images themes fonts users
+
--- /dev/null
+#!/bin/sh
+# Copyright (c) 1999, 2000 Red Hat, Inc.
+
+# redirect errors to a file in user's home directory if we can
+for errfile in "${TMPDIR-/tmp}/.xsession-$USER" \
+ "/tmp/.xsession-$USER" \
+ "$HOME/.xsession-errors"
+do
+ if cp /dev/null "$errfile" 2> /dev/null ; then
+ chmod 600 "$errfile"
+ exec > "$errfile" 2>&1
+ break
+ fi
+done
+
+[ "`echo $PATH | grep -q /usr/X11R6/bin`" = "" ] && PATH="${PATH}:/usr/X11R6/bin"
+[ "`echo $PATH | grep -q "$HOME/bin"`" = "" ] && PATH="$PATH:$HOME/bin"
+
+userresources=$HOME/.Xresources
+usermodmap=$HOME/.Xmodmap
+userxkbmap=$HOME/.Xkbmap
+
+sysresources=/etc/X11/Xresources
+sysmodmap=/etc/X11/Xmodmap
+sysxkbmap=/etc/X11/Xkbmap
+
+# merge in defaults
+[ -f "$sysresources" ] && xrdb -merge "$sysresources"
+[ -f "$userresources" ] && xrdb -merge "$userresources"
+
+# merge in keymaps
+if [ -f "$sysxkbmap" ]; then
+ setxkbmap `cat "$sysxkbmap"`
+ XKB_IN_USE=yes
+fi
+
+if [ -f "$userxkbmap" ]; then
+ setxkbmap `cat "$userxkbmap"`
+ XKB_IN_USE=yes
+fi
+
+if [ -z "$XKB_IN_USE" -a ! -L /etc/X11/X ]; then
+ if grep '^exec.*/Xsun' /etc/X11/X > /dev/null 2>&1 \
+ && [ -f /etc/X11/XF86Config ]; then
+ xkbsymbols=`sed -n -e 's/^[ ]*XkbSymbols[ ]*"\(.*\)".*$/\1/p' /etc/X11/XF86Config`
+ if [ -n "$xkbsymbols" ]; then
+ setxkbmap -symbols "$xkbsymbols"
+ XKB_IN_USE=yes
+ fi
+ fi
+fi
+
+# xkb and xmodmap don't play nice together
+if [ -z "$XKB_IN_USE" ]; then
+ [ -f "$sysmodmap" ] && xmodmap "$sysmodmap"
+ [ -f "$usermodmap" ] && xmodmap "$usermodmap"
+fi
+
+unset XKB_IN_USE
+
+# run all system xinitrc shell scripts.
+for i in /etc/X11/xinit/xinitrc.d/* ; do
+ if [ -x "$i" ]; then
+ . "$i"
+ fi
+done
+
+# now, we see if xdm/gdm/kdm has asked for a specific environment
+case $# in
+ 1) case $1 in
+ failsafe)
+ exec xterm -geometry 80x24-0-0
+ ;;
+ gnome)
+ exec gnome-session
+ ;;
+ kde|kde1)
+# exec /usr/share/apps/switchdesk/Xclients.kde
+ ;;
+ kde2)
+# exec /usr/share/apps/switchdesk/Xclients.kde2
+ ;;
+ esac
+esac
+
+# otherwise, take default action
+if [ -f "$HOME/.xsession" ]; then
+ exec "$HOME/.xsession"
+elif [ -f "$HOME/.Xclients" ]; then
+ exec "$HOME/.Xclients"
+else
+ exec /etc/X11/xinit/Xclients
+fi
--- /dev/null
+#!/bin/sh
+# simple script that generates entrance config using build_config.sh.in
+# and .desktop files from /usr/share/xsessions
+
+CONFIGIN="/etc/X11/entrance/build_config.sh.in"
+CONFIGOUT="/tmp/build_config.sh"
+SESSIONS="/tmp/sessions"
+ICONDIR="/usr/share/entrance/images/sessions"
+
+die() {
+ echo "$2" >&2
+ exit $1
+}
+[ -f $CONFIGIN -a -r $CONFIGIN ] || \
+ die 1 "No config file $CONFIGIN, or not readable"
+
+[ -d /usr/share/xsessions ] || die 2 "No xsessions dir"
+
+# two common desktops
+cat << EOF > /tmp/default.desktop
+Name=Default
+Exec=default
+EOF
+cat << EOF > /tmp/failsafe.desktop
+Name=Failsafe
+Exec=failsafe
+EOF
+
+
+SESSION_SRTING="$(grep -E "^#session:" $CONFIGIN | sed 's/^#session://')"
+
+: > $SESSIONS
+NUM=0
+for DESKTOP in /tmp/default.desktop /usr/share/xsessions/*.desktop \
+ /tmp/failsafe.desktop; do
+
+ EXEC=$(grep -E "^Exec=" $DESKTOP | sed 's/^Exec=//' | \
+ sed 's_/_\\/_g')
+ [ -n "$EXEC" ] || ( echo "Skipping $DESKTOP !!!" >&2; continue )
+
+ NAME="$(grep -E "^Name=" $DESKTOP | sed 's/^Name=//' | \
+ sed 's_/_\\/_g')"
+ [ -n $NAME ] || NAME="$EXEC"
+
+ ICON="$(basename $DESKTOP .desktop).png"
+ [ -r $ICONDIR/$ICON ] || ICON=default.png
+
+ echo "$SESSION_SRTING" | \
+ sed -e "s/@NUM@/$NUM/g" -e "s/@SESSION@/$EXEC/g" \
+ -e "s/@TITLE@/$NAME/g" -e "s/@ICON@/$ICON/g" >> $SESSIONS
+ NUM=$(($NUM+1))
+done
+
+sed -e "s/@auth_mode@/1/" -e "s/@COUNT@/$NUM/" $CONFIGIN > $CONFIGOUT
+chmod 755 $CONFIGOUT
+exec $CONFIGOUT
--- /dev/null
+#!/bin/sh
+#
+# entrance: Starts the Enlighted Display Manager
+#
+# Version: @(#) /etc/rc.d/init.d/entrance 0.1
+#
+# chkconfig: 5 95 5
+# description: Starts and stops the Enlighted Display Manager at startup and \
+# shutdown..
+#
+# config: /etc/X11/entrance/build_config.sh.in
+# probe: true
+# hide: true
+
+. /etc/rc.d/init.d/functions
+
+# Get service config
+if [ -f /etc/sysconfig/entrance ]; then
+ . /etc/sysconfig/entrance
+fi
+
+RETVAL=0
+# See how we were called.
+case "$1" in
+ start)
+ # Check if the service is already running?
+ if [ ! -f /var/lock/subsys/entrance ]; then
+ msg_starting "Enlightened Display Manager"
+ /etc/X11/entrance/generate-config
+ if [ -r /var/lib/entrance/entrance_config.db ]; then
+ daemon /usr/sbin/entranced
+ RETVAL=$?
+ [ $RETVAL -eq 0 ] && touch /var/lock/subsys/entrance
+ else
+ fail
+ fi
+ else
+ msg_already_running "Enlightened Display Manager"
+ fi
+ ;;
+ stop)
+ if [ -f /var/lock/subsys/entrance ]; then
+ msg_stopping "Enlightened Display Manager"
+ killproc entranced
+ rm -f /var/lock/subsys/entrance
+ else
+ msg_not_running "Enlightened Display Manager"
+ fi
+ ;;
+ status)
+ status entranced
+ exit $?
+ ;;
+ restart|force-reload)
+ $0 stop
+ $0 start
+ exit $?
+ ;;
+ *)
+ msg_usage "$0 {start|stop|restart|force-reload|status}"
+ exit 3
+esac
+
+exit $RETVAL