]> git.decadent.org.uk Git - ion3.git/blobdiff - doc/confintro.tex
[svn-upgrade] Integrating new upstream version, ion3 (20070506)
[ion3.git] / doc / confintro.tex
index 9331614e9ab073b1de415851eca02827ee36a4ea..a04af82fd62efb09d479b28499fc40bd54f064d2 100644 (file)
@@ -1,52 +1,50 @@
 
 \chapter{Introduction}
 
-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. 
 
-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
 
-\centerurl{http://www.lua.org/docs.html}
+\begin{center}
+    \url{http://www.lua.org/docs.html}, or \\
+    \url{http://lua-users.org/wiki/LuaTutorial},
+\end{center}
 
-and perhaps some tutorial pages at the lua-users wiki:
-
-\centerurl{http://lua-users.org/wiki/LuaTutorial}
+although this should not be strictly necessary for basic modifications
+of configuration files for anyone with at least some familiarity with
+programming languages.
 
 Back in this document, first in chapter \ref{chap:prelim} 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 \emph{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. 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. 
-
-In chapter \ref{chap:config} 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 \ref{chap:gr}
-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 \ref{chap:tricks} (a work in 
-progress).
-
+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 \ref{sec:bindings}) that to some extent mirror these classes.
+
+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 \ref{chap:config}, 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. 
+
+Next, Chapter \ref{chap:gr} 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 
+\ref{chap:tricks}. 
 Finally, most of the functions provided by Ion's scripting interface
-are listed and documented in the Function reference in chapter
-\ref{sec:exports}. At the end of the document is an alphabetical
-listing of all these functions.
-
+are listed and documented in the Function reference in Chapter
+\ref{sec:exports}. At the end of the document an alphabetical
+listing of all these functions may be found.