Skip to content

gnoblin.configure.input.keyboard ​

Use this group for key repeat and XKB options. This example turns Caps Lock into Escape and selects that as the active XKB option:

lua
gnoblin.configure {
    input = {
        keyboard = {
            xkb_options = {"caps:escape"},
        },
    },
}
FieldValuesDefaultEffect
repeatBooleanCurrent GNOME/Mutter valueEnables or disables key repeat.
delayInteger, 1–10000 msCurrent GNOME/Mutter valueTime a key must be held before repeating starts.
repeat_intervalInteger, 1–10000 msCurrent GNOME/Mutter valueTime between repeated key presses.
remember_numlock_stateBooleanCurrent GNOME/Mutter valueRemembers the Num Lock LED state between sessions.
numlock_stateBooleanCurrent GNOME/Mutter valueTemporarily sets the Num Lock LED state while this config is active.
xkb_optionsArray of XKB option stringsCurrent option listReplaces the active option list.

Changes apply on configuration reload. Set repeat = false to turn repeat off; the delay fields then have no effect.

xkb_options replaces the active option list, so include every option you want to keep. Common values include:

  • "caps:escape" — make Caps Lock an additional Escape key.
  • "compose:ralt" — use Right Alt as the Compose key.
  • "grp:alt_shift_toggle" — switch layouts with Alt+Shift.

You can combine options in the array. The upstream XKB configuration guide explains how they work; /usr/share/X11/xkb/rules/evdev.lst lists the options available on your system.

remember_numlock_state controls whether GNOME remembers the Num Lock LED state between sessions. numlock_state temporarily overrides that state while Gnoblin's config is active. Omitted fields keep their current GNOME/Mutter values.

Type definition ​

This is schema pseudocode in Lua table form. ? marks an optional field.

lua
gnoblin.configure {
    input = {
        keyboard = {
            ["repeat"] = boolean?,
            delay = integer?, -- 1–10000 ms
            repeat_interval = integer?, -- 1–10000 ms
            remember_numlock_state = boolean?,
            numlock_state = boolean?,
            xkb_options = {string, ...} | {}?,
        },
    },
}