Gnoblin

gnoblin.configure.xwayland

Configure Xwayland behavior in gnoblin.configure:

On this page
Lua
gnoblin.configure {
    xwayland = {
        allow_grabs = false,
        grab_access_rules = {"legacy-app", "!blocked-app"},
        disable_extensions = {},
        allow_byte_swapped_clients = false,
        scaling_factor = 0,
    },
}
Setting Accepted value Default
allow_grabs Boolean. Allows supported X11 clients to take keyboard grabs on override-redirect windows. false
grab_access_rules Array of resource names or resource classes. * and ? are wildcards; prefix a value with ! to deny it. Deny rules take precedence. {}
disable_extensions Array containing "security", "xtest", both, or neither. {}
allow_byte_swapped_clients Boolean. Allows X11 clients with a different byte order to connect. false
scaling_factor 0 for automatic scaling, or a finite number from 0.5 through 2147483520. Mutter rounds positive values to the nearest integer. 0

Mutter always adds its compiled system grab-access rules. An empty grab_access_rules list therefore removes only user-configured rules; it does not remove those built-in rules. Grab rules only permit a grab when allow_grabs is true.

"security" disables Xwayland's SECURITY extension. "xtest" disables its XTEST extension, which lets clients synthesize input events. Mutter ignores a request to disable an extension when Xwayland was built without that extension.

Changing disable_extensions or allow_byte_swapped_clients requires restarting Xwayland; changes to those settings restart the Xwayland child after a successful config reload. This disconnects running X11 apps; they may need to be started again. The other settings apply during the session without restarting Xwayland.

Gnoblin exposes the effective scale to X11 clients through XSettings and the Xft.dpi resource. A config reload updates these values live. If another XSettings manager already owns the XWayland display, Gnoblin leaves it in control.

The upper scale limit keeps Mutter's conversion to a signed integer in range: Mutter stores the value as a float, rounds it, and converts it to int for Xwayland coordinate scaling. Values below 0.5 would round to zero, so they are rejected. This is a representational limit, not a recommended display scale.

Type definition

Lua
gnoblin.configure {
    xwayland = {
        allow_grabs = boolean?,
        grab_access_rules = {string, ...}?,
        disable_extensions = {"security" | "xtest", ...}?,
        allow_byte_swapped_clients = boolean?,
        scaling_factor = number?, -- 0 or 0.5–2147483520
    },
}
Esc

Try