About 0.16.8
Credits
This note contains contributions by
- Kim Woelders
- Peter Hyman (pete4abw@comcast.net)
- Yasufumi Haga (yasufumi.haga@nifty.com)
Contents
- 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
- Changes
- - "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).
- Notes
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
0.16.8.1 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
~/.e16/themes/<theme>/xyz.cfg.
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
misc.session.script
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/session.sh ($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)
Init/
Start/
Stop/
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/session.sh
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
init)
# do blah
# or do function init
start)
# do blah
# of do function start
stop)
# do blah
# or do function stop
esac
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.
- Tweaks
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 @@
OPT2=
if [ ! -z "$SMID" ] ; then
case `basename $WINDOW_MANAGER` in
- sawfish|sawmill|metacity)
+ sawfish|sawmill|metacity|e16)
OPT1=--sm-client-id=$SMID
;;
openbox)
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.
- home configuration directory is now ~/.e16, not ~/.enlightenment.
- 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.menu file... "User Menus" "User Application list" NULL menu "menus/user_apps.menu" whereas the old menu version did not have menus/.
- you will need to move ~/.enlightenment/backgrounds files to ~/.e16 and any themes as well.
- $prefix/share/enlightenment has been changed to $prefix/share/e16
- if installed E-docs and Epplet directories will have to be moved to $prefix/share/e16
- any additional themes that were added to the $prefix/share/enlightenment directory will have to be moved to $prefix/share/e16
- 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 0.16.8.1.
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:
- move to AQUA theme directory
- edit menustyles.cfg to comment out "#include <menus/menus.cfg>":
#include <definitions>
__E_CFG_VERSION 0
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
