Friday, October 19, 2007

Enlightenment - An easy-to-use Linux GUI

In the 10 years I've been using Linux, I've run the gamut of window managers and desktop environments: FvWM, FvWM95, ICEWM, AfterStep, BlackBox, KDE, GNOME, Beryl, Fluxbox, CDE, XFCE, Windowmaker, Sawfish, Metacity, WM2, as well as Compiz. But it seems that no matter how many times I try another Linux GUI, I always go back to Enlightenment. It is one of the few PC GUIs that actually makes complete sense. It's lightweight, flexible, and reliable. It does its job well and doesn't try to do things it shouldn't. And it can look really, really good.

Before we discuss Enlightenment, let's break apart the Window Manager/Desktop Environment issue: which does what; what are they; why do we need them?


X Windows and the Window Manager

On top of the base of the Linux system, you have the X Window System. This system is a portable, network-transparent system that, by itself, can't do much. If you were to start up the X Windows System (with the command X), you would see a nice gray screen with a big X cursor. That big X cursor can move around, but that's it; you can't click anything or open anything. But X is critical: It is the underlying framework that allows the Window Manager to do its thing.

The Window Manager sits on top of X and draws windows, menus, and buttons, etc. The Window Manager is the piece of the puzzle that allows users to interact with their machine.

One of the best aspects of this setup is that the user is not limited to a specific environment. As a Linux user, I can place on top of X any type of Window Manager I desire. If I want something that looks like Microsoft Windows, I might run KDE. If I want to run an environment similar to OS X, I could run (and modify) GNOME. Or, if I want something all together different, I could opt for any number of choices, and it is one of those other choices to which I am going to introduce you.

Enlightenment: A bit of history

Enlightenment -- sometimes referred to simply as "E" -- was started by Carsten Haitzler (aka Raster). Enlightenment began in 1992 and was originally based on FVWM2. It was soon completely rewritten and forked into E16 (still used as the stable release) and Enlightenment DR17 (the development release). As of 2007, DR16 is in the DR16.8.9 release. Soon DR17 itself should wind up in a stable release. Enlightenment depends heavily on the Imlib library, which has been taken over by the GNOME foundation.

Why you should use Enlightenment

There are numerous reasons to become an Enlightenment user:

  • You need a GUI on an older machine that is not powerful enough to run the more resource-intensive KDE or GNOME.
  • You want something a little different.
  • You want to control users so they only have access to certain applications.
  • You want a GUI that is stable, fast, and flexible.

Those reasons may not be show-stoppers, nor will they see IT departments migrating hundreds or thousands of desktops to Enlightenment, but the small list above is reason enough to have many making the switch from their typical GUI to E.

Installing Enlightenment

There are a number of ways to install Enlightenment. You can search for an RPM that works with your appropriate Linux distribution, although this can be difficult and you may not get the latest version of Enlightenment if you do so. Often, RPM builds lag behind the latest versions. If you prefer using RPM, you can download all the necessary RPM files, place them in a directory, and run (as root) the command rpm -ivh *rpm to install Enlightenment.

You can also go the source route by downloading the following files from the Enlightenment SourceForge Site:

  • e16
  • e16docs
  • e16themes
  • e16utils
  • epplets
  • imlib2-src

You will have to install imlib2-src first. Download that tarball and open a console window. As root, unpack the tarball with the command tar xvzf imlib2-XXX.tar.gz (where XXX is the release number). Now change into the newly-created imlib2 directory and run the following commands:

./configure
make
make install

Once imlib2 is installed, you can start installing Enlightenment. You will start with the e16 tarball. Unpack that and then run the same commands to install it that you did for imlib2. Once you are done with that do the same for the rest of the downloaded files.

Now what?

If you are starting your X session from a console based log in you will need to create a .xinitrc file with the following contents:

exec e16

With that file saved, you simply have to run the command startx to start up Enlightenment. If you run one of the graphical logins (GDM or KDM) after installation, there should be an entry for the Enlightenment session.

When you first run Enlightenment, you will be greeted the default desktop, as shown in Figure A.

Figure A

The default Enlightenment desktop.

What you see on the default Enlightenment are three items: The Dragbar, the bar at the top; the Pagers, the squares at the bottom left; and the Icon box, at bottom right.

The Drag Bar

The Enlightenment Drag Bar is a tool that helps you navigate between desktops or applications (depending on which mouse button you press). If you have more than one application open, and you press the middle mouse button (usually the mouse wheel), you will see a list of open applications, similar to the ones in Figure B. You can then select which application you want to work with, and that application will have focus.

Figure B

This window is also called the Window List.

If you are familiar with Linux' desktop pager metaphor, then you will certainly appreciate yet another way to move between desktops. Figure C illustrates the right mouse button's click on the Drag Bar, which shows the list of desktops available.

Figure C

Simply select the desktop you want and you will be magically transported.

I find the Drag Bar to be mostly redundant; between key-combinations and the Pager system, it is unnecessary. In fact, I almost always disable it first thing to gain the extra screen real estate. We'll discuss disabling this later in configuration.

The Pagers

Located in the bottom left of the screen are the desktop Pagers. These boxes will transport you to which ever desktop you click on (Desktop 1 is the top pager; Desktop 2, the bottom). These pagers will also give you a thumbnail of the applications running.

Of course, there are other ways to zap between desktops. One such way is to scroll the mouse scroll wheel up or down to send you between desktops. We'll discuss the other in a moment.

The Iconbox

The Iconbox is simply a placeholder for when an application is iconified (in Windows-speak, minimized). An iconified window changes from the actual window to a small icon on the desktop. This is a Linux metaphor that has been around since the days of NextStep. Figure D shows the Iconbox with two iconified applications.

Figure D

The slider at the bottom of the Iconbox is helpful when you have more iconified applications than the Iconbox will show.

The Menus

There are three distinct menus with Enlightenment: The Main Menu, the Application Menu, and the Settings Menu. You can access these menus by pressing a mouse button anywhere on the desktop (as long as that space is unoccupied on the desktop).

The Main Menu, shown in Figure E, includes the Applications menu, but also includes a few system entries (for getting help, logging out, and restarting, etc.), as well as entries for settings. It is basically all of the menus wrapped up into one.

Figure E

There are redundancies in the menu hierarchy.

The Applications Menu, shown in Figure F, strips away all of the settings from the Main Menu and leaves behind applications and session (logging out and restarting) entries.

Figure F

If your system has GNOME or KDE installed, Enlightenment will include their menus in the Application menu listing.

The Settings Menu, shown in Figure G, is just as it would seem: it includes all of the settings required for Enlightenment.

Figure G

There are a large number of settings you can play with in Enlightenment.

Configuring Enlightenment

From within the Settings Menu, select the Enlightenment Settings entry. As seen in Figure H, you can control every aspect of the Enlightenment Window Manager.

Figure H

As you press on a button (left side), a new listing of settings will appear (right side).

Many of the settings will be self-explanatory. Others, if you are familiar with Linux concepts such as Focus, Desks, or Pagers, etc., will also be familiar. Some of the settings, however, are unique to Enlightenment. One such setting is Groups. The Groups setting deals with placing applications together in groups for such configurations as border style (all applications of a group having the same border style) and iconifying (all applications in a group will have their icons grouped together in the Iconbox). Basically, whatever you do to one window in a group, all windows in that group will reflect that same change.

Now, to set a windows group, you must access an entirely different menu. From a Windows titlebar, press the right mouse button. From here, a new menu will appear that allows you to affect the window of that application.

First, select the Start A Group menu entry. It will appear that nothing has happened, but actually the window you selected this menu entry on will be the base for the group. Suppose you selected the Start A Group entry on a window containing The Gimp. You will then have a group called The Gimp. You can add any window (say, all windows containing applications that deal with graphics) to that group. Once you have a group created, you can then affect the windows (and their behavior) in that group.

That same menu (from right-clicking the title bar) allows you to pull off a few other nifty tricks. The tricks will, of course, be dependent upon the theme you are using. Some themes allow you to set the titlebar to the right or left. This setting makes for a very interesting look. Combine this with transparency (and the right theme) and you'll have something like that shown in Figure I.

Figure I

This is a desktop sure to impress your friends and co-workers.

Menu configuration

One of the few drawbacks to Enlightenment is the configuration of menus. There is no tool for this task. Instead, you have to actually edit a text file. Although this might seem like a throwback, it's actually quite easy to do.

The file you need to edit will be in the users ~/.e16/menus/ directory and will be called user_apps.menu. The individual entries for the menu look like this:

"Open Office" NULL exec "oowriter"

Breaking this entry down looks like this:

  • "Open Office" is the name that will be listed in the menu.
  • NULL is the graphic entry for the menu (NULL being no graphic).
  • exec tells the system that what follows is the command for the application.
  • "oowriter" is the actual command for the application.

You can have as many entries as you like.

Key combinations

As with all Linux desktops, there are certain key combinations that will allow you to work more efficiently. These key combinations include:

  • [Alt][Ctrl][Home]: Auto arrange all open windows
  • [Alt][Ctrl][Insert]: Launch the Eterm application
  • [Alt][Ctrl][Delete]: Log out of Enlightenment
  • [Alt][Ctrl][Right]: Go to the next desktop
  • [Alt][Ctrl][Left]: Go to the previous desktop
  • [Alt][Shift][Down]: Move desk area down
  • [Alt][Shift][Up]: Move desk area up
  • [Alt][Shift][Left]: Move desk area to the left
  • [Alt][Shift][Right]: Move desk area to the right
  • [Alt][Tab]: Switch between applications
  • [Alt][Ctrl][Up]: Raise active window
  • [Alt][Ctrl][Down]: Lower active window
  • [Alt][Ctrl][X]: Close active window
  • [Alt][Ctrl][K]: Destroy active window
  • [Alt][Ctrl][I]: Iconify active window
  • [Alt][Ctrl][R]: Shade active window
Final thoughts

Enlightenment is one of the finest Window Mangers for Linux. Not only is it effective in making your work efficient, it is also full of eye candy you may never have experienced before. You can even pick up some really great themes for Enlightenment (placing them in /user/share/e16/themes will get you started). Whether it's giving life to an older machine or perking up your rather drab computing experience, Enlightenment will help you get a fun Linux desktop.


3 comments:

Anonymous said...

"We'll discuss disabling this later in configuration.",,,about the DRAG BAR...well, i read and reread, but don't see any info on how to remove that.

did i miss it?
i know, i don't use mine, and in the old days, it was only on the lower pager windows, and / or didnt work on the top/ upper.

myname here said...

is there anyway to remove the settings menu? and only leave the applications menu?

Anonymous said...

I would like to exchange links with your site www.blogger.com
Is this possible?