Previous Up Next

1  Introduction

This document is a sort of ''advanced user'' manual for Ion, the X11 window manager. It is an attempt attempt at documenting what is in Ion's configuration files, how to configure Ion by simple modifications to these files and how to write more complex extensions in Lua, the lightweight configuration and scripting language used by Ion.

If the reader is new to Lua, he is advised to first glance at the Lua manual at http://www.lua.org/docs.html and/or perhaps some helpfull lua-users wiki pages at http://lua-users.org/wiki/, in particular the tutorial pages there (http://lua-users.org/wiki/LuaTutorial).

Back in this document, first, in chapter 2 Ion's object and class hierarchies are explained. While it might not at first occur that knowing such things would be necessary to configure a program, this material is essential because of the object-oriented nature of most of Ion's scripting interface.

The new user, fed up with the default key bindings and eager to just quickly configure Ion to his liking may question the reasons for exposing the ''heavy'' internal OO structure in the scripting and configuration interface and I'm no the one to blame him for that. Sure it would be easier for new users to configure Ion to the liking if a consistently simpler configuration interface was provided. Such an interface would, however, also be far more limited or at least make writing extensions more complicated and the advantages from using a real scripting language would be partly lost. One more advantage from a rich scripting and configuration interface is that it allows implementing scripts to read alternate configuration file formats, one that could be e.g. modified by external configuration tools.

In chapter 3 the very basic Ion configuration know-how is provided. The different configuration files and their locations are explained and instructions are given to allow the reader to configure bindings and so-called ''winprops''. Chapter 4 explains the notion of drawing engines and graphical styles and how to write new looks for Ion and more advanced aspects of Ion's scripting interface are documented in chapter 5 (a work in progress).

Finally, most of the functions provided by Ion's scripting interface are listed and documented in the Function reference in chapter 6.


Previous Up Next