gnoblin.configure
Set Gnoblin's compositor, input, session, and window-management options with a Lua table:
gnoblin.configure {shell = {minimize_duration = 150}}Defaults apply before your config loads. Files supplied by your desktop shell can change them. Map values merge, lists replace, and later values win.
Sizes use logical pixels. Window rules distinguish application windows (type = "window") from layer surfaces such as bars and docks (type = "layer").
Settings
Each entry below is a real top-level key accepted by gnoblin.configure.
gnoblin.configure.shellgnoblin.configure.keybindingsgnoblin.configure.window_managementgnoblin.configure.compositorgnoblin.configure.inputgnoblin.configure.input_sourcesgnoblin.configure.permissionsgnoblin.configure.layer_shellgnoblin.configure.protocolsgnoblin.configure.frame_renderersgnoblin.configure.cursorgnoblin.configure.shortcutsgnoblin.configure.autostartwindow_rulesreplaces the full ordered list; usegnoblin.window_ruleto append a rule.
Use gnoblin.snapshot() to inspect the config assembled so far.
Use Lua events to react to window and input activity at runtime. The event page lists payload fields and gives a Chromium scroll-speed example.
See recipes for complete examples and file loading for include order and reload behavior.
Type definition
Each top-level section is optional. See its page for the full set of nested fields and accepted values.
gnoblin.configure {
shell = {...}?,
keybindings = {...}?,
window_management = {...}?,
compositor = {...}?,
input = {...}?,
input_sources = {...}?,
permissions = {...}?,
layer_shell = {...}?,
protocols = {...}?,
frame_renderers = {...}?,
cursor = {...}?,
shortcuts = {...}?,
autostart = {...}?,
window_rules = {WindowRule, ...}?, -- replaces the ordered list
}WindowRule is the table shape accepted by gnoblin.window_rule.