Exploring the Enlightenment 17 window manager

Let There be Light

Enlightenment has a large community of fans who are patiently waiting for a new version. If you are brave enough to try out Development Release 17, you'll find an aesthetically pleasing and extremely flexible window manager.

By Karsten Jäger

Enlightenment started life in the year 1997 as a Fvwm window manager hack. The Enlightenment developers are still working on version 0.17, which will provide a feature-rich desktop environment that is aesthetically pleasing and gives users as much freedom as possible.

Although the previous version, Enlightenment 16, is several years old now and has a large community of fans, the history of the current developer version, Enlightenment DR17 (Development Release 17, also known as E17) has been anything but smooth. The developers have had to rewrite numerous tools and libraries, and they have completely ditched much of the code in the process. The fact that many of the Enlightenment developers are also responsible for other important libraries - such as the Imlib2 graphics library, which is used in Gnome - has also had an effect on the progress.

Even though E17 is still at the pre-alpha stage, many Enlightenment users have moved to this version to provide bug reports and speed up development. E17 is stable and well worth a try. But if you do decide to take the plunge, you should be aware that Enlightenment 17 is subject to change. The configuration file syntax keeps changing; an update could simply delete your existing configuration and replace it with a clean version; needless to say, you could lose your customized settings.


The easiest way of trying out E17 is to load the Elive [2] live CD. Experts can pick up the latest code from the CVS. There are a few helper scripts for this [3],[4]. Another script builds the required Debian packages [5] straight from the CVS. Using ready-to-install packages is an easier way of installing. Packages for various distributions are available, and you can check the "Installation" box for more details.

After setting up E17, the window manager comes up with a clean and tidy look and feel (Figure 1). By default, the modular window manager loads just a few of the many modules. This is E17's way of saving resources. E17 performs well on older hardware. Even the default E17 configuration has some optical highlights, including animated window title bars with a silver shadow. Enlightment 17's IBar kicker draws a kind of lampshade around the selected icon, which flashes at the same time.

Figure 1: A neat Enlightenment desktop with the default theme.

The members of the Enlightenment team have installation packages and other experimental packages for some distributions.

The easiest way for users with Suse Linux to install is to go to the Packman repository. Set up the http://packman.iu-bremen.de server and the suse/Version directory as your installation source for Yast, replacing Version with your version of Suse.

If you have Fedora Core 4, Didier Casse has a program at [6] that sets up the Yum package manager to use the required repository. Users with Fedora Core 2 and 3 will need to add the entry for the repository manually. The /etc/yum.conf entry looks like this:

name=Didier's yum repository for e17 apps/lib

The X in this listing represents the Fedora version. The yum check-update and yum install enlightenment command will install E17.

Developer Shadoi has packages for Debian (Sid) and Ubuntu (Breezy). Just add an entry to /etc/apt/sources.list, and then run apt-get update and apt-get install enlightenment to install.

# E17 for Debian
deb http://www.soulmachine.net/debian unstable/

# E17 for Breezy
deb http://www.soulmachine.net/breezy unstable/

As the older Enlightenment version 16 is also available in the repositories; you may need to force the installation of DR 17 (0.16.999.xxx).

To install Enlightenment 17 on a system running the Gentoo Linux distribution, you need a few new entries in your /etc/portage/package.keywords file (see the "Portage Keywords" box). However, a simple emerge will not work. You need to install the programs and libraries in the correct order to resolve any possible dependencies and make sure that everything works smoothly. Try the following command for the install:

emerge -av dev-db/edb eet imlib2 imlib2_loaders evas ecore epeg epsilon embryo edje esmart emotion etox ewl
engrave  e  entice elicit  examine engage  e_utils entrance xine-lib emotion envision elation evidence eterm enotes equate

For all distributions, you will need an entry for E17 in the display manager; and if you run startx, you will need an entry in the ~/.xinitrc file.

Portage Keywords
01 nonumber
02 #e17 cvs stuff
03 app-misc/evidence -*
04 app-misc/examine -*
05 app-misc/enotes -*
06 dev-db/edb -*
07 dev-libs/eet -*
08 dev-libs/embryo -*
09 dev-libs/engrave -*
10 dev-util/e_utils -*
11 mail-client/embrace -*
12 media-gfx/eclips -*
13 media-gfx/elicit -*
14 media-gfx/entice -*
15 media-gfx/imlib_tools ~x86
16 media-libs/edje -*
17 media-libs/emotion -*
18 media-libs/epeg -*
19 media-libs/epsilon -*
20 media-libs/etox -*
21 media-libs/imlib2 -*
22 media-libs/imlib2_loaders -*
23 media-libs/xine-lib -*
24 media-video/eclair -*
25 media-video/envision -*
26 media-video/elation -*
27 net-news/erss -*
28 sci-calculators/equate -*
29 sys-fs/evfs -*
30 x11-libs/ecore -*
31 x11-libs/esmart -*
32 x11-libs/evas -*
33 x11-libs/ewl -*
34 x11-misc/e17genmenu -*
35 x11-misc/engage -*
36 x11-misc/entrance -*
37 x11-misc/iconbar -*
38 x11-plugins/e_modules -*
39 x11-terms/eterm -*
40 x11-terms/enterminus -*
41 x11-wm/e -*


