Input
Put input policy in ~/.config/aqueous/input.toml. The sidecar overlays matching
wm.toml input and gesture values, and changes apply to connected devices and
devices added later.
Keyboard and focus
Section titled “Keyboard and focus”[input]focus_follows_mouse = falsefocus_new_windows = falseraise_on_focus = trueraise_on_focus_delay_ms = 0num_lock_state = true
xkb_layout = "us,de"xkb_variant = ""xkb_options = "caps:escape,grp:alt_shift_toggle"repeat_rate = 40repeat_delay = 400focus_follows_mousefocuses the pointer target immediately, except where a scrolling layout configures its own dwell delay.focus_new_windowsfocuses a newly admitted focusable window after its output/workspace rule is resolved. Inactive-workspace and non-focusable X11 arrivals do not steal focus.raise_on_focuspersistently raises a stacking/freeform window after the optional delay.num_lock_statesets the initial XKB Num Lock state.repeat_rateis characters per second; zero disables repeat.repeat_delayis milliseconds before repeat begins.
Empty or omitted XKB values use xkbcommon defaults. Multiple layouts and variants use xkbcommon’s comma-separated grammar.
Physical keyboard events are queued through the seat. Internal bindings get the first opportunity to consume a press; otherwise an input-method grab, legacy binding protocol, or focused client receives it. A consumed press owns its corresponding release even if modifiers change.
Mouse and touchpad
Section titled “Mouse and touchpad”Device sections are overrides. Omit a field to keep libinput’s device default.
[input.mouse]accel_profile = "flat"accel_speed = 0.0natural_scroll = falseleft_handed = falsemiddle_emulation = falsedwt = false
[input.touchpad]accel_profile = "adaptive"accel_speed = 0.0natural_scroll = truetap = truedwt = trueleft_handed = falsemiddle_emulation = falseclick_method = "clickfinger"scroll_method = "two-finger"Accepted values are:
accel_profile:flatoradaptive.accel_speed:-1.0through1.0.click_method:clickfingerorbutton-areas.scroll_method:two-finger,edge, orno-scroll.- Boolean switches:
natural_scroll,tap,dwt,left_handed, andmiddle_emulation.
Tap, click, and scroll-method configuration is applied only to devices detected as touchpads.
Gestures
Section titled “Gestures”Gesture bindings use <kind>_<fingers>_<direction> and the same verbs as
custom keyboard bindings:
[gestures]swipe_3_left = "builtin:focus_workspace_down"swipe_3_right = "builtin:focus_workspace_up"pinch_4_in = "builtin:toggle_start_menu"Swipes accept left, right, up, and down; pinches accept in and out.
Finger counts are positive integers. The value may be builtin:<action>,
set_layout:<id-or-slot>, or spawn:<command>. A matching gesture is consumed
by Aqueous; unmatched gestures continue through the normal client path.
Pointer interactions and constraints
Section titled “Pointer interactions and constraints”Normal clicks use scene hit-testing. The configured primary modifier intercepts window-management drags before client delivery. Client drag-and-drop temporarily suppresses focus-follows-pointer so wlroots can own its pointer and keyboard grabs without focus changes underneath it.
The untrap_pointer binding releases an active relative-pointer constraint
while held and restores it on release. This is useful for games without
permanently disabling pointer locking.
Scrolling-layout wheel navigation uses the primary modifier to move by column and the primary modifier plus Alt to move within a column. Natural-scroll settings reverse those directions consistently.
Tablets and input methods
Section titled “Tablets and input methods”At the protocol layer Aqueous supports tablet v2, text-input v3, input-method v2 and input popups, relative pointers, pointer gestures, virtual keyboards, and virtual pointers. These standard interfaces allow drawing tablets, on- screen keyboards, IMEs, accessibility tools, and test/automation clients to participate in normal seat focus.
Trackpoints and legacy pointer values
Section titled “Trackpoints and legacy pointer values”[input.trackpoint] is accepted and retained, but the current libinput
application path classifies every non-touchpad pointer as a mouse. Put effective
trackpoint policy under [input.mouse] for now.
Legacy global acceleration remains available:
[input]pointer_acceleration = falsepointer_acceleration_factor = 0.0Per-device profile and speed take precedence. Prefer the device sections in a new configuration.
