]> git.decadent.org.uk Git - ion3-doc.git/blob - prelim.tex
[svn-upgrade] Integrating new upstream version, ion3-doc (20080103)
[ion3-doc.git] / prelim.tex
1
2 \chapter{Preliminaries: Key concepts and relations}
3 \label{chap:prelim}
4
5 The purpose of this chapter to explain some of key concepts and
6 relations you need to understand before reading the following
7 chapters. These include modules explained in section \ref{sec:modules}
8 and the Ion class and object hierarchies, section \ref{sec:objects}.
9
10
11 \section{Modules}
12 \label{sec:modules}
13
14 Ion has been designed so that the 'ion' executable only implements some
15 basic services on top of which very different kinds of window managers
16 could be build by loading the appropriate 'modules'. On modern system
17 these modules are simply dynamically loaded \file{.so} libraries. On 
18 more primitive systems, or if you want to squeeze total size of the 
19 executable and libraries, the modules can optionally be statically 
20 linked to the main binary, but must nevertheless be loaded with the
21 \fnref{dopath} function. Modules may also include Lua code.
22
23 If no modules are loaded, all client windows appear in full screen mode.
24 To get better window management support, one or more workspace modules
25 should be loaded. Currently Ion provides the following modules:
26
27 \begin{description}
28     \item[\file{mod\_tiling}] Tilings for workspaces of the original tiled
29        Ion kind.
30     \item[\file{mod\_query}] Queries (for starting programs and so on)
31       and message boxes.
32     \item[\file{mod\_menu}] Support for menus, both pull-down and
33       keyboard-operated in-frame menus.
34     \item[\file{mod\_statusbar}] Module that implements a statusbar that
35       can be adaptively embedded in each workspace's layout.
36     \item[\file{mod\_dock}] Module for docking Window Maker dock-apps.
37       The dock can both float and be embedded as the statusbar.
38     \item[\file{mod\_sp}] This module implements a scratchpad frame that can
39       be toggled on/off everywhere. Think of the 'console' in some 
40       first-person shooters.
41     \item[\file{mod\_sm}] Session management support module.
42       \emph{Loaded automatically when needed!}
43 \end{description}
44
45 So-called drawing engines are also implemented as a modules,
46 but they are not discussed here; see chapter \ref{chap:gr}.
47
48 The stock configuration for the \file{ion3} executable loads all of the 
49 modules mentioned above except \file{mod\_dock}.
50 The stock configuration for the \file{pwm3} executable (which differs
51 from the \file{ion3} executable in a few configuration details)
52 loads another set of modules.
53
54
55 \input{objects}