by Geoffrey W. Corey
About the author:
Computers is my hobby and my profession, however my life is my family. I'm the proud father of a 4-year old boy Joshua and 10-month old twins, Aaron and Ryan. Jennifer, my wife, is the best and supports me in my strange career in computers. I currently work at a small outsourcing firm ClientLink and specialize in very large databases and object oriented analysis & design.
Enlightenment is a highly customizable window manager for Linux. This article discusses the features, installation, and customization of the Enlightenment window manager. The current release of Enlightenment is still considered a development release. The intended audience for this article should have a good knowledge of developing and compiling programs on Linux.
Word of warning, you'll probably need a decent processor and graphics card to get the most of this window manager. I currently run Enlightenment at home on a Pentium 90 with a Vision 864 S3 graphics card with 2mg of memory. I would consider this setup as the bare minimum requirement. However there are themes for lower resolution bandwidth such as the "Executive" theme.
The following is a thumbnail image of the default theme for Enlightenment.
|Located on the upper right-side are the desktop buttons.
Clicking on these buttons will allow you to bring up applications such
as xterm, netscape, gimp, and others. If you click on the last
three buttons, a drawer will open to the right and have thumbnail size
images you can select for your background.
Located on the lower left-side are the virtual desktops. Clicking on these will allow you to jump to the different desktops. You will notice that the image on the virtual desktop will resemble the layout of windows on that desktop. You can actually move windows in the virtual desktop by dragging them to the desired position.
Located on the upper right-side is the icon box. When you minimize an x-window the icon is placed in the icon box. You can scroll through the icon box if you have filled it up by clicking on the scrolling buttons located above and below the iconbox. Icons can be expanded by dragging the icon onto the desktop.
The middle of the screen you can see a popup menu. Popup menus can be viewed by right, middle, or left clicking on the desktop.
|The Default Theme
|The Obsidian Theme
||There are a lot more interesting add-ons for Enlightenment.
and check out Eterm and Eplus.
Eterm brings you a fancy version
of rxvt and Eplus adds just about everything else! Eplus is
comprised of a cd-player, email notifier, performance monitor, and a slew
of meaningless lights to dazzle your co-workers! Eplus's
look and feel can also be customized similarly to Enlightenment. Other
programs have been created in the spirit of Enlightenment. One must
download is eMusic. It is a jazzed up mp3, MOD, and cd-player. In true Enlightenment fashion the look and
feel of the player can also be configured. (UPDATE: can't seem to find it anymore :( ).
lists a lot of other apps for the E window manager.
Here is a thumbnail of the Obsidian theme. Here you can see how different this theme is compared with the default theme. The bottom row are your virtual desktops. The second row contains your menu icons, icon bar, and Eplus.
Creativity in computing is not dead thanks to the individuals that bring Linux alive!
First, you will need to get the latest libraries for Imlib at ftp.enlightenment.org/enlightenment/enlightenment/libs/. Most problems will occur if you install the latest libraries and still have the old versions laying around. RPM's are available for all libraries. Check /usr/lib for duplicate libraries as it pertains to z, tiff, jpeg, png, and Imlib. Clean it up so only the latest are installed.
Now there is an RPM for Enlightenment. You can try it and install the RPM and see if it works. To start Enlightenment, edit your .xinitrc file in your home directory, and add the following line:
Save the file and then enter the following on the command line and hit return. Note: Enlightenment has spectacular graphics and is best to run in the highest resolution with the most colors. 16-bit color really should be the minimum.
startx -- -bpp 16
Now, if Enlightenment fails to execute, you should see the reason at the end of the X windows startup info. You can either figure out what the deal is, or try and compiling the source yourself.
Now if linking failed because it didn't find png, jpeg, or tiff commands then edit the Makefile and search for LOCAL_LIBRARIES and make sure it looks like the following:
LOCAL_LIBRARIES = -lImlib -ltiff -lgif -ljpeg -lpng -lz
Do a 'make install' and everything should work fine. If it doesn't, then check and see if you have eliminated duplicate libraries from /usr/lib and that the libaries are accessable from the Makefile.
exec /usr/local/enlightenment/bin/enlightenment -theme Neuromancer
Now just startup X in 16 bit mode.
startx -- -bpp 16
What enlightenment does is looks for a file called Neuromancer or a directory called Neuromancer in /usr/local/enlightenment/themes directory. As you can see, each theme is very unique and allows quite a bit of creativity by the theme authors.So what is a theme? Well, the theme file you downloaded is really a compressed tar file (.tgz). Usually the extension is left off the file, however you can decompress and untar the file. Next we will do just that and try to customize some of the menus and buttons in a theme.
cd /usr/local/enlightenment/themes $ cd /usr/local/enlightenment/themes $ mv DEFAULT DEFAULT.tgz $ tar zxvf DEFAULT $ cd DEFAULT $ ls -rw-r--r-- 1 1000 bin 2929 Jul 25 1997 MAIN -rw-r--r-- 1 1000 bin 7015 Jul 31 1997 buttons -rw-r--r-- 1 1000 bin 952 Aug 29 1997 control -rw-r--r-- 1 1000 bin 843 Aug 12 1997 cursors -rw-r--r-- 1 1000 bin 2885 Jul 29 1997 desktops -rw-r--r-- 1 1000 bin 510 Nov 18 17:12 exec -rw-r--r-- 1 1000 bin 567 Jul 25 1997 fx -rw-r--r-- 1 1000 bin 3239 Jul 25 1997 icons -rw-r--r-- 1 1000 bin 1074 Jul 25 1997 infobox -rw-r--r-- 1 1000 bin 6392 Jul 30 1997 keys -rw-r--r-- 1 1000 bin 41382 Aug 6 1997 menus drwxr-xr-x 4 1000 bin 2048 Jul 26 1997 pix -rw-r--r-- 1 1000 bin 452 Jul 25 1997 root -rw-r--r-- 1 1000 bin 1658 Aug 8 1997 status -rw-r--r-- 1 1000 bin 530 Jul 25 1997 text -rw-r--r-- 1 1000 bin 13222 Aug 12 1997 windowstyles
The file MAIN is what enlightenment reads first. If you
view this file you will see that it calls other files to setup the various
parts of Enlightenment. Most other themes follow the same naming
convention as the DEFAULT theme.
|MAIN||The file enlightenment loads during startup. This file may include other files for customizing the various layouts for windows, menus, buttons, desktops, cursors, icons, etc.|
|buttons||Defines the position, look, and behavior of buttons located on the desktop. For the DEFAULT theme, this is the row of buttons on the upper left side of the desktop.|
|control||Defines window manager behavior. This includes items such as automatically bringing a window to the top if it has had focus for a period of time. Go ahead and edit the file and check it out. It has execellent comments on the features provided.|
|cursors||Defines the appearance of a mouse cursor.|
|desktops||Defines the look and position of virtual desktops. For the DEFAULT theme, these are the images on the lower left side of the desktop.|
|exec||Defines programs to be automatically started when enlightenment is started.|
|fx||Defines special effects enlightenment can provide. This is a fun file, go ahead and edit and change drop-shadows from off to on.|
|icons||Defines the box that will hold iconified programs, that is, when you minimize a program the icon for the program will show up in the iconbox. For the DEFUALT theme the iconbox is located on the upper right-hand side of the desktop.|
|infobox||Defines the startup information box. This is the logo you first see when enlightenment is started and begins loading the configuration files.|
|keys||Defines hot-keys and their behavior. You can customize this file and have function key F5 start Gimp if you want.|
|menus||Defines the popup menus and behavior. These are the menus you see when you right, middle, or left-click on the desktop. We will explore customizing the menus a little later.|
|pix||This is a directory where all the images are located.|
|root||Defines the background image.|
|status||This defines the television screens you see popup on the startup screen when enlightenment is loading the configuration file.|
|text||Defines the font used for text.|
|windowstyles||This defines the window boarders, buttons, and behavior for all X-windows.|
Note: Before you change any of the config files, BACK THEM UP!!!!
To append a menu item, just cut and paste a begin menuitem thru end to the end of the list (within the begin menu and end). For example, edit menus and search for 'Random'. This is the menu Random Garbage that appears when you right-click on the desktop. Now search for 'Xsnow' and it will bring to the bottom of the 'Random Garbage' menu list. Copy the begin menuitem thru the first end (right after 'action exec xsnow') and append before the last 'end'. Now change Xsnow to Fonts and change .action exec xsnow' to 'action exec xfontsel'. Now the tricky part has to do with location. You'll notice that Xsnow is 0 312 and size is 253 24. Don't worry about the first number. However if you divide 312 / 24 you'll get 13. That's because Xsnow is the 14th menu item (starting with menu item 0). So for Fonts we need to add 24 to 312. So change 312 to 336. We also need to change the number of items from 14 to 15 (two lines above 'Random Garbage' text) and increase the menu dimensions by 24, so change 'dimensions 253 336' to 'dimensions 253 360'
Of course the alternative is running Econfig and using a X-windows interface. I have not tried Econfig yet, but it looks to me like if would make the following procedure less painful.
Original menus excerpt ------- omitted text ------- begin menu name root3 type custom dimensions 253 336 popupdist 126 12 items 14 begin menuitem text Random Garbage ------- omitted text ------- begin menuitem text Xsnow type element location 0 312 size 253 24 text_location 5 5 text_size 243 14 image unselected pix/menu_plain_1.ppm shapemodeon 255 0 255 image selected pix/menu_plain_2.ppm shapemode on 255 0 255 action exec xsnow end end -------- omitted text ------- Modified menus excerpt -------- omitted text ------- begin menu name root3 type custom dimensions 253 360 popupdist 126 12 items 15 begin menuitem text Random Garbage -------- omitted text ------- begin menuitem text Xsnow type element location 0 312 size 253 24 text_location 5 5 text_size 243 14 image unselected pix/menu_plain_1.ppm shapemodeon 255 0 255 image selected pix/menu_plain_2.ppm shapemode on 255 0 255 action exec xsnow end begin menuitem text Fonts type element location 0 312 size 253 24 text_location 5 5 text_size 243 14 image unselected pix/menu_plain_1.ppm shapemodeon 255 0 255 image selected pix/menu_plain_2.ppm shapemode on 255 0 255 action exec xfontsel end end ------- omitted text ------
Okay, to see your handywork, left-click and select 'Exit Options' and then 'Restart'. Enlightenment will reread the config files and restart. During the restart you current session is kept so you will not lose any windows you currently have running. Once Enlightenment restarts, do a right-click on the desktop and you should see Fonts on the bottom of the list. Give it a try!
Modifying buttons is in similar fashion. Go ahead and explore
the configuration files, however remember to back them up before you make
Webpages maintained by the LinuxFocus Editor team
© Geoffrey W. Corey, FDL
2002-10-22, generated by lfparser version 2.32