]> git.decadent.org.uk Git - ion3-doc.git/blob - confintro.tex
[svn-inject] Installing original source of ion3
[ion3-doc.git] / confintro.tex
1
2 \chapter{Introduction}
3
4 This document is an ''advanced user'' manual for Ion, the X11 window manager,
5 and version 3 specifically. It is an attempt attempt at documenting what is 
6 in Ion's configuration files, how to configure Ion by simple modifications 
7 to these files and how to write more complex extensions in Lua, the 
8 lightweight configuration and scripting language used by Ion. 
9
10 Readers unfamiliar with Lua is advised to first glance at the Lua manual at 
11
12 \centerurl{http://www.lua.org/docs.html}
13
14 and perhaps some tutorial pages at the lua-users wiki:
15
16 \centerurl{http://lua-users.org/wiki/LuaTutorial}
17
18 Back in this document, first in chapter \ref{chap:prelim} some key
19 concepts and relations are explained. These include the module system
20 and Ion's object and class hierarchies. While it might not at first 
21 occur that knowing such things would be necessary to \emph{configure} 
22 a program, this  material is essential because of the object-oriented 
23 nature of most of Ion's scripting interface.
24
25 The new user, fed up with the default key bindings and eager to just
26 quickly configure Ion to his liking may question the reasons for 
27 exposing the ''heavy'' internal OO structure in the scripting and
28 configuration interface. I'm not the one to  blame him for that. 
29 Sure it would be faster to configure Ion to everyone's liking
30 if a simpler binding configuration interface was provided. Such an
31 interface would, however, also be far more limited and make writing
32 extensions more complicated and the advantages from using a real 
33 scripting language would be partly lost. One more advantage from
34 a rich scripting and configuration interface is that it allows 
35 implementing scripts to read alternate configuration file formats,
36 ones that could be, for example, modified by external configuration tools. 
37
38 In chapter \ref{chap:config} the very basic Ion configuration know-how
39 is provided. All the different configuration files and their locations
40 are explained and instructions are given to allow the reader to
41 configure bindings and so-called ''winprops''. Chapter \ref{chap:gr}
42 explains the notion of drawing engines and graphical styles and how to
43 write new looks for Ion and more advanced aspects of Ion's scripting 
44 interface are documented in chapter \ref{chap:tricks} (a work in 
45 progress).
46
47 Finally, most of the functions provided by Ion's scripting interface
48 are listed and documented in the Function reference in chapter
49 \ref{sec:exports}. At the end of the document is an alphabetical
50 listing of all these functions.
51
52