- Use the Source, Luke
Home | Register | News | Forums | Guide | MyLinks | Bookmark

Sponsored Links

Latest News
  General News
  Press Releases
  Off Topic

Back to files

About 0.16.8


This note contains contributions by
- Kim Woelders
- Peter Hyman (
- Yasufumi Haga (


  • Major changes and new features
  • Configuration files
  • Session Scripts
  • Composite manager notes
  • Default keybindings
  • Using e16 with GNOME
  • Using e16 with KDE
  • Migrating from Enlightenment 0.16.7 to 0.16.8

Major changes and new features

- "enlightenment" has been renamed to "e16". - The default user configuration directory is "~/.e16". - The data install path is "<somepath>/e16", e.g. "/usr/share/e16". Thus, an e16.8 installation should not clash with any other versions. - Various configuration file formats have changed and should be easier to read and modify, if needed. - The configuration is stored per display and per screen. E.g. for DISPLAY=:1.0 the main configuration file is "~/.e16/e_config--1.0.cfg". - Actions(used by menus, keybindings, etc.) and IPC functions(eesh) have been merged. - Many IPC(eesh) commands have been changed, possibly breaking compatibility with a few epplets. - Window matches and icondefs have been merged (into matches.cfg), see below.

New features:
- Built-in composite manager.
- An iconbox can be configured to act as System Tray (middle mouse->Desktop->Create Systray). - Possibility to run programs on startup, restart, and shutdown, see "Session Scripts" below.
- Possibility to track changes in remembered settings. - Window operations by window matches (class, name, transient, ...), e.g. for making all windows of a certain type sticky, put it on a certain layer, etc. (see matches.cfg).


NB!!! imlib2 >= 1.2.0 is required.

All settings can be shown and set using eesh. To get a full list of settings:
$ eesh show
To set some parameter:
$ eesh set <parameter> <value>
Some settings will not be effective until E is restarted.

To get a list of all eesh commands:
$ eesh help full should be compatible with most e16 themes. However, user installed themes will have to be moved/linked to ~/.e16/themes/ or <datadir>/e16/themes/. A few themes will have to be tweaked to work with e16.8. The most likely problem is that configuration settings are included in .cfg files where they are no longer accepted.
See the "Migrating ..." section below for additional information.

e16keyedit >= 0.3 works with e16.8.
If used to change the keybindings, the modified settings will be stored in ~/.e16/e_config.bindings.
It should also be fairly straightforward to modify the key- and buttonbindings by hand. Copy /usr/share/e16/config/bindings.cfg to ~/.e16/bindings.cfg and modify as desired.
NB! e16keyedit only modifies keybindings. Keybindings set using e16keyedit will override keybindings defined in bindings.cfg.

e16menuedit will no longer work. e16menuedit2 will.

NB!!! Do not rename ~/.enlightenment to ~/.e16. It will only cause trouble.

Configuration files

Skip this section unless you really want to know...

It is here assumed that --prefix is /usr, and that the default user configuration directory (~/.e16) is used. Localization is ignored for simplicity.

In general, the configuration search order for theme related configuration files, say xyz.cfg, is:
1) User configuration directory, i.e. ~/.e16/xyz.cfg. 2) Theme directory, i.e. /usr/share/e16/themes/<theme>/xyz.cfg, or

3) Default configuration directory, i.e. /usr/share/e16/config/xyz.cfg.

Mouse and keybindings are defined in bindings.cfg, and optionally in ~/.e16/e_config.bindings. The latter may be generated as a result of using e16keyedit.
bindings.cfg is loaded first, and searched in 1) User configuration directory, i.e. ~/.e16/bindings.cfg. 2) Default configuration directory, i.e. /usr/share/e16/config/bindings.cfg. ~/.e16/e_config.bindings is loaded next, and will override settings defined in bindings.cfg.

Window matches (border and icon associations) are defined in windowmatches.cfg and matches.cfg.
windowmatches.cfg (deprecated, border associations only) is loaded first, and should be found only in theme directories. matches.cfg is loaded next, and searched in 1) User configuration directory, i.e. ~/.e16/matches.cfg. 2) Default configuration directory, i.e. /usr/share/e16/config/matches.cfg. Window match items are appended to the window match list, in the order in which they are read from the configuration files. When doing border/icon matches, the window match list is searched from the start, and the first matching item will be used.

