You may often use features in eboxy that have only just been made available in the latest release. If a user of a previous version attempts to use a skin you have made that uses a new feature, and they are using an older version, they may not realise why it doesn't work. To solve this, add a minversion attribute to the top level node of your XML file, ie:
<?xml version="1.0"?> <!DOCTYPE eboxy SYSTEM "eboxy.dtd"> <eboxy minversion="0.4.0"> ... </eboxy>
Instead of receiving some cryptic error message (eg. a script error, because you have used a new scripting language feature), the user of a version of eboxy which is older than the minimum version specified will be informed that they need to upgrade.
Upon starting, eboxy will look for system.xml in the .eboxy subdirectory of your home directory. If it exists, it will be loaded first before loading the XML file specified on the command line. You can use this to set up templates or pages, or load plugins that you can re-use in other XML files.
As eboxy uses SDL for video output, you can control which output type it uses with environment variables just as you can with any SDL-based application.
Table 4.4. SDL video driver environment variables
Variable | Description |
---|---|
SDL_VIDEODRIVER | Driver used for video output. In Linux, possible values include x11, fbcon, directfb, and svgalib. If you set this to a particular driver, SDL must have been compiled with the specified driver enabled. If you do not set this, SDL will auto-detect it, using the best available driver. |
SDL_FBDEV | Framebuffer device to use if using framebuffer (fbcon) output. Default is /dev/fb0. |
SDL_FBACCEL | Set to 0 to disable framebuffer acceleration (when using framebuffer). |
For further details, see http://sdldoc.csn.ul.ie/sdlenvvars.php.
In some situations it may be useful to know the order of events as they are executed by eboxy. The following lists should give you an idea of what happens when.
Read configuration file ~/.eboxy/eboxy.conf
Check command-line options
Read key configuration file ~/.eboxy/keys
Load interface plugin
Read system XML file ~/.eboxy/system.xml
Read user-specified XML file (or eboxy.xml in current directory)
Initialise LIRC (if enabled)
Initialise system-level plugins
Fire System.OnLoad event
Start system-level timers
Notify all plugins that first page is about to be loaded
Load page-level plugins for first page
Fire page OnLoad event
Display first page
Fire page OnShow event
Start page-level timers
Notify all plugins that page has finished loading
Fire system OnShow event
(... process events ...)
Notify all plugins that page is going to be changed
Fire current page's OnUnload event
Stop any timers owned by current page
Unload any plugins owned by current page
Load page-level plugins for new page
Fire page OnLoad event
Display new page
Fire page OnShow event
Start page-level timers
Notify all plugins that page has finished loading
(... process events ...)
Notify all plugins that file is going to be changed
Unload all pages/objects/plugins that belong to current file except for current page
Load new XML file
Initialise system-level plugins from new file
Notify all plugins that page is going to be changed
Fire current page's OnUnload event
Stop any timers owned by current page
Unload any plugins owned by current page
Load page-level plugins for first page from new file
Fire page OnLoad event
Display page
Fire page OnShow event
Start page-level timers
Notify all plugins that page has finished loading
Notify all plugins that file has finished loading
(... process events ...)