CSUF LogoCSUF Site Navigation
optics.csufresno.edu

F9 Enlightenment DR17 (E17) E17 Entrance Setup

Department of Electrical and Computer Engineering
Assistant Professor Gregory R. Kriehn
Forums
Wiki
F9 E17 Entrance Setup

entrance is the login manager for Enlightenment. I enjoy using it due its nifty effects, although it is not without problems. There is currently a bug in entrance that will not allow users using the csh or tcsh shell to login properly, but since I have now switched to bash, I have sidestepped the problem.

NOTE:  Entrance seems to be having major SELinux and pam.d conflicts with Fedora 9. Until I get all of the issues sorted out, the only way to get it working properly is to first disable SELinux:

~> sudo setenforce 0
Since I do not like disabling SELinux, I am not currently using Entrance as my Login Manager. Furthermore, Entrance is no longer working correctly with pam, meaning that sound is not working either (this is a common problem with Entrance). I'm not happy about this since Fedora 9's gdm is horrific... ...but with Entrance somewhat non-functional, there is little choice in the matter.

I have verified that the following procedure does work on Fedora 9 with SELinux disabled, though.

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:

Integrating Enlightenment into the Xsession file


The first thing we need to do is 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"
            ;;
        # The following lines have been added.
        enlightenment)
            exec 
$SSH_AGENT /bin/sh -c "exec -l $SHELL -c \"enlightenment\""
            ;;
        # End of changes.
        gnome)
            exec -l $SHELL -c "$SSH_AGENT $DBUS_LAUNCH gnome-session"
            exec $SSH_AGENT /bin/sh -c "exec -l $SHELL -c \"$DBUS_LAUNCH gnome-session\""
            ;;
        kde|kde1|kde2)
            exec $SSH_AGENT /bin/sh -c "exec -l $SHELL -c \"$DBUS_LAUNCH startkde\""
            ;;
        twm)
        # fall back to twm
            exec $SSH_AGENT /bin/sh -c "exec -l $SHELL -c \"DBUS_LAUNCH twm\""
            ;;
        *)

[SNIP]
exec $SSH__AGENT /bin/sh -c "exec -l $SHELL -c \"enlightenment\"" should span a single line.

Configuration of the xserver location

If you used my RPMs or the easy_e17.sh script to install E17, you should be able to skip over this section. But if you are using Didier's old 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, 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.

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 have been added.
        # Note that the DISPLAYMANAGER variable
        # must be used in /etc/sysconfig/desktop.
        elif [ "$DISPLAYMANAGER" = E17 ]; then
                preferred=/usr/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 lines have been 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).

NOTE:  If you are using the easy_e17.sh script, and entrance was installed by default to /usr/local/sbin/, then the preferred line should read:

preferred=/usr/local/sbin/entranced
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/desktop (and changing back and forth between Run Levels 3 and 5). My /etc/sysconfig/desktop 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.

Overall, integrating entrance properly into Fedora is a bit complicated, but it works.  Next up, is General Configuration for E17.