]> git.decadent.org.uk Git - ion3-doc.git/blob - ionconf/node2.html
[svn-inject] Installing original source of ion3
[ion3-doc.git] / ionconf / node2.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2
3 <!--Converted with LaTeX2HTML 2002-2-1 (1.71)
4 original version by:  Nikos Drakos, CBLU, University of Leeds
5 * revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
6 * with significant contributions from:
7   Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
8 <HTML>
9 <HEAD>
10 <TITLE>1. Introduction</TITLE>
11 <META NAME="description" CONTENT="1. Introduction">
12 <META NAME="keywords" CONTENT="ionconf">
13 <META NAME="resource-type" CONTENT="document">
14 <META NAME="distribution" CONTENT="global">
15
16 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
17 <META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
18 <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
19
20 <LINK REL="STYLESHEET" HREF="ionconf.css">
21
22 <LINK REL="next" HREF="node3.html">
23 <LINK REL="previous" HREF="node1.html">
24 <LINK REL="up" HREF="ionconf.html">
25 <LINK REL="next" HREF="node3.html">
26 </HEAD>
27
28 <BODY >
29
30 <DIV CLASS="navigation"><!--Navigation Panel-->
31 <A NAME="tex2html226"
32   HREF="node3.html">
33 <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> 
34 <A NAME="tex2html220"
35   HREF="ionconf.html">
36 <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
37 <A NAME="tex2html214"
38   HREF="node1.html">
39 <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> 
40 <A NAME="tex2html222"
41   HREF="node1.html">
42 <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> 
43 <A NAME="tex2html224"
44   HREF="node11.html">
45 <IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A> 
46 <BR>
47 <B> Next:</B> <A NAME="tex2html227"
48   HREF="node3.html">2. Preliminaries: Key concepts</A>
49 <B> Up:</B> <A NAME="tex2html221"
50   HREF="ionconf.html">Configuring and extending Ion3</A>
51 <B> Previous:</B> <A NAME="tex2html215"
52   HREF="node1.html">Contents</A>
53  &nbsp; <B>  <A NAME="tex2html223"
54   HREF="node1.html">Contents</A></B> 
55  &nbsp; <B>  <A NAME="tex2html225"
56   HREF="node11.html">Index</A></B> 
57 <BR>
58 <BR></DIV>
59 <!--End of Navigation Panel-->
60
61 <H1><A NAME="SECTION00200000000000000000">
62 <SPAN CLASS="arabic">1</SPAN>. Introduction</A>
63 </H1>
64
65 <P>
66 This document is an ''advanced user'' manual for Ion, the X11 window manager,
67 and version 3 specifically. It is an attempt attempt at documenting what is 
68 in Ion's configuration files, how to configure Ion by simple modifications 
69 to these files and how to write more complex extensions in Lua, the 
70 lightweight configuration and scripting language used by Ion. 
71
72 <P>
73 Readers unfamiliar with Lua is advised to first glance at the Lua manual at 
74
75 <P>
76 <DIV ALIGN="CENTER">
77 <TT><A NAME="tex2html1"
78   HREF="http://www.lua.org/docs.html">http://www.lua.org/docs.html</A></TT>
79 </DIV>
80
81 <P>
82 and perhaps some tutorial pages at the lua-users wiki:
83
84 <P>
85 <DIV ALIGN="CENTER">
86 <TT><A NAME="tex2html2"
87   HREF="http://lua-users.org/wiki/LuaTutorial">http://lua-users.org/wiki/LuaTutorial</A></TT>
88 </DIV>
89
90 <P>
91 Back in this document, first in chapter <A HREF="node3.html#chap:prelim">2</A> some key
92 concepts and relations are explained. These include the module system
93 and Ion's object and class hierarchies. While it might not at first 
94 occur that knowing such things would be necessary to <SPAN  CLASS="textit">configure</SPAN> 
95 a program, this  material is essential because of the object-oriented 
96 nature of most of Ion's scripting interface.
97
98 <P>
99 The new user, fed up with the default key bindings and eager to just
100 quickly configure Ion to his liking may question the reasons for 
101 exposing the ''heavy'' internal OO structure in the scripting and
102 configuration interface. I'm not the one to  blame him for that. 
103 Sure it would be faster to configure Ion to everyone's liking
104 if a simpler binding configuration interface was provided. Such an
105 interface would, however, also be far more limited and make writing
106 extensions more complicated and the advantages from using a real 
107 scripting language would be partly lost. One more advantage from
108 a rich scripting and configuration interface is that it allows 
109 implementing scripts to read alternate configuration file formats,
110 ones that could be, for example, modified by external configuration tools. 
111
112 <P>
113 In chapter <A HREF="node4.html#chap:config">3</A> the very basic Ion configuration know-how
114 is provided. All the different configuration files and their locations
115 are explained and instructions are given to allow the reader to
116 configure bindings and so-called ''winprops''. Chapter <A HREF="node5.html#chap:gr">4</A>
117 explains the notion of drawing engines and graphical styles and how to
118 write new looks for Ion and more advanced aspects of Ion's scripting 
119 interface are documented in chapter <A HREF="node6.html#chap:tricks">5</A> (a work in 
120 progress).
121
122 <P>
123 Finally, most of the functions provided by Ion's scripting interface
124 are listed and documented in the Function reference in chapter
125 <A HREF="node7.html#sec:exports">6</A>. At the end of the document is an alphabetical
126 listing of all these functions.
127
128 <P>
129
130 <P>
131
132 <DIV CLASS="navigation"><HR>
133 <!--Navigation Panel-->
134 <A NAME="tex2html226"
135   HREF="node3.html">
136 <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> 
137 <A NAME="tex2html220"
138   HREF="ionconf.html">
139 <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
140 <A NAME="tex2html214"
141   HREF="node1.html">
142 <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> 
143 <A NAME="tex2html222"
144   HREF="node1.html">
145 <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> 
146 <A NAME="tex2html224"
147   HREF="node11.html">
148 <IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A> 
149 <BR>
150 <B> Next:</B> <A NAME="tex2html227"
151   HREF="node3.html">2. Preliminaries: Key concepts</A>
152 <B> Up:</B> <A NAME="tex2html221"
153   HREF="ionconf.html">Configuring and extending Ion3</A>
154 <B> Previous:</B> <A NAME="tex2html215"
155   HREF="node1.html">Contents</A>
156  &nbsp; <B>  <A NAME="tex2html223"
157   HREF="node1.html">Contents</A></B> 
158  &nbsp; <B>  <A NAME="tex2html225"
159   HREF="node11.html">Index</A></B> </DIV>
160 <!--End of Navigation Panel-->
161
162 </BODY>
163 </HTML>