The Enlightenment Foundation Libraries
Create lean and beautiful software
Set forth in 1998 as the window manager that brought advanced graphics to the then bleak word of Linux GUIs, Enlightenment would eventually split into a collection of development libraries supporting the WM.
Developers' interest in embedded development has steadly increased since 2002, making these libraries available to resource-constrained devices and exotic architectures. Sealing their independence from the role of Window Manager support libraries.
Today 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 the EFL excels.
-
French ISP Free.fr is currently distributing millons of Freebox HD set-top boxes. Shippend with the EFL-based Elixr SDK preinstaled.
-
Thousands of Openmoko Freerunner phones have been sold which included the EFL as part of the SDK and the Enlightement DR0.17 desktop adjusted to mobile usage through the illumine module.
-
Yellow Dog Linux, a distrubtion ported to the PlayStation 3 under contract by Sony, ships with the EFL and Enlightenment DR0.17 as the default destktop.
Multi-Platform
While Linux is the primary platform for historical reasons, as the number of developers grew and diversified support for additional platforms has steadly improved. Starting from the more familiar BSDs and Solaris to Mac OS X, Windows (XP, Vista, 7 and CE) and others.
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.
Extensive Device Support
We have tested on x86-32, x86-64, Atom, Power-PC, ARM (ARM9, ARM11, Cortex-A8 and more), MIPS, Sparc, and other processor architectures.
While 16MB of RAM is the suggested minimum for a Linux + EFL environment, you may be able to get by on 8MB for some uses and upwards to 64MB depending on the weight of the graphics used.
As little as a 200Mhz ARM core will provide sufficient processing power for most graphical effects.
Adaptive Interfaces
Screens from even less than QVGA (320x240 or 240x320) all the way up to and beyond full-HD (1920x1080) are covered by the EFL.
User interfaces scale to almost any sane resolution, as well as adapt to differing input device resolutions, from mouse and stylus to fat fingers.
It can draw displays from e-paper through 8-bit paletted displays, 16bit beautifully dithered ones all the way to full 24/32bit OLED beauties.
Rich and Vibrant Designs
Enlightenment is built by designers and programmers who want others to be able to do more with less by making the canvas a central part of the interface instead of another widget.
Interfaces can be built directly on the canvas by the designer using a simple declarative language either by hand or through design software.
This language allows the artist to mix image files and native design elements intelligently using features like smart scaling based on image border detection.
Advanced Graphics Features
Enlightenment Video Channel
Graphics System Architecture
Evas is the canvas layer. Unlike drawing libraries like OpenGL, Cairo or GDI, it works as a scene graph library, retaining the state of all objects contained. It is direct mapping and allows the programmer to work in terms that a designer thinks of.
Evas also handles abstracting the rendering mechanism. With zero changes the same application can move from Software Rendering to OpenGL (including ES 2.0) or others. All features, including 3D object manipulation, are efficently supported by the software rendering engine and upwards.
All features and abstraction in Evas is made avaiable to derivate libraires like Edje and Elementary due to the fact that they are esentially extensions to Evas graphical objects. More about Evas
Edje is a meta-object design library that is somewhere between Flash, PSD, SVG. Using a simple declarative language (ala CSS) called EDC. This separates design out of code and into a compressed data file that can be loaded dynamically at runtime. This leaves the programmer to worry about overall application implementation and coarse grained UI. More about Edje
Elementary is a widget set designed to merge into the Edje model to various degrees at the developer's discretion. Focused on embedded devices and specifically small touchscreens, Elementary adpats perfectly to regular desktop applications. Unlike other widget sets it relays on smaller, independent libraires and focuses itself solely on the interface functionality. More about Elementary
Resources for Artists
Editje
The graphical Edje editor
Load binary or source Edje files in this WYSIWYG editor and save your changes respecting either format.
Try it!More about the EFL
The Core Libraries
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.
Language bindings
Featured Applications
-
Zenity replacement written in elementary and C. It allows you to give your shell scripts a GUI...
-
Enna is a Media Center application. Featuring a simple user interface, Enna is based on the powerful Enlightenment...
-
A fully featured frontend for the well-known MPD.
-
Exalt is a network manager built for E17 by Watchwolf. It already has every feature you need to setup basic networking both...
