Enlightenment

Enlightenment Icon

Enlightenment (0.22.1) (a.k.a E22) is the next generation of graphical desktop shell from the Enlightenment project. It resembles a traditional UNIX/X1 style desktop by design but has a range of add-ons, as well as a different core design philosophy.

Enlightenment manages windows and files. It's a compositor and is also capable of launching applications, handling the user interface and even system settings.

If Enlightenment is already available for your current OS, make sure the version you download is up to date. If not you can compile it yourself. To get started download Enlightenment and the Enlightenment Foundation Library (EFL) components. You can find more details about software dependencies below.

Screenshot

Key features of E

  • Complete environment including centralized configuration of most settings.
  • Very low memory requirements (about one third of Xfce).
  • Supports both X11 and Wayland display servers.
  • Uses 'Modules' : pluggable pieces of code that add various functionality to the window manager itself. Users may be able to interact with modules visually through 'gadgets', which can be run outside Englightenment.
  • Configurable themes.
  • Compositing can be done quickly even on older machines without GPUs.
  • Support for multiple languages and operating systems.

A Brief History of Enlightenment

Enlightenment predates larger desktop environments such as GNOME, although it was originally designed as a flexible window manager.

When Enlightenment was first released in the late 90's, it aimed to provide certain features such as setting the desktop wallpaper which until then were managed by 3rd party tools. Enlightenment was also the first window manager to introduce X Window System (X11) themes. These were pre-packaged files containing image, layout and animation data which could be installed quickly and easily, changing the overall look and feel. Today, themes for Enlightenment are available as "Edje" (.edj) files. These are used 'live' in that they aren't unpacked: only data that's actually needed from Edje files is accessed and loaded into memory meaning Enlightenment can handle even very large theme files.

Enlightenment offers so many options that not all features work as well as they could. If you find an area that requires improvement use the Contact Page to get in touch.

The Enlightenment Philosophy

The underlying philosophy behind Enlightenment is that users should be given as much control as possible. There is often a trade-off in maintainability by programmers, current and future development, as well as the time available to do work. Developers are encouraged to introduce new features which 'just work' without additional options rather than delay release through constant fine tuning. While configuration is important Enlightenment strives to be accessible to both normal and power users.

Efficiency

Enlightenment is designed for efficiency, without sacrificing looks or functionality. The theme files are binary blobs but can be dissected to reveal tools such as edje_decc. The same holds true for configuration (.eet) files.

Emphasis is placed on runtime speed and efficiency over forcing users to edit the configuration over and over prior to running a program. Most Enlightenment options can easily be configured through a GUI although there are also tools for importing and editing text files for dedicated programmers.

Enlightenment also has advanced error detection routines. When problems are detected, users are offered the choice either to debug or to restart from where they left off without losing any data. If you've installed gdb and activated debug options, E21 also saves a crash log file to ~/.e-crashdump.txt.

Enlightenment is also designed to run on a variety of platforms from budget smartphones to multi-core servers with two screens. The development process is designed to accommodate older and slower machines as well as the most recent. For this reason, compositing in Enlightenment is still very efficient even without a GPU.

Libraries

Over 80% of the Enlightenment Project's code has its own stand-alone libraries, which allows it to function as much more than a simple window manager. Developers emphasise building libraries first over adding single features. This provides valuable resources for other developers who may want to reuse those libraries for other projects.

Porting

Most Enlightenment Developers use Linux, but, while Linux is usually the first operating system to be supported, the project welcomes patches and inputs from developers using other systems such as MacOS, BSD and Windows 10.

Multi language support

Most of the Enlightenment website is in English, which is also the software's default language. However, many Enlightenment developers are not native English speakers, which is why Enlightenment does support a number of other languages. The translation process is ongoing. Currently the project supports reading text from right to left, as well as the flexible UTF-8 character set.

Open Source

Enlightenment and its libraries are all open source, using either the BSD 2-clause, LGPL or GPL software licenses. Developers who create libraries either choose the software license, or inherit it if the library is derived from another.

The Enlightenment Philosophy holds that an open source approach is the best way to propagate knowledge as well as gain feedback from the community. This in turn helps to create more helpful and detailed documentation. It also means any software developers create is installed onto more devices.

Further Reading

Enlightenment
You can download Enlightenment from here.
Coverity scan status
Enlightenment's code quality.
Gallery
Click here to see more spectacular screenshots of Enlightenment.