Skip to content

gnoblin.configure ​

Set Gnoblin's compositor, input, session, and window-management options with a Lua table:

lua
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.

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.

lua
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.