]> git.decadent.org.uk Git - ion3-doc.git/blob - confintro.tex
Add 20080411-1.
[ion3-doc.git] / confintro.tex
1
2 \chapter{Introduction}
3
4 This document is an ``advanced user'' manual for the X11 window manager
5 Ion, version 3. It is an attempt at documenting things that go into Ion's
6 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 might first want to first glance at some 
11 Lua documentation at
12
13 \begin{center}
14     \url{http://www.lua.org/docs.html}, or \\
15     \url{http://lua-users.org/wiki/LuaTutorial},
16 \end{center}
17
18 although this should not be strictly necessary for basic modifications
19 of configuration files for anyone with at least some familiarity with
20 programming languages.
21
22 Back in this document, first in chapter \ref{chap:prelim} some key
23 concepts and relations are explained. These include the module system,
24 and Ion's object (or ``region'') and class hierarchies. While it may
25 not be necessary to study the latter for basic copy-paste modifications
26 of configuration files -- for that you should not really need this
27 manual either -- it is, however, essential to for more extensive
28 customisation, due to the semi-object-oriented nature of most of
29 Ion's scripting interface. Knowing the different object types also
30 helps dealing with the different binding ``contexts'' (see
31 Section \ref{sec:bindings}) that to some extent mirror these classes.
32
33 The new user, fed up with the default key bindings and eager to 
34 just quickly configure Ion to his liking, may therefore just want
35 to skip to Chapter \ref{chap:config}, and attempt to work from therefore.
36 That chapter provides the very basic Ion configuration know-how
37 is provided: all the different configuration files and their locations
38 are explained, instructions are given to allow the reader to
39 configure bindings and so-called ``winprops'', and the statusbar
40 templates are also explained. 
41
42 Next, Chapter \ref{chap:gr} explains the notion of drawing engines
43 and graphical styles and how to write new looks for Ion. More advanced
44 aspects of Ion's scripting interface are documented in Chapter 
45 \ref{chap:tricks}. 
46 Finally, most of the functions provided by Ion's scripting interface
47 are listed and documented in the Function reference in Chapter
48 \ref{sec:exports}. At the end of the document an alphabetical
49 listing of all these functions may be found.
50