Skip to content

gnoblin.configure.input ​

Input settings go in gnoblin.configure {input = {...}} and apply on config reload. Groups and fields are optional. Gnoblin leaves anything you omit at its current GNOME/Mutter setting, so start with a small override and add only what you need.

For the common pointer and keyboard settings, see:

Tablets ​

Tablet overrides use a four-digit hexadecimal vendor and product ID key, such as "1234:5678". Unlisted tablets keep their current system settings.

Find the device path with libinput list-devices, then inspect its IDs with udevadm info --query=property --name=/dev/input/eventN. The libinput tools guide and udevadm manual explain the commands and their output.

FieldAccepted valuesMeaning
mapping"absolute" or "relative"Absolute maps pen position to a fixed tablet area; relative moves the pointer like a mouse.
left_handedBooleanReverses the tablet's button orientation.
keep_aspectBooleanPreserves proportions when tablet and display have different shapes.

Enable keep_aspect when you want a drawn circle to stay circular across different display and tablet shapes.

lua
gnoblin.configure {
    input = {
        tablets = {
            ["1234:5678"] = {
                mapping = "absolute",
                keep_aspect = true,
            },
        },
    },
}

Styluses ​

Stylus overrides use either a hexadecimal device serial or a vendor and product ID prefixed by default-, such as "default-1234:5678". Use the device event path with udevadm info --query=property to inspect available serial properties. See the udevadm reference and libinput tools.

Set an action to "default" to leave the button unchanged. To assign a shortcut, use "keybinding" and provide the matching keybinding field.

lua
gnoblin.configure {
    input = {
        styluses = {
            ["default-1234:5678"] = {
                secondary_button_action = "keybinding",
                secondary_button_keybinding = "<Super>r",
            },
        },
    },
}
ActionEffect
"default"Keep the system's button behavior.
"middle", "right"Send a middle or right click.
"back", "forward"Send a navigation button click.
"switch-monitor"Switch the stylus to another monitor.
"keybinding"Run the matching configured keybinding.

The primary button uses button_action and button_keybinding. Secondary and tertiary buttons use the corresponding secondary_ and tertiary_ fields. An empty keybinding has no effect unless its action is "keybinding".

Orientation lock ​

orientation_lockBehavior
trueLock the current screen orientation.
falseAllow automatic rotation.
OmittedFollow GNOME's setting.

Use this override when the system rotation preference should not change screen orientation for this config.

lua
gnoblin.configure {
    input = {
        orientation_lock = true,
    },
}

The keyboard numlock_state override is kept in memory while Gnoblin's config is active; removing it restores the system setting.

Type definition ​

This is schema pseudocode in Lua table form. ? marks an optional field. Mouse, touchpad, and keyboard fields are listed on their linked pages.

lua
gnoblin.configure {
    input = {
        mouse = {...}?,
        touchpad = {...}?,
        keyboard = {...}?,
        orientation_lock = boolean?,
        tablets = {
            ["vvvv:pppp"] = {
                mapping = "absolute" | "relative"?,
                left_handed = boolean?,
                keep_aspect = boolean?,
            }, ...,
        }?,
        styluses = {
            ["serial-or-default-vvvv:pppp"] = {
                button_action = StylusAction?,
                button_keybinding = string?,
                secondary_button_action = StylusAction?,
                secondary_button_keybinding = string?,
                tertiary_button_action = StylusAction?,
                tertiary_button_keybinding = string?,
            }, ...,
        }?,
    },
}

-- StylusAction = "default" | "middle" | "right" | "back" | "forward"
--             | "switch-monitor" | "keybinding"