Reference
This section documents every symbol a kiln config can touch: the objects the compositor hands you, the kiln stdlib modules, and the system layer under both. Each page opens with a short example, then tables: properties as name, type, default, description; methods with their signatures inline; signals with payload and when they fire.
Two conventions run through everything. A config loads the stdlib once:
local kiln = require("kiln")
and the classes client, screen, tag, layer, drag, notification, and core are globals, available without requiring anything.
Objects
The live things the compositor manages. Properties are read at declare time, so setting one takes effect on the next frame.
| Module | Description |
|---|---|
| client | A window: geometry, tags, focus, floating, fullscreen, its methods and signals. |
| tag | A workspace: selection, its client list, layout, and layout parameters. |
| screen | An output: geometry, workarea, tags, bars, and the DPI facts. |
| layer | A layer-shell surface: panels, launchers, and lockers from other programs. |
| notification | A desktop notification: urgency, actions, timeout, and its lifecycle. |
Modules
The kiln stdlib: everything a config composes with.
| Module | Description |
|---|---|
| kiln | The top-level module: spawn, rules, key, button, and what it re-exports. |
| kiln.ui | The declarative UI layer: every constructor, the cfg contract, floats, bands, and menus. Maps cfg onto Clay, adds no policy. |
| kiln.widgets | The stock widgets: taglist, tasklist, clock, titlebar and their kin. Policy a config could have written in ui.*, written once. |
| kiln.layout | The layout contract, the nine built-in families, and the tag properties they read. |
| Keys, Buttons, and Rules | Binding keys and pointer buttons, and matching clients with rules. |
| kiln.defaults | The replaceable default policies the runtime installs. |
| kiln.placement | Placement helpers for floating clients. |
| kiln.menu | Popup menus: the show cfg, item schema, keyboard navigation, and the client list. |
| Theme Variables | Every kiln.theme key with its default, plus kiln.modkey. |
System
The layer under the stdlib. Everyday configs rarely need these pages; scripting, debugging, and extension work does.
| Module | Description |
|---|---|
| Signal Index | Every signal on every class, in one table. |
| core | The raw C boundary the stdlib is built on: declare primitives, timers, input. |
| Origin Events | The compositor events that drive the runtime, and what each carries. |
| Environment and IPC | Environment variables, the IPC socket, and evaluating Lua from outside. |
| kiln-client | The command-line client: every verb, selectors, reflection, JSON output. |