You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
kikadf 6f403f4930 Merge branch 'master' into master 11 months ago
confs scripts: openbsd helper script. 2 years ago
data wl desktop session file - some dm's dont like VAR=x without env 1 year ago
doc tree-wide: get rid of trailing whitespace 3 years ago
meson meson - use install_mode 5 years ago
old remove old - dont need it anymore 2 years ago
po Updating french and portuguese translations 11 months ago
src Use default way to locale listing on OpenBSD 1 year ago
.gitignore ignore backup text files with tildas at the end 4 years ago
.mailmap enlightenment/mailmap: Move unused addresses to bottom of list 4 years ago
AUTHORS AUTHORS: Add jf_simon to list. 4 years ago
COPYING tree-wide: get rid of trailing whitespace 3 years ago fix typo 1 year ago update TODO 1 year ago add simple sound play api to play samples 1 year ago
meson_options.txt freebsd: make elput optional. 2 years ago remove e17 preload/precache hacks 11 years ago tree-wide: get rid of trailing whitespace 3 years ago




Please report bugs/issues at

Enlightenment is a Window Manager, Compositor and basic "Desktop Shell". It replaces your GUI environment that runs your day to day graphical Desktop. It includes a built-in File Manager, Application Launcher, Shelves, Settings Dialogs, Menus, Audio Mixer Controls, Network Control front-end (for Connman), Battery Monitoring, CPU Frequency Controls, Screen Blanking and Backlight controls, Screenshotting and editing, Clock and Calendar, Temperature Guages, Mpris2 Music Controls, Packagekit Update Front-end, Bluetooth controls for BlueZ 5, Screen resolution and layout controls and much much more.

Enlightenment is one of the lowest resource environments around relative to its featureset.

Enlightenment is primarly developed for X11, but does have an experimental Wayland mode that will have issues, so only try it if you are adventurous or willing to work on it.

For more information please see Enlightenment's About Page.

Screenshot 2 Screenshot 3 Screenshot 4 Screenshot 5 Screenshot 6

Things that need doing:




  • efl
  • libpam (Required on Linux, not BSD)

Highly suggested:

  • libexif (exif metadata display support)
  • bluez5 (BT support and l2ping tool)
  • connman
  • bc (For everything calculator)
  • pulseaudio
  • acpid (Unless your system doesn't have ACPI at all)
  • packagekit (For packagekit module updates status)
  • udisks2
  • gdb (If you want automatic bactraces in ~/.e-crashdump.txt)

Compiling and Installing

Meson is the build system used for this project. For more information please see

You will need normal build tooling installed such as a compiler (gcc or clang for example), pkg-config, ninja, any relevant package-dev or package-devel packages if your distribution splits out development headers (e.g. libc6-dev) etc.

Depending on where dependencies (like efl) are installed, you might have to set your PKG_CONFIG_PATH environment variable like:

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig

Also note that some distributions like to add extra arch directories to your library locations so you might have to have more like:

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/local/lib64/pkgconfig:/usr/local/lib/x86_64-linux-gnu/pkgconfig:/usr/lib/pkgconfig:/usr/lib64/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig

You will need to ensure that the destination library directory (e.g. /usr/local/lib is in your /etc/ or /etc/ files and after installing anything that installs libraries you re-run ldconfig. Please see relevant documentation on ldconfig and for your distribution.

You might also want to add the destination bin dir to your environment variable PATH (see documentation on your shell PATH variable) such as:

export PATH=/usr/local/bin:/usr/bin:/bin

Normal compilation in /usr/local:

meson . build
ninja -C build
sudo ninja -C build install

For meson build generic options:

meson --help

For a list of project specific options supported:

cat meson_options.txt

To set 1 or more project specific options:

meson --prefix=/path/to -Doption=value [-Dother=value2] [...] . build

To display current configuration:

meson configure build

The above will only work after at least the following is done:

meson . build

Quick build help

How to clean out the build and config and start fresh:

rm -rf build

How to make a dist tarball and check its build: (must do it from git tree clone and commit all changes to git first)

ninja -C build dist

How to change prefix:

meson --prefix=/path/to/prefix . build

How to install in a specific destination directory for packaging:

DESTDIR=/path/to/destdir ninja -C build install

How to build with verbose output (full commands run):

ninja -C build -v

NOTE: Once Enlightenment is started by enlightenment_start, all output logs are put in ~/.e-log.log. The previous log for the previous execution of Enlightenment will be moved to ~/.e-log.log.old.

NOTE: If you install enlightenment to the default compile prefix (/usr/local) then you might want to ensure the session file is accessible to your login manager (assuming you use one) by doing something like:

sudo ln -s /usr/local/share/xsessions/enlightenment.desktop /usr/share/xsessions/enlightenment.desktop

You can also just set up a custom launcher script. Edit the ~/.xinitrc file in your home directory and have it have this content:

exec /usr/local/bin/enlightenment_start >& ~/.xsession-errors

(exec tells the shell to replace itself with the following command and >& ~/.xsession-errors ensures all output is logged to the ~/.xsession-errors file).

You may also want your ~/.xsession file to be the same, so make a link:

ln -s .xinitrc .xsession

This assumes /usr/local as well and just modify based on your install prefix location.

If you do not use a login manager you can just log into a text console and run startx after the above .xinitrc file is set up.

NOTE: If you do not want security issues make sure sysactions.conf is in /etc/enlightenment (not PREFIX/etc/enlightenment) as this is the first place it looks at. This file is intended to be customized by packagers and system integrators to match your policies and scripts/tools. This also applies to system.conf in the same directory.

NOTE: To enable Wayland support (still considered experimental and not for regular end users) use the meson -Dwl=true option. To run Enlightenment in Wayland mode, just login on any text VT and run enlightenment_start. If you wish to debug and see all the output try using something like screen then attaching to the remote screen session by sshing in etc.

NOTE: Nvidia support - do not enable Wayland support if you have Nvidia cards and use Nvidia drivers. You will need to use full OpenGL+GLX with EFL instead of the default OpenGL-ES/EGL for those to not have problems and this conflicts with any DRM and Wayland support. You will