Enlightenment DR16 Directory Structure. by monkiboi

Opening an etheme folder to have a look for the first can be a bewildering experience. Here, we're going to try and guide you through the structure of an etheme.

A typical directory structure of an etheme is shown below.

 

                                                        +-->common/-->border.cfg-->images/
                                                        |
                 +-->borders.cfg-->borders/borders.cfg--+
                 |                                      |
                 |                                      +-->default/-->border.cfg
                 |
                 +-->buttons.cfg-->buttons/buttons.cfg
                 |
                 +-->colormodifiers.cfg
                 |
                 +-->cursors.cfg-->cursors/cursors.cfg-->bw_images/
                 |
                 +-->desktops.cfg-->backgrounds/-->backgrounds.cfg
                 |
                 |
                 |                      +-->coords/coords.cfg
                 |                      +-->dialogs/dialogs.cfg
                 |                      +-->dragbar/dragbar.cfg
                 +-->imageclasses.cfg-->+-->focuslist/focuslist.cfg
                 |                      +-->iconbox/iconbox.cfg
                 |                      +-->pager/pager.cfg
                 |                      +-->dock/dock.cfg
                 |                      +-->eterm/eterm.cfg
                 |                      +-->epplets/epplets.cfg
                 |
etheme folder/-->+-->init.cfg-->init/init.cfg-->images/
                 |
                 +-->menustyles.cfg-->menustyles/menustyles.cfg-->images/
                 |
                 +-->slideouts.cfg-->slideouts.cfg-->images/
                 |
                 +-->sound.cfg-->sound.cfg-->sounds/
                 |
                 +-->textclasses.cfg
                 |
                 +-->tooltips.cfg-->tooltips.cfg-->images/
                 |
                 +-->windowmatches.cfg

Figure 1: Etheme directory moving from the root directory to the config files which point to various folders.

 

Enlightenement DR16 look within each folder and reads each .cfg file it finds. These.cfg files may contain definitions (i.e. actionclasses and textclasses) while some simply have 'include' statements pointing to specific folders containing the full .cfg. on the surface this would appear to be wasteful as many older themes used a much simpler structure:

 

etheme folder/-->(config files)-->images/

Figure 2: This structure appears far simpler than Figure 1 and can work well for very simple themes.

 

While having all the images in one folder is fine when first starting a theme it quickly becomes full of images and remembering what image goes where can become very confusing unless you want to start naming each image very specifically! The structure as shown in Figure 1 turns out to be much easier to navigate when constucting and maintaining a theme.

at the top of each .cfg file you'll find:

#include <definitions>
__E_CFG_VERSION 0

which is something Enlightenment expects to find at the top of each file. This, presumably tells enlightenment that 'this file is a configuration file'. if i'm wrong then tell me so. The config files themselves will be discussed in other tutorials.

You may have noticed that some config files point to specific directories while others such as imageclasses.cfg or actionclasses (left out of Figure 1 to avoid it becoming too complicated) will be called by many different config files and is better of in the root directory. At the end of the day how you structure your theme is entirely down to you. I like to use textclasses.cfg to hold all the font definitions while others prefer to put each textclass(es) with each sepereate section. this is my preference. Choose one method and stick with it through out the theme.

This tutorial is available in a pdf format

| Home | To the top of this tutorial |

Page last updated: 06/10/04