Skip to main content

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.

ModuleDescription
clientA window: geometry, tags, focus, floating, fullscreen, its methods and signals.
tagA workspace: selection, its client list, layout, and layout parameters.
screenAn output: geometry, workarea, tags, bars, and the DPI facts.
layerA layer-shell surface: panels, launchers, and lockers from other programs.
notificationA desktop notification: urgency, actions, timeout, and its lifecycle.

Modules

The kiln stdlib: everything a config composes with.

ModuleDescription
kilnThe top-level module: spawn, rules, key, button, and what it re-exports.
kiln.uiThe declarative UI layer: every constructor, the cfg contract, floats, bands, and menus. Maps cfg onto Clay, adds no policy.
kiln.widgetsThe stock widgets: taglist, tasklist, clock, titlebar and their kin. Policy a config could have written in ui.*, written once.
kiln.layoutThe layout contract, the nine built-in families, and the tag properties they read.
Keys, Buttons, and RulesBinding keys and pointer buttons, and matching clients with rules.
kiln.defaultsThe replaceable default policies the runtime installs.
kiln.placementPlacement helpers for floating clients.
kiln.menuPopup menus: the show cfg, item schema, keyboard navigation, and the client list.
Theme VariablesEvery 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.

ModuleDescription
Signal IndexEvery signal on every class, in one table.
coreThe raw C boundary the stdlib is built on: declare primitives, timers, input.
Origin EventsThe compositor events that drive the runtime, and what each carries.
Environment and IPCEnvironment variables, the IPC socket, and evaluating Lua from outside.
kiln-clientThe command-line client: every verb, selectors, reflection, JSON output.

See also