In contrast to other window managers, Enlightenment 17 uses binary configuration files. This means a change in configuration habits for many users. Besides the enlightenment_remote command line tool, E17 now has the graphical Configuration Panel (Figure 2) that has taken E17 a long way towards more user-friendliness. However, the enlightenment_remote tool still offers more settings than the graphical front-end. For example, only the command line tool can load modules and change keyboard shortcuts. enlightenment_remote -h gives users a short explanation of each option.

Figure 2: The new graphical configuration tool.

The Configuration Panel is divided into Focus Settings (Figure 3), Desktop Settings, Window Manipulation, and Window Display. Users can perform a number of simple to advanced configuration steps to influence the window manager's behavior.

Figure 3: The Enlightenment 17 Focus Settings dialog box.

Binary .eap files are also responsible for launching programs. These files not only include the program command, but also the program icons. To create a new eap, users first launch the window menu and click on Create Icon (Figure 4). This opens the Eap Editor (Figure 5). The App name field expects the program name, and the Executable field expects the program command line, including any parameters. Clicking on the large field below Icon opens the Efm file manager, where you can select an icon.

Figure 4: The Create Icon button lets you create new program icons.

Figure 5: The Eap Editor associates an icon with a program or command.

Despite all this binary wizardry, you'll still find a few text-based configuration files, for example, ~/.e/e/applications/bar/.order. These files, and the other .order files, are used to change the order of the IBar entries, bookmarks, and other modules. The files have a simple structure with just one eap file per line:


Backgrounds, Modules, and More

Backgrounds are also stored in binary format as *.edj files, and can be either static or animated. By default, E17 has four virtual desktops, with individually configurable backgrounds. Again, configuration is restricted to the enlightenment_remote tool:

enlightenment_remote -desktop-bg-add 0 0 0 0 /path/to/background.edj
enlightenment_remote -desktop-bg-add 0 0 1 0 /path/to/background.edj
enlightenment_remote -desktop-bg-add 0 0 2 0 /path/to/background.edj
enlightenment_remote -desktop-bg-add 0 0 3 0 /path/to/background.edj

Binary background files of this type are created by the edje_cc program, which builds an EDJ file from a directory with an image and the background.edc file. The user manual has a working example at [9]. Working backgrounds are available on the website at Get-e.org [8], and you just need to drop them into the ~.e/e/backgrounds/ directory.

For genuine transparency, E17 needs add-on modules, and the developers do not intend to integrate this feature in the future. Eterm's fake-transparency can be used with E17, but be warned: strange and non-reproducible errors can, and probably will, occur.

One of E17's major strengths is its modular design. In contrast to the major desktop environments, it loads just a few essential modules, as you can see from the menu in Figure 1. However, it is well worth the trouble of loading and enabling some additional modules, once again using the enlightenment_remote command line tool:

enlightenment_remote -module-load
enlightenment_remote -module-enable 'modulname'

Engage (shown on the far left in Figure 6) is one of the most popular add-on modules. The Engage module is very reminiscent of the Mac OS X Dock, providing a kicker, systray functionality, and cool looks. When you hover the mouse over an icon, Engage zooms in on the icon. Active programs display a second smaller icon on top of the normal icon. You can toggle between the smaller icons using the mouse wheel, and just click to go directly to a running program.

Figure 6: The Enlightenment Winter theme.

Just like backgrounds, themes also use the binary .edj format. You'll find a big collection of themes on the website at http://get-e.org, which hosts the central repository for the E17 community [8]. These files give you everything a theme needs: the graphics, animation functions, and standard backgrounds - other window managers and desktop environments need whole directories to achieve the same thing.

Just download the .edj files and drop them into the ~/.e/e/themes folder. You can then select your favorite theme in the main menu below Themes. Figure 6 shows the Winter theme.

Help as Help Can

The Enlightenment community offers a number of help options. The [e-users] mailing list is not restricted to users, and you will often find developers giving each other a helping hand [10]. Your reward for joining the mailing list is quick and uncomplicated bug information that will keep you up to speed with bug-squashing. There is also a highly informative forum at [11]. Enlightenment also has a big following on IRC with an English (#e) channel on freenode.org.

Figure 7: Enlightenment 17's Slate theme.


If you are looking for a tidy and optically pleasing window manager, the E17 Development Release is well worth investigating. The release is stable in most parts, although losing your configuration files on updating can be a pain. On a more positive note, updates are typically accompanied by new features. The developers may still have a long to-do list, but they are making rapid progress, and it is really exciting to see the Enlightenment 17 window manager develop.

[1] Enlightenment: http://www.enlightenment.org
[2] Elive CD: http://www.elivecd.org/
[3] CVS script (1): http://www.rasterman.com/files/get_e.sh
[4] CVS script (2):http://omicron.homeip.net/projects/easy_e17/easy_e17.sh
[5] CVS script (2):http://nooms.de/misc/e17install.sh
[6] Modifying Yum: http://sps.nus.edu.sg/~didierbe/share/dc-fc4-yum-repo-1.3-1.fc4.noarch.rpm
[7] Installation how-to for Fedora: http://sps.nus.edu.sg/~didierbe/
[8] E17 - news, modules, themes, user guide: http://get-e.org
[9] User Manual for edje_cc:http://get-e.org/E17_User_Guide/English/_pages/3.8.html
[10] E17 mailing list: https://lists.sourceforge.net/lists/listinfo/enlightenment-users
[11] E17 forum: http://edevelop.org/forum

Karsten Jäger is a teacher at day school. To help others get started with Linux, Karsten also teaches Linux at an adult education center, and he is the founder of the Linux User Group in Xanten (LugX).