1. Introduction

This document is an ``advanced user'' manual for the X11 window manager Notion. It is an attempt at documenting things that go into Notion's configuration files, how to configure Notion by simple modifications to these files and how to write more complex extensions in Lua, the lightweight configuration and scripting language used by Notion.

Readers unfamiliar with Lua might first want to first glance at some Lua documentation at

http://www.lua.org/docs.html, or

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 [*] some key concepts and relations are explained. These include the module system, and Notion'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 Notion's scripting interface. Knowing the different object types also helps dealing with the different binding ``contexts'' (see Section [*]) that to some extent mirror these classes.

The new user, fed up with the default key bindings and eager to just quickly configure Notion to his liking, may therefore just want to skip to Chapter [*], and attempt to work from therefore. That chapter provides the very basic Notion 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 [*] explains the notion of drawing engines and graphical styles and how to write new looks for Notion. More advanced aspects of Notion's scripting interface are documented in Chapter [*]. Finally, most of the functions provided by Notion's scripting interface are listed and documented in the Function reference in Chapter [*]. At the end of the document an alphabetical listing of all these functions may be found.