Enlightenment, also known simply as E, is a stacking window manager for the X Window System which can be used alone or in conjunction with a desktop environment such as GNOME or KDE.
Enlightenment is often used as a substitute for a full desktop environment.
The first version of Enlightenment was released by Rasterman (Carsten Haitzler) in 1997.
Enlightenment has been under development for over a decade; its latest stable release is version E16 1.0.7.
Version 0.17, also referred to as DR17 or E17, has been in development since December 2000. It is a complete rewrite on DR16 and was designed to be a full-fledged desktop shell, based on the new Enlightenment Foundation Libraries (EFL).
Some of its features include:
- Enlightenment allows you to have a grid of workspaces called virtual desktops. Switching between them is achieved by hurling the mouse cursor to the edge of the screen, at which the desktop appears to slide across to reveal the next. The maximum grid size is currently 8 by 8 desktops, and you can have 32 grids (each with a different background), making 2048 total possible desktop spaces. (Users can enable a map of the desktops, in case they get lost, which is called the pager.)
- The desktop dragbar allows a desktop to be 'slid back' to reveal the desktop 'underneath'. The E team use the analogy of sheets of paper, stacked on top of each other, where you can slide off a piece partially to reveal what's beneath.
- Window grouping – the ability to put windows into groups so that they can all be moved, resized, closed, etc. together.
- Iconification – reducing windows to an icon, stored in 'iconboxes' that can be placed about the screen.
- Ability to change window borders (or remove borders and title bars completely).
- Users can create keybindings for actions such as maximizing windows, launching programs, moving between desktops and moving the mouse cursor, hence making it possible to use Enlightenment solely with a keyboard. e16keyedit is a graphical program for simplifying keybinding creation.
- It contains a command line interface, eesh, which affects the window manager actions, and makes it possible to write powerful shell scripts controlling most features on the desktop - from settings to single window manipulations.
- Newer versions include compositing effects such as fading and transparency.
One of the aims of the window manager is to be as configurable as possible, and to this end, it includes customization dialogs for focus settings, window movement, resizing, grouping and placement settings, audio, multiple desktop, desktop background, pager, tooltip and autoraise settings. It also includes a special effects dialog, including a desktop 'ripple' effect.
DR17 is in active development, but core features are in place:
- Fully themeable, with both a menu-based and command-line theme-changing interface
- A built-in file manager
- Icons on the desktop
- Virtual desktop grid feature
- Modular design – can dynamically load external modules. Current available modules include:
- Pager – Switching between different virtual desktops
- iBar – Launching applications
- iBox - Holding minimized applications
- iTask NG – A dock similar to the Mac OS X dock
- Dropshadow – Provides a drop-shadow for every window
- Clock – Analog clock
- Battery – Monitoring a laptop battery
- CPUFreq – Monitoring a laptop CPU
- Temperature – Monitoring laptop temperature
- Illume - Modifies the user interface of enlightenment to work cleanly on a mobile device
- One or more shelves to manage the gadget placement and appearance on the screen
- Animated, interactive desktop backgrounds, menu items, iBar items and desktop widgets are all possible
- Window shading, iconification, maximising and sticky settings
- Customizable key bindings
- Support for internationalization
- Standardized – supports all needed standards (NetWM, ICCCM, XDG and so on)
We're excited to announce the third beta release of the Enlightenment Foundation Libraries. The focus of this release is portability and build issues. We'd like to thank all the people who helped us by packaging all this libraries on so many different systems. The libraries run better now, especially on OpenBSD and Mac OS X systems. It's really the right time to help us package it for more targets and rock on all of them!
The APIs and ABIs of all beta3 libraries are considered stable, but please test your apps with them and report back any issues you may encounter. Thanks to the last beta, a small number of bugs have been identified. Once they are fixed we will jump into the release candidate cycle.
As the end of the beta cycle get closer, we still need a lot of help to write documentation, tutorials, and examples; if you have time to contribute, this is a good area to help with! As you may have noticed (or not) our documentation situation is already improving. If you take a look at our daily updated documentation or our wiki, you will see progress.
Testing is pretty easy: if you're using the EFL from our Subversion repository you can test with revision 55246, but to ensure a smooth release later on, please consider testing with the tarballs provided here.
The list of libraries that are being considered part of this release are:
- Eina - 1.0.0 BETA3
- Eet - 1.4.0 BETA3
- Evas - 1.0.0 BETA3
- Ecore - 1.0.0 BETA3
- Embryo - 1.0.0 BETA3
- Edje - 1.0.0 BETA3
- E_Dbus - 1.0.0 BETA3
- Efreet - 1.0.0 BETA3
- Eeze - 1.0.0 BETA3
If you want to join and help us, join on our irc channel #edevelop on the FreeNode server, or ask your questions on the mailing list.
Enlightenment and EFL support several platforms, though Linux is the primary platform of choice for our developers, some make efforts to make things work on FreeBSD and other BSD's, Solaris, MacOS X, Windows (XP, Vista, 7 etc.), Windows CE and more. Compatibility will vary, but most of core EFL support all Linuxes, BSD's, Solaris and other UNIX-like OS's. Mac support should work mostly thanks to the X11 support in OS X, and Windows support exists for most of the core libraries (XP, Vista, 7, CE).
Enlightenment libraries already power millions of systems, from mobile phones to set top boxes, desktops, laptops, game systems and more. It is only now being recognized for its forward-thinking approaches, as products and designers want to do more than the boring functional user experiences of the past. This is where EFL excels.
Free.fr is shipping millions of set top boxes in France, powered by EFL. The Openmoko Freerunner sold thousands of devices with EFL on them. Yellow Dog Linux for the Sony PS3 ships with Enlightenment as the default. EFL has been used on printers, netbooks and more.
Enlightenment, the window manager is built on top of building blocks known as EFL (the Enlightenment Foundation Libraries). There are more than can be sensibly put into the simple block diagram above, but this covers the essentials.
Pretty much any application written using Core EFL libraries will use one or more of these depending on its needs. It may only need the lower level ones or use all of them to the top of the stack. Each library fulfills a purpose, so it may be skipped if not needed.
Core EFL components are:
Binding support exists for several languages such as:
There are other libraries and applications which build on core EFL and function on other systems too, providing more functionality, examples, and utility: