Artist's Guide to the Desktop, Part 2
Virtual screen space gives you added room to keep windows open. In essence, they are an alternative to iconizing windows. Icons are nice, but without meaningful icons to represent the real window's application, icons can be more confusing than helpful.
Pagers get around this ambiguity by simply leaving the windows open. You jump to and fro between virtual desktops with multiple pages. Think of each desktop as a desk in a different cube with multiple drawers. Each drawer would be a page in the desktop. The main difference is that it's easier to work on the virtual desktops than it is to swap papers to and from the desk and drawers.
E's pagers are fairly sophisticated, compared to pagers for other window managers. First, the background image used on a desktop can be displayed in each page of the pager, making it easier to delineate the pages. Each window in a pager is a miniature version of the real one, complete with window borders, window contents and images. The miniaturized windows in the pager can be zoomed when the mouse is over them, although for things like ordinary xterms, this isn't very helpful. What is useful is having the window title displayed when the mouse is over a window in the pager. This allows you to identify any window in any page of any desktop instantly—and a simple middle mouse button click on that window in its pager will jump you right to the window.
Having different backgrounds for each desktop is also supported. Figure 4 shows a desktop configured with 3 pagers along the right side, each with a different desktop background image and a 2x2 page configuration. A Netscape image and multicolored sticky notes are visible in various pages.
This example shows a modified configuration using a theme different from the default, personalized backgrounds and pagers with different configurations. Compare Figure 1 with Figure 4, and you'll see just how varied the E environment can look.
One of the newer features of E is its ability to support small programs, called epplets, to perform simple functions. The epplets are usually small C programs, but you can also create small scripts run by eesh, the Enlightenment shell. Epplets can be stand-alone programs which have their own user interface, or they can let E handle the user interface for them—a sort of embedded application.
Currently, there are only a few small epplets, provided mostly by loyal E enthusiasts. E itself comes with a few scripts, but no epplets. None of the epplets do anything overly interesting, although it's highly likely that functions like automatic connection to the Internet will be provided in the future using epplets. The most interesting of the epplets is probably gkrellm, an all-in-one epplet that displays system performance, time and other useful information. You can expect that future extensibility of E will come in the form of expanded support for epplets.
After all this, why should you consider E? In a nutshell-- configurability. E offers you the most options to making the desktop yours—your style, your feel, your world. You live on computers day in and day out. Why shouldn't it be a more personal place?
E has a considerable amount of graphical configuration support. In fact, nearly all features of E are configurable using simple graphical interfaces that you can access via the Settings menu or from feature-specific menus. The only parts of E that require manual intervention are adding menu options to the root menus and developing themes.
The Settings menu allows you to change the way the window manager works in many ways: opaque vs. transparent window moves, autofocus and autoraise for windows, desktop, tooltip and audio settings, and even a few special effects. It's important to scan through these settings, especially if you're running on a memory-limited laptop. Enlightenment is designed to allow you to add more flash to your desktop if your system has the CPU and memory to deal with it. But if it can't, E also allows you to disable some of the resource hogs.
Changing the root menus is fairly easy. Just edit the file.menu and/or user_apps.menu files under your $HOME/.enlightenment directory, which was created the first time you started E. You can add new submenus for the root menus in this way. The file.menu file corresponds to the User Menus menu (opened with a left mouse click on the root window). The user_apps.menu displays as the User Applications List menu, an option from the “User Menus” menu.
E checks the entries in these menu files to see if the program associated with a menu option can be found. If the program can't be found, then that entry won't be displayed in the menu. You can use fully qualified path names for programs. If the application is in a directory listed in your PATH environment variable, you just need to specify the program name.
Changing menus lets you have quick access to starting applications. How do you force an application to always start on a particular desktop page? E can remember open applications, but you have to specify manually which windows to reopen the next time you start an X session. To do this, hold down the ALT key while you right-click in a window; a menu will open. Select the “Remember...” option, and in the dialog that opens, select the options you want E to remember for this application. The next time you start E, it will start the application with the parameters you specified.
Note that this differs from how we started X the first time, using the .Xclients file. That file is used by xinit to start applications every time you start an X session—Enlightenment doesn't know anything about those applications. The ALT-right mouse click method just mentioned tells Enlightenment to restart an application after E is started. The choice here is whether to allow xinit or E to start your applications. To make life easier, the only line you want in your .Xclients file is the command to start Enlightenment; then, use E to manage the starting of any other applications.
Dragging windows can have many effects. Dragging a window from a pager over the root window will drop that window onto the current page and desktop. You can drag windows from the pager into the icon box to iconize the window without actually going to the desktop the window lives in. The icon box can be resized by holding down the ALT key and clicking the middle mouse button—not intuitive, but easy enough once you know what to do.
The background for any desktop can be set using the “Desktop Background Settings...” option in the Settings menu. User's backgrounds in just about any format (for example, TIFF, JPEG and PNG as long as your version of imlib was built to support these) can be copied to ~/.enlightenment/backgrounds. Changes to this directory will be recognized only if you restart E; however, this is easy to do using the “User Menus” menu.
How would someone go about figuring out how to change the themes? How do you find out how to create stylized buttons, Title Bars and so forth? This is the current limitation in E (and, actually, in many other Linux desktops). Simple themes can specify background images for windows and desktops, and images to use for icons. E allows more sophisticated control of the display by allowing you to specify window borders, title bars, edges, corners and various other bits and pieces. The bad news is there isn't yet any documentation anywhere that accurately describes how to do this. The good news is that whenever something minimal is provided by the developers, I'll be able to turn that into something more detailed for you.
Despite the lack of information on creating your own themes, many prepackaged themes are available for E from the official site for Linux themes: Themes.org. This site has sections devoted to the various window managers which support some form of themed environments. I looked through a number of the user-contributed themes for E that you can find here, but didn't find any that were visually more appealing than the BlueSteel theme provided in the default installation of E. Beauty, of course, is in the eye of the user.
Editorial Advisory Panel
Thank you to our 2014 Editorial Advisors!
- Jeff Parent
- Brad Baillio
- Nick Baronian
- Steve Case
- Chadalavada Kalyana
- Caleb Cullen
- Keir Davis
- Michael Eager
- Nick Faltys
- Dennis Frey
- Philip Jacob
- Jay Kruizenga
- Steve Marquez
- Dave McAllister
- Craig Oda
- Mike Roberts
- Chris Stark
- Patrick Swartz
- David Lynch
- Alicia Gibb
- Thomas Quinlan
- Carson McDonald
- Kristen Shoemaker
- Charnell Luchich
- James Walker
- Victor Gregorio
- Hari Boukis
- Brian Conner
- David Lane