April 6, 2005

Enlightenment DR17 is coming - eventually

Author: N. Sanders

About three years ago, the team behind the open source window manager Enlightenment (E) began rewriting the software from the ground up. Although E was being maintained, receiving the minor updates necessary to keep it from obsolescence, the team has been conscienciously working on the new development release (DR) 17. Despite the popularity of the current version (DR16), the prolonged development cycle necessary for the new one has led anxious fans to largely forget about it. But lead developer Carsten Haitzler (Rasterman) assures us that the project is not stagnant, just moving slower than other, better-known window manager development projects.

While a massive organization like KDE or GNOME has hundreds of dedicated and frequent contributors, E has just a few. To satisfy those clamoring for proof of progress, the developers produced a pre-alpha release of the new DR (Development Release) 17 back in November. At that point the window manager was little more than a tech demo, with few functioning features and questionable stability. Rasterman says that since then, "We have worked on cleaning up library builds. This is partially done. We have worked on the underlying libraries ... and the window manager itself has had a lot of modules and features added to make it vaguely 'usable' for everyday use. I (and many others now) use E17 on a daily basis. It [now] has virtual desktops, Xinerama and multihead support. A minimal IPC has been hooked in for remote control of the WM, menus are relatively clean (but likely need expanding), and more." Perhaps most important is the relentless bug fixing E has received, because any development team values stabilizing the current code above adding new features (read: potential problems). You can find occasional updates on Rasterman's work at his blog.

You may not remember the birth of Enlightenment in 1996. Back then it was just a fork of FVWM2 that used libXpm, which rendered better-looking widgets than the ancient Athena technology, while managing to save memory. Soon after, in 1997, the DR8 release implemented what is now known as Imlib, an image rendering library that could display many more formats than previously possible (which, again, made the desktop look better) at an impressive speed. Many users fondly remember this as the first time Microsoft Windows converts no longer had to be scared off by Linux's basic and confusing GUI options. Today, DR16 is seen as a light alternative to GNOME and KDE that doesn't sacrifice customization or superficial appeal.

E has a legacy of trend-setting among OSS interface projects. As the team describes it, "Enlightenment has a long proud history of producing the best ahead-of-its-time eye-candy on the planet." Now, after years of work, and years of work yet to come, we can expect DR17 to be a fully functional desktop environment with fantastic eye candy to augment its configurable and user-friendly interface. It will be fit to run on the hardware of yesterday (and even PDAs), scalable to any resolution, and be unprecedentedly easy to develop for.

E's developers pride it on being portable, and foresee implementation in the embedded market in which Linux is quickly becoming a major competitor. As they note in their EFL FAQ, "Primary development of the Enlightenment Foundation Libraries is currently being done on Linux/X86. Other platforms that are currently in use for development include Linux/PPC, Linux/SPARC, Solaris/SPARC, FreeBSD, and OS X. PDAs can use the EFL on Qtopia (Zaurus) and most iPaq Linux distributions."

The code for DR17 was written from scratch, and accompanied by a set of Enlightenment Foundation Libraries (EFL), a set of tools that developers can use to create Enlightenment applications with incredible ease. Because they can be used outside of E, developers say we could even see their abilities put to use in existing desktop environments.

Evas is E's canvas. The team says, "[In other environments] the programmer has to call routines to draw the screen or updated display by drawing one operation at a time, such as draw line, paste image, draw box, paste text. When the screen needs an update these operations are done again by the code, normally from the bottommost element in the draw to the top (painters algorithm). This is 'immediate mode' drawing. Evas is different. It is structural by nature, so instead of drawing, you describe the canvas contents (or scene) in terms of primitives (images, lines, boxes, polygons, text strings, etc.) and properties (color, stacking, size, etc.). The drawing itself is handled by the canvas, which acts as a state machine, not actually doing any 'hard work' until the canvas's render call is executed, at which time it evaluates the previous and the current state and appropriately updates the screen without the programmer having to know how this is done." This, and the fact that Evas is rather tiny as modern canvases go, further refines the traditionally resource-expensive rendering step, just as E's Imlib did years ago. Thus far, intelligent use of bitmaps has staved off the more intensive use of vector graphics, although Evas does support them; so everything is as scalable as the interface designer wants it to be.

Evas can output to a variety of display technologies. In light of Microsoft's Avalon and Apple's Quartz, users of open source desktops have been clamoring for technology that defers rendering of the GUI to the video card. Because this hardware is generally quite powerful but underused, this could be a way to relieve the CPU of some work while increasing the potential for graphical effects. In a GNU/Linux operating system, use of OpenGL would be the best way to accomplish this. OpenGL support in DR17 is functional, although at the moment not recommended and intended only as a bonus for those wishing to experiment. Nonetheless, this is a promising step towards a hardware-accelerated open source desktop environment. Rasterman explains that "OpenGL is too unstable (in general) for us to work with on a daily basis in development, and we are not in the mood to have hundreds of bug reports of 'E crashed my system,' when in fact it was OpenGL." Furthermore, Evas can be used in conjunction with Qtopia to provide a GUI for PDA-like devices.

Edje is responsible for most of E's eye-candy. As a theme engine and part of the EFL, Edje will not only provide pretty touches, but also relieve some of the GUI hackers' stress. Edje will create the kind of fancy user interface you see on gaudy Macromedia Flash Web sites, but should be put to more effective and less distracting use. Demonstrations using CVS code from DR17 show buttons that flash an animated shine when under your pointer, application shortcuts that pulse as you consider clicking them, and other effects. More importantly, Edje is a powerful theming engine that allows interface designers to tailor a theme to an individual's tastes down to the layout. Thanks to Evas, Edje's effects do not slow down the desktop.

Only some of the fantastic ideas made possible by the technology behind DR17 have been implemented at this point. When logging into an E session, you are greeted by an e-shaped cog that rotates into place and then shines as E finishes its brief loading sequence. It all looks like a nicely rendered movie, and is much more impressive than a simple idle animation. All windows, dialogs, and menus can cast a drop shadow whose intensity, height, and other properties are configurable. You can create animated wallpaper. One available module sends a torrent of snow falling down your screen, while another runs a fire along the bottom to melt it. Such visual effects make the computing experience more enjoyable, and you can find video demonstrations of them at Rasterman's site.

The other libraries of the EFL will combine with Evas and Edje to create a full development platform. They include libraries to facilitate image manipulation, scripting, multimedia, use of databases, and more. For a more detailed description, see the Enlightenment site.

So, when can you expect to put Enlightenment on your desktop? Though far from finished, the code is already there for your perusal. You can boot to ELive, an experimental LiveCD with both DRs 16 and 17, for a quick evaluation. If you like what you see, DR17 is available via CVS. If you're confused by that method of installation, a good tutorial can be found at the Unofficial DR17 Documentation site.

However, don't expect a production release anytime soon. Rasterman explains, "We wont give release dates, then miss them. We don't want to build false impressions or hope."

Click Here!