Skip to main content

Signal Index

Every signal name in one place. Instance listeners attach with obj:on(name, fn), class listeners with Class.on(name, fn); an instance emission fires the instance bus then the class bus. Listeners are pcall-isolated: a listener error surfaces as error on the global bus instead of breaking dispatch. See The object model.

client.on("focus", function(c) print("focused", c.title) end)
kiln.on("error", function(signal, err) kiln.notify { title = signal, message = err } end)

client

SignalPayloadEmitted when
mapnoneA window maps; properties already seeded.
unmapnoneA window unmaps.
destroynoneA window is destroyed.
focusnoneThe client gains focus through c:focus().
taggedthe tagThe client joins a tag.
untaggedthe tagThe client leaves a tag.
mouse::enternoneThe pointer enters the client.
request::activate{valid, app_id}The client asks to be raised; valid means a seat-backed token.
request::configure{x, y, width, height}An X11 client asks to place or size itself.
request::urgentbooleanICCCM urgency changed.
request::fullscreenbooleanThe client asks for (or maps already in) fullscreen.
request::maximizebooleanSame, for maximized.
request::minimizebooleanSame, for minimized.
request::decoration_modemodeThe client states its preferred decoration mode.
request::closenoneA foreign toplevel (taskbar) asks to close this client.
property::<any>new valueA property write changed the value (property::tags carries the new list).

tag

SignalPayloadEmitted when
property::<any>new valueA tag property write changed the value.

Tags emit only property signals. Selection changes surface as property::selected_tags on the screen.

screen

SignalPayloadEmitted when
addednoneA new output appears (restated per screen on reload).
changednoneMode, scale, position, or enabled state changed.
removednoneThe output is gone; clients were already rehomed.
property::<any>new valueA property write changed the value, notably property::selected_tags on every tag switch.

layer

SignalPayloadEmitted when
mapnoneThe surface's initial commit; blocks until a policy answers.
commitnoneThe surface committed new facts.
unmapnoneThe surface unmapped.
destroynoneThe surface is gone.
property::<any>new valueA property write changed the value.

notification

SignalPayloadEmitted when
addednoneA notification is created, before display.
dismissedreasonThe notification ended ("expired", "user", "action", "closed").
invokedaction keyAn action button fired.
property::<any>new valueA property write changed the value.

drag (bus)

The drag global is a plain signal bus (drag.on, drag.off), not an object class: drag-and-drop is arbitrated by the compositor, and these are informational.

SignalPayloadEmitted when
startnoneA drag-and-drop operation began.
endnoneIt ended.

kiln.on (global bus)

Subscribe with kiln.on(name, fn).

SignalPayloadEmitted when
errorsignal name, error messageAny listener anywhere raised an error (also printed to stderr).
idle::startnoneThe armed idle timeout elapsed with no input.
idle::stopnoneInput resumed after idle.
idle::inhibitbooleanA visible idle inhibitor appeared (true) or went away (false).

See also