Session Scripts

Enlightenment can now automatically run user scripts or applications during Startup, Restart, and Shutdown. This facilitates the loading of system tray applets, rss readers, screensavers, and other daemons (e.g. dbus), and allows for cleanup of programs that don't terminate properly when E quits (this is especially common with KDE applications in E and the arts daemon or dcop server keeps running).

Enlightenment accomplishes this with the addition of two new keys in the $ECONFDIR/e_config--#..cfg (.# may vary depending on your X setup -- for most people, it will be 0.0). These are:


misc.session.enable_script is a boolean. When set to 1, Enlightenment will execute the script in the misc.session.script key. By default, this feature is disabled. When enabled, it will do nothing until the user configures his/her home directory ($ECONFDIR -- normally ~/.e16).

The default session.script is located in $EROOT/scripts/ ($EROOT is normally /usr/share/e16 or /usr/local/share/e16). It will look for directories in the user's $ECONFDIR/ (~/.e16/) called:

~/.e16/ ($ECONFDIR)


and run any and/or all scripts or executables in each when E starts, restarts, and shuts down. If no scripts or executables are present, or if any of the directories Init, Start, and Stop do not exist, NOTHING will happen and E will start up as usual. So, in order to use session scripts, all the user has to do is to populate the Init, Start, and Stop directories with scripts, applications, or links to applications that should run during Startup, Restart, or when E is stopped.

The default values for the new keys are:

misc.session.enable_script = 0
misc.session.script = $EROOT/scripts/

The user may write a custom script and place it anywhere. Simply modify the config file by using:

$ eesh set misc.session.script myscript

and modify it (be sure to chmod +x the file otherwise it won't run). The session script is called with one of three command parameters; init, start, and stop. Any custom script should have a code block similar to this in order to function properly in Enlightenment.

case "$1" in

        # do blah
        # or do function init
        # do blah
        # of do function start
        # do blah
        # or do function stop


Automatic script running can be enabled/disabled via the Session Settings dialog in Enlightenment and checking/unchecking the option Enable Session Script, by editing the user cfg file and setting the misc.session.enable_script key to 1/0, or with

$ eesh set misc.session.enable_script 1/0

This process is very flexible since when used, the user can turn off individual scripts and applications by chmod -x or simply leave the startup directories empty or remove them.

Composite manager notes

To use the composite manager it is required that the X-server has support enabled for the COMPOSITE, DAMAGE, FIXES, and RENDER extensions. For reasonable performance it is also required that hardware acceleration of the RENDER extension is enabled.


If window resize/shading with composite enabled is ugly, try: $ eesh set compmgr.resize_fix_enable 1
This problem should not occur with recent X-servers.

If pop-up windows disappear immediately after having appeared (may happen e.g. with certain pop-up windows when using gnome > 2.12), try: $ eesh set compmgr.override_redirect.mode 0 This should make the pop-up windows usable, but not always rendered properly.

Default keybindings

Alt-Ctrl   Home         Auto-arrange windows
Alt-Ctrl   Insert       Launch Eterm
Alt-Ctrl   Delete       Log out
Alt-Ctrl   End          Exit
Alt-Ctrl   Right        Goto next desk
Alt-Ctrl   Left         Goto previous desk
Alt-Shift  Down         Move desk area down
Alt-Shift  Up            -    -    -   up
Alt-Shift  Left          -    -    -   left
Alt-Shift  Right         -    -    -   right
Alt        F1           Goto desk 0
Alt        F2            -    -   1
Alt        F3            -    -   2
Alt        F4            -    -   3
Alt        F5            -    -   4
Alt        F6            -    -   5
Alt        F7            -    -   6
Alt        F8            -    -   7
Alt        Tab          Switch focus (using focus list, if enabled)
Alt-Ctrl   Up           Raise active window
Alt-Ctrl   Down         Lower active window
Alt-Ctrl   x            Close active window
Alt-Ctrl   k            Destroy active window
Alt-Ctrl   s            Toggle active window sticky state
Alt-Ctrl   i            Iconify active window
Alt-Ctrl   r            Toggle active window shaded state
Alt-Ctrl   f            Toggle active window fullscreen state
Alt-Ctrl   m            Toggle active window maximized state
Alt-Ctrl   w            Show window-ops menu for active window
Alt        Return       Toggle active window zoomed state
Ctrl-Shift F1           Show User menu          (default left mouse button)
Ctrl-Shift F2           Show Enlightenment menu (default middle mouse button)
Ctrl-Shift F3           Show Configuration menu (default right mouse button)
Ctrl-Shift F4           Show Window List menu   (default Alt-middle mouse button)

Alt-Ctrl   a            Toggle visibility of all buttons
Alt-Ctrl   b            Toggle visibility of theme buttons
Alt-Ctrl   c            Toggle visibility of configuration buttons
Alt-Ctrl   d            Switch dragbar position
Alt-Ctrl   o            Switch dragbar button ordering

Using e16 with GNOME

(Using Fedora Core 4, may be pertinent to other distributions as well).

The GNOME desktop can be started using e16 as WM with:

$ export WINDOW_MANAGER=e16
$ gnome-sesssion

Alternatively, add a GNOME/e16 session entry to the display manager login: # cp /usr/share/e16/misc/e-gnome.desktop /usr/share/xsessions/

However, somewhere along the way the script /usr/bin/gnome-wm is called. This is supposed to handle differences in all the different WM's out there, but does not know of "e16". This will cause a major delay when starting up the GNOME desktop.
One way to fix this is to use gnome-session-properties to get rid of the "gnome-wm" session entry.
Another is to apply this patch to /usr/bin/gnome-wm:

--- /usr/bin/gnome-wm-org 2005-04-19 21:33:53.000000000 +0200 +++ /usr/bin/gnome-wm 2005-11-15 20:46:09.000000000 +0100 @@ -69,7 +69,7 @@
if [ ! -z "$SMID" ] ; then
case `basename $WINDOW_MANAGER` in
- sawfish|sawmill|metacity)
+ sawfish|sawmill|metacity|e16)


