CSUF LogoCSUF Site Navigation
optics.csufresno.edu

F7 Enlightenment DR17 (E17) E17 Entrance Setup

Department of Electrical and Computer Engineering
Assistant Professor Gregory R. Kriehn
Forums
Wiki
F7 E17 Entrance Setup
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 location
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).

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.

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