<BODY >
<DIV CLASS="navigation"><!--Navigation Panel-->
-<A NAME="tex2html226"
+<A NAME="tex2html253"
HREF="node3.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
-<A NAME="tex2html220"
+<A NAME="tex2html247"
HREF="ionconf.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
-<A NAME="tex2html214"
+<A NAME="tex2html241"
HREF="node1.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
-<A NAME="tex2html222"
+<A NAME="tex2html249"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
-<A NAME="tex2html224"
+<A NAME="tex2html251"
HREF="node11.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A>
<BR>
-<B> Next:</B> <A NAME="tex2html227"
+<B> Next:</B> <A NAME="tex2html254"
HREF="node3.html">2. Preliminaries: Key concepts</A>
-<B> Up:</B> <A NAME="tex2html221"
+<B> Up:</B> <A NAME="tex2html248"
HREF="ionconf.html">Configuring and extending Ion3</A>
-<B> Previous:</B> <A NAME="tex2html215"
+<B> Previous:</B> <A NAME="tex2html242"
HREF="node1.html">Contents</A>
- <B> <A NAME="tex2html223"
+ <B> <A NAME="tex2html250"
HREF="node1.html">Contents</A></B>
- <B> <A NAME="tex2html225"
+ <B> <A NAME="tex2html252"
HREF="node11.html">Index</A></B>
<BR>
<BR></DIV>
</H1>
<P>
-This document is an ''advanced user'' manual for Ion, the X11 window manager,
-and version 3 specifically. It is an attempt attempt at documenting what is
-in Ion's configuration files, how to configure Ion by simple modifications
+This document is an ``advanced user'' manual for the X11 window manager
+Ion, version 3. It is an attempt at documenting things that go into 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.
<P>
-Readers unfamiliar with Lua is advised to first glance at the Lua manual at
+Readers unfamiliar with Lua might first want to first glance at some
+Lua documentation at
<P>
<DIV ALIGN="CENTER">
<TT><A NAME="tex2html1"
- HREF="http://www.lua.org/docs.html">http://www.lua.org/docs.html</A></TT>
-</DIV>
-
-<P>
-and perhaps some tutorial pages at the lua-users wiki:
+ HREF="http://www.lua.org/docs.html">http://www.lua.org/docs.html</A></TT>, or
+<BR> <TT><A NAME="tex2html2"
+ HREF="http://lua-users.org/wiki/LuaTutorial">http://lua-users.org/wiki/LuaTutorial</A></TT>,
-<P>
-<DIV ALIGN="CENTER">
-<TT><A NAME="tex2html2"
- HREF="http://lua-users.org/wiki/LuaTutorial">http://lua-users.org/wiki/LuaTutorial</A></TT>
</DIV>
<P>
-Back in this document, first in chapter <A HREF="node3.html#chap:prelim">2</A> some key
-concepts and relations are explained. These include the module system
-and Ion's object and class hierarchies. While it might not at first
-occur that knowing such things would be necessary to <SPAN CLASS="textit">configure</SPAN>
-a program, this material is essential because of the object-oriented
-nature of most of Ion's scripting interface.
+although this should not be strictly necessary for basic modifications
+of configuration files for anyone with at least some familiarity with
+programming languages.
<P>
-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. I'm not the one to blame him for that.
-Sure it would be faster to configure Ion to everyone's liking
-if a simpler binding configuration interface was provided. Such an
-interface would, however, also be far more limited and 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,
-ones that could be, for example, modified by external configuration tools.
+Back in this document, first in chapter <A HREF="node3.html#chap:prelim">2</A> some key
+concepts and relations are explained. These include the module system,
+and Ion's object (or ``region'') and class hierarchies. While it may
+not be necessary to study the latter for basic copy-paste modifications
+of configuration files - for that you should not really need this
+manual either - it is, however, essential to for more extensive
+customisation, due to the semi-object-oriented nature of most of
+Ion's scripting interface. Knowing the different object types also
+helps dealing with the different binding ``contexts'' (see
+Section <A HREF="node4.html#sec:bindings">3.3</A>) that to some extent mirror these classes.
<P>
-In chapter <A HREF="node4.html#chap:config">3</A> the very basic Ion configuration know-how
-is provided. All 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 <A HREF="node5.html#chap:gr">4</A>
-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 <A HREF="node6.html#chap:tricks">5</A> (a work in
-progress).
+The new user, fed up with the default key bindings and eager to
+just quickly configure Ion to his liking, may therefore just want
+to skip to Chapter <A HREF="node4.html#chap:config">3</A>, and attempt to work from therefore.
+That chapter provides the very basic Ion configuration know-how
+is provided: all the different configuration files and their locations
+are explained, instructions are given to allow the reader to
+configure bindings and so-called ``winprops'', and the statusbar
+templates are also explained.
<P>
+Next, Chapter <A HREF="node5.html#chap:gr">4</A> explains the notion of drawing engines
+and graphical styles and how to write new looks for Ion. More advanced
+aspects of Ion's scripting interface are documented in Chapter
+<A HREF="node6.html#chap:tricks">5</A>.
Finally, most of the functions provided by Ion's scripting interface
-are listed and documented in the Function reference in chapter
-<A HREF="node7.html#sec:exports">6</A>. At the end of the document is an alphabetical
-listing of all these functions.
-
-<P>
+are listed and documented in the Function reference in Chapter
+<A HREF="node7.html#sec:exports">6</A>. At the end of the document an alphabetical
+listing of all these functions may be found.
<P>
<DIV CLASS="navigation"><HR>
<!--Navigation Panel-->
-<A NAME="tex2html226"
+<A NAME="tex2html253"
HREF="node3.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
-<A NAME="tex2html220"
+<A NAME="tex2html247"
HREF="ionconf.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
-<A NAME="tex2html214"
+<A NAME="tex2html241"
HREF="node1.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
-<A NAME="tex2html222"
+<A NAME="tex2html249"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
-<A NAME="tex2html224"
+<A NAME="tex2html251"
HREF="node11.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A>
<BR>
-<B> Next:</B> <A NAME="tex2html227"
+<B> Next:</B> <A NAME="tex2html254"
HREF="node3.html">2. Preliminaries: Key concepts</A>
-<B> Up:</B> <A NAME="tex2html221"
+<B> Up:</B> <A NAME="tex2html248"
HREF="ionconf.html">Configuring and extending Ion3</A>
-<B> Previous:</B> <A NAME="tex2html215"
+<B> Previous:</B> <A NAME="tex2html242"
HREF="node1.html">Contents</A>
- <B> <A NAME="tex2html223"
+ <B> <A NAME="tex2html250"
HREF="node1.html">Contents</A></B>
- <B> <A NAME="tex2html225"
+ <B> <A NAME="tex2html252"
HREF="node11.html">Index</A></B> </DIV>
<!--End of Navigation Panel-->