Using e16 with KDE

(Using Fedora Core 4, may work with other distributions as well).

The KDE desktop can be started using e16 as WM with:

$ export KDEWM=e16
$ startkde

Alternatively, add a KDE/e16 session entry to the display manager login: # cp /usr/share/e16/misc/e-kde.desktop /usr/share/xsessions/

Migrating from Enlightenment 0.16.7 to 0.16.8

Users upgrading from enlightenment 0.16.7 need to read the following.

Several organizational changes have occurred that will require some manual adjustments. Mainly these deal with changes to configuration and shared directory names. This was done to avoid collisions with the new enlightenment DR17.

  1. home configuration directory is now ~/.e16, not ~/.enlightenment.
  2. menu files have been moved to a subdirectory called menus you will need to move customized menus and subdirectories to ~/.e16/menus. Note: because of this menu files will have to have menus/ prepended to it in order to be located. Ex: file... "User Menus" "User Application list" NULL menu "menus/" whereas the old menu version did not have menus/.
  3. you will need to move ~/.enlightenment/backgrounds files to ~/.e16 and any themes as well.
  4. $prefix/share/enlightenment has been changed to $prefix/share/e16
  5. if installed E-docs and Epplet directories will have to be moved to $prefix/share/e16
  6. any additional themes that were added to the $prefix/share/enlightenment directory will have to be moved to $prefix/share/e16
  7. any startup scripts or Session scripts that reference the startup executable `enlightenment` must be edited to the new e16 program.

Note! The section below is obsolete as of

A few themes have to be tweaked to work with 0.16.8.

For the AQUA theme (and derivatives) this can be done as follows:

  1. move to AQUA theme directory
  2. edit menustyles.cfg to comment out "#include <menus/menus.cfg>":

#include <definitions>

include <menustyles/menustyles.cfg>
include <menus/menus.cfg>/

3) move to ~/.e16
4) copy /usr/local/share/e16/config/menus.cfg to ~/.e16 like:

(assuming the installation prefix is /usr/local)

$ cp /usr/local/share/e16/config/menus.cfg ~/.e16

5) append the contents of menus/menus.cfg in AQUA theme to

menus.cfg in ~/.e16:

$ cat /path/to/aqua-theme/menus/menus.cfg >> menus.cfg

6) You may need to restart e16.8 after purging all caches

Sponsored Links

Discussion Groups
  Networking / Security

About | FAQ | Privacy | Awards | Contact
Comments to the webmaster are welcome.
Copyright 2006 All rights reserved.