entrance is the login manager for Enlightenment. I enjoy using it due its nifty effects, although it is not without problems. As mentioned on the E17 Installation page, there is currently a bug in entrance that will not allow users using the csh or tcsh shell to login properly, although I've provided a hack there to get around it. Assuming that it has been compiled properly, there are still three or four main issues that need to be addressed to get entrance working properly:
1.) Integrating Enlightenment into the Xsession file
entrance looks at the Xsession file to figure out which Windows Managers are present. First of all, check to make sure that entrance is looking in the right place:
~> entrance_edit
You should see a line that says: xsession = "/etc/X11/xinit/Xsession"
If it doesn't, it means that you failed to compile entrance properly if you are using the easy_e17.sh script (see the E17 Installation page), or that Didier did not compile entrance properly if you are using his repository. The problem can easily be fixed with the following command: ~> sudo entrance_edit --xsession /etc/X11/xinit/Xsession
entrance should now look for Xsession in the correct place. You can verify this by executing the entrance_edit command again.Next, we need to edit /etc/X11/xinit/Xsession with sudo and add a few lines for Enlightenment, so that entrance knows that it is available for use. Locate the relevant parts in the file, and insert the following text, as necessary:
[SNIP]
case "$1" in
failsafe)
exec -l $SHELL -c "xterm -geometry 80x24-0-0"
;;
gnome)
exec -l $SHELL -c "$SSH_AGENT $DBUS_LAUNCH gnome-session"
;;
# The following lines should be added.
enlightenment)
exec -l $SHELL -c "$SSH_AGENT $DBUS_LAUNCH enlightenment"
;;
# End of changes.
kde|kde1|kde2)
exec -l $SHELL -c "$SSH_AGENT $DBUS_LAUNCH $SWITCHDESKPATH/Xclients.kde"
;;
twm)
# fall back to twm
exec -l $SHELL -c "$SSH_AGENT $DBUS_LAUNCH $SWITCHDESKPATH/Xclients.twm"
;;
*)
[SNIP]
2.)
Configuration of the xserver locationcase "$1" in
failsafe)
exec -l $SHELL -c "xterm -geometry 80x24-0-0"
;;
gnome)
exec -l $SHELL -c "$SSH_AGENT $DBUS_LAUNCH gnome-session"
;;
# The following lines should be added.
enlightenment)
exec -l $SHELL -c "$SSH_AGENT $DBUS_LAUNCH enlightenment"
;;
# End of changes.
kde|kde1|kde2)
exec -l $SHELL -c "$SSH_AGENT $DBUS_LAUNCH $SWITCHDESKPATH/Xclients.kde"
;;
twm)
# fall back to twm
exec -l $SHELL -c "$SSH_AGENT $DBUS_LAUNCH $SWITCHDESKPATH/Xclients.twm"
;;
*)
[SNIP]
If you used the easy_e17.sh script to install E17, you should be able to skip over this section. But if you are using Didier's repositories, entrance may be setup for a system that still uses X11R6 from X.org (the Foundation that creates the X Window System) instead of the new X11R7 files that were first introduced in Fedora Core 5. This can be checked with the following command:
~> entrance_edit
Look at the second line. If it
says: xserver = "/usr/X11R6/bin/X -quiet -nolisten
tcp vt7"
you have a
problem and entrance
will not launch successfully. It will certainly try after you
have finished the other configuration steps (as can be verified by
checking your /var/log/messages
file), but it will still fail because X.org now uses X11R7 instead of X11R6. Notice the old release
notes of Fedora Core 5, and see the third point in particular:The following list includes some of the more visible changes for developers in X11R7:
*
The entire build system has changed from imake to the GNU autotools
collection.
*
Libraries now install pkgconfig *.pc files,
which should now always be used by software that depends on these
libraries, instead of hard coding paths to them in /usr/X11R6/lib
or elsewhere.
*
Everything is now installed directly into /usr instead
of /usr/X11R6.
All software that hard codes paths to anything in /usr/X11R6
must now be changed, preferably to dynamically detect the proper
location of the object. Developers are strongly advised
against
hard-coding the new X11R7
default paths.
*
Every library has its own private source RPM
package, which creates a runtime binary subpackage and a -devel
subpackage.
Specific to entrance, notice that it looks for X in /usr/X11R6/bin, instead of in /usr/bin, where everything is now installed. This can be fixed by executing the following command:
~>
sudo entrance_edit --xserver "/usr/bin/X -quiet -nolisten tcp vt7"
Now run: ~> entrance_edit
The second line
should now say: xserver = "/usr/bin/X -quiet -nolisten tcp vt7"
entrance
will now run in
F7, but only if the /etc/entrance_config.cfg
is not changed again (say, when updated rpm packages
are installed). I have asked Didier to change his
configuration scripts when he develops new rpm packages
for entrance,
and I believe that the problem is now permanently fixed. But
if it crops up again, you now know how to fix it.3.) Edit /etc/X11/prefdm to use entrance as the Default Login Manager
Edit /etc/X11/prefdm using sudo. Locate the relevant parts in the file, and insert the following text, as necessary:
[SNIP]
if [ -f /etc/sysconfig/desktop ]; then
. /etc/sysconfig/desktop
if [ "$DISPLAYMANAGER" = GNOME ]; then
preferred=/usr/sbin/gdm
# The following lines should be added.
# Note that the DISPLAYMANAGER variable
# must be used in /etc/sysconfig/desktop.
elif [ "$DISPLAYMANAGER" = E17 ]; then
preferred=/usr/local/sbin/entranced
# End of changes.
elif [ "$DISPLAYMANAGER" = KDE ]; then
preferred=/usr/bin/kdm
elif [ "$DISPLAYMANAGER" = XDM ]; then
preferred=/usr/bin/xdm
elif [ -n "$DISPLAYMANAGER" ]; then
preferred=$DISPLAYMANAGER
fi
fi
[SNIP]
# Fallbacks, in order
exec gdm "$@" >/dev/null 2>&1 </dev/null
# The following line should be added.
exec entranced "$@" >/dev/null 2>&1 </dev/null
#End of changes.
exec kdm "$@" >/dev/null 2>&1 </dev/null
exec xdm "$@" >/dev/null 2>&1 </dev/null
[SNIP]
If you prefer to
fallback to entranced
first, opposed to gnome
(or something else), you can just move the new fallback code to the
desired place with regard to the order of importance (i.e., before the gdm snippet).if [ -f /etc/sysconfig/desktop ]; then
. /etc/sysconfig/desktop
if [ "$DISPLAYMANAGER" = GNOME ]; then
preferred=/usr/sbin/gdm
# The following lines should be added.
# Note that the DISPLAYMANAGER variable
# must be used in /etc/sysconfig/desktop.
elif [ "$DISPLAYMANAGER" = E17 ]; then
preferred=/usr/local/sbin/entranced
# End of changes.
elif [ "$DISPLAYMANAGER" = KDE ]; then
preferred=/usr/bin/kdm
elif [ "$DISPLAYMANAGER" = XDM ]; then
preferred=/usr/bin/xdm
elif [ -n "$DISPLAYMANAGER" ]; then
preferred=$DISPLAYMANAGER
fi
fi
[SNIP]
# Fallbacks, in order
exec gdm "$@" >/dev/null 2>&1 </dev/null
# The following line should be added.
exec entranced "$@" >/dev/null 2>&1 </dev/null
#End of changes.
exec kdm "$@" >/dev/null 2>&1 </dev/null
exec xdm "$@" >/dev/null 2>&1 </dev/null
[SNIP]
4.) Configuring /etc/sysconfig/desktop.
Finally, we must change /etc/sysconfig/desktop:
DISPLAYMANAGER="E17"
Finally, hit Ctrl-Alt-F1
(hold all three down at once), and login to a terminal. After
logging in, type: ~>
sudo init 3
to change your
Run Level to Multi-User
Mode. This will kill gdm,
the
Gnome daemon and login manager. Then change your Run Level
back to Full
Multi-User Mode
(X-based logins): ~>
sudo init 5
If you have
enough time before X
launches,
you can just "exit"
from the terminal. After waiting a couple of seconds, entrance
should now successfully launch.If you do not wish to use entrance, the only thing that needs to be changed from now on is the variable in /etc/sysconfig/deskop (and changing back and forth between Run Levels 3 and 5). My /etc/sysconfig/deskop file currently looks like:
DISPLAYMANAGER="E17"
#DISPLAYMANAGER="GNOME"
If I want to run Gnome, I comment out the E17 line and uncomment the GNOME line.#DISPLAYMANAGER="GNOME"
Overall, integrating entrance properly into Fedora is a bit complicated, but it works. Next up, is General Configuration for E17.


