www-content/pages/about-enlightenment.md.txt

174 lines
12 KiB
Plaintext

---
~~Title: About Enlightenment~~
---
# Enlightenment #
![Enlightenment Icon](/_media/icon-enlightenment.png)
Enlightenment is the next generation of graphical desktop shell from the Enlightenment project. It resembles a traditional UNIX/X11 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](/download) Enlightenment and the *Enlightenment Foundation Library (EFL)* components. You can find more details about software dependencies below.
![](/_media/aa/shot-2021-12-13_17-47-19.png)
![](/_media/aa/shot-2021-12-13_17-46-44.png)
![](/_media/aa/shot-2021-12-13_17-49-55.png)
![](/_media/aa/shot-2021-12-13_17-52-28.png)
![](/_media/aa/shot-2021-12-13_17-53-27.png)
![](/_media/aa/shot-2021-12-13_17-58-08.png)
## Key features of E ##
* Complete environment including centralized configuration of most settings.
* Very low memory requirements (about one third of [Xfce](https://xfce.org/)).
* Supports both X11 and Wayland display servers (Wayland is considered experimental).
* 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 Enlightenment.
* Configurable themes.
* Compositing can be done quickly even on older machines without GPUs.
* Support for multiple languages and operating systems.
### Mixer controls with VU meters ###
![](/_media/aa/shot-2021-12-13_18-06-21.png)
Enlightenment has a mixer module that can control Pluseaudio (or with more limited features pure ALSA) or Pipewire (if you use the pipewire-pulse compatibility support).
![](/_media/aa/shot-2021-12-19_01-39-22.png)
It has a full mixer to let you control individual outputs, inputs and streams which will display VU meters per output or monitor/input stream to let you know what the audio levels are like.
![](/_media/aa/shot-2021-12-19_01-43-04.png)
You will even find mixers appear in your titlebars if Enlightenment detects that that application has a matching pulseaudio output stream and you can then modify the volume of that application specifically via this in-titlebar volume slider directly.
![](/_media/aa/shot-2021-12-13_18-07-58.png)
![](/_media/aa/shot-2021-12-13_18-40-14.png)
Mpris2 support to control your favorite media players is there too. It even have work-arounds for Spotify to fix bugs originating from the Spotify client not providing correct URLs to album art.
![](/_media/aa/shot-2021-12-13_18-08-21.png)
A clock with a popup calendar to let you know what the time and date are now.
![](/_media/aa/shot-2021-12-13_18-08-59.png)
Backlight controls for your laptop and even for your Desktop monitors (as long as you install ddcutil-libddcutil and your monitor support DDC controls). Just place a backlight gadget in the shelf on each monitor you have and that gadget will control the backlight on that monitor (allowing every screen to have a different level if you want).
![](/_media/aa/shot-2021-12-13_18-10-20.png)
Packagekit support to allow for listing of package updates you are missing and installing them when you want to with a few clicks of a button. Packagekit is an abstraction around various packaging systems like apt, pacman, yum, dnf etc.
![](/_media/aa/shot-2021-12-13_18-11-06.png)
Bluetooth controls (front-end for BlueZ 5). Pair devices, power your Bluetooth adatpers on and off, connect or disconnect paired devices and even set paired devices to be "lock devices" that when they stop being contactable make your screen auto-lock (and auto-unlock when they come in range again and start responding again). Set your phone or earbuds to do this and know when you walk away from your desk with these devices with you that your machine will lock automatically without waiting for a timeout and will unlock when you come back again.
![](/_media/aa/shot-2021-12-13_18-13-41.png)
A start menu with everything you need from Enlightenment available from that menu or something that this menu can open. Click the Arrow icon in the Shelf or click anywhere on the desktop background to get this menu.
![](/_media/aa/shot-2021-12-13_18-16-35.png)
Fingerprint unlock support directly if you have libfprint/fprintd running. Enlightenment's lock screen will display a fingerprint icon to let you know you can use your device to unlock. There is also a GUI setup tool included to configure your fingerprints.
![](/_media/aa/shot-2021-12-13_18-16-55.png)
![](/_media/aa/shot-2021-12-13_18-17-06.png)
A palette selector and editor to select and edit simple color schemes of your own that will affect the theme you use. Create new palettes of your own and switch between them.
![](/_media/aa/shot-2021-12-13_18-19-59.png)
A settings panel to launch all the settings dialogs you could want to access.
![](/_media/aa/shot-2021-12-13_18-21-04.png)
Power controls to power off, reboot, suspend, hibernate or log out.
![](/_media/aa/shot-2021-12-13_18-22-57.png)
Temperature sensors. Create as many as you like in your Shelves and configure each to monitor a different sensor device. Monitor both your CPU and your GPU easily this way.
![](/_media/aa/shot-2021-12-13_18-23-50.png)
A pager to show all your virtual desktops, their backgrounds and contents in miniature so you know what is going on even if the windows are hidden on another desktop. Switch between desktops at a click, drag and drop windows between desktops or even drag and drop entire desktops around (middle mouse button drag and drop) to re-arrange everything.
![](/_media/aa/shot-2021-12-13_18-30-48.png)
Status notifier protocol support to get icons and control menus for many modern applications like Steam, Zoom, Teams, Discord and more.
![](/_media/aa/shot-2021-12-13_18-58-44.png)
Many loadable modules that extend the basic Window Manager (in fact almost all of the nice features in Enlightenment come from modules). There is even a Tiling Module for those that like auto-tiling of windows. You can write your own modules to extend Enlightenment too.
![](/_media/aa/shot-2021-12-13_18-31-51.png)
CPU Frequency status display and controls to set the CPU governor and auto-modify it when going on/off battery.
![](/_media/aa/shot-2021-12-19_02-23-26.png)
Quick launcher Icon bar (IBar) to run or see open windows for a set of common applications you use (just drag and drop an icon from the top-left of any window into your IBar to add it or Drag an icon out to remove it). Hover over an icon to see a list of windows for that application to select from.
![](/_media/aa/shot-2021-12-19_02-23-44.png)
Network controls for wired Ethernet/USB, Wifi, Bluetooth tethered or even Mobile network connections using Connman as your network management back-end (you will need to install Connman and run and disable any other network management daemons/tools).
----
## 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](/contact) 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, Enlightenment 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](/download)
: You can download Enlightenment from here.
[Coverity scan status](https://scan.coverity.com/projects/554)
: Enlightenment's code quality.
[Gallery](/ss)
: Click here to see more spectacular screenshots of Enlightenment.