Aqueous input.toml Reference
For drawing tablets, see the tablet setup guidefor output mapping, aqueousctl configuration generation, and troubleshooting.
# =============================================================================# Aqueous input configuration reference# =============================================================================## Discovery order (first path wins):# 1. $AQUEOUS_INPUT (~ is expanded)# 2. [input].path from wm.toml# 3. $XDG_CONFIG_HOME/aqueous/input.toml# 4. ~/.config/aqueous/input.toml# 5. /etc/xdg/aqueous/input.toml## This file overlays [input] settings from wm.toml and is hot-reloaded. Device# options are nullable overrides: omit a key to retain the libinput default.# The legacy pointer scalar settings below are best defined in only one file:# their default values cannot clear non-default values inherited from wm.toml.# Keyboard repeat and Num Lock track explicit presence and can override any wm.toml# value, including by restoring the documented defaults.
# Gesture bindings may live here or in wm.toml. When the same gesture appears# in both files, the binding in this input sidecar takes precedence.[gestures]swipe_3_left = "builtin:focus_workspace_down"swipe_3_right = "builtin:focus_workspace_up"pinch_4_in = "builtin:toggle_start_menu"
[input]# Focus a window when the pointer enters it.focus_follows_mouse = false# Move into newly focused windows, including keyboard and wheel bindings.# Hover and click focus do not move the pointer.# Output navigation still moves the pointer when this is disabled.mouse_follows_focus = falsefocus_new_windows = false# Focus and raising are independent. A nonzero delay is especially useful with# focus_follows_mouse, where briefly crossing a window should not restack it.raise_on_focus = trueraise_on_focus_delay_ms = 0
# Legacy global mouse acceleration controls. Per-device accel_profile and# accel_speed below take precedence. pointer_acceleration=true selects the# adaptive profile for non-touchpad pointer devices; false selects flat.pointer_acceleration = falsepointer_acceleration_factor = 0.0 # libinput speed, -1.0 through 1.0
# XKB rule names. Empty/omitted values use xkbcommon/XKB_DEFAULT_* defaults.xkb_layout = "us" # comma-separated layouts are accepted, e.g. "us,de"xkb_variant = "" # e.g. "dvorak"xkb_options = "" # e.g. "caps:escape,grp:alt_shift_toggle"
# Keyboard repeat. A rate of 0 disables repeat; delay is milliseconds before# repeating begins. Changes apply to connected and subsequently added keyboards.repeat_rate = 40repeat_delay = 400
# Initial Num Lock state for physical keyboards (default: false). An explicit# true or false overrides wm.toml. Changes also apply to connected keyboards# on reload; leaving the configured value unchanged preserves manual toggles.# num_lock_state = true
# Optional when selecting this sidecar from wm.toml:# path = "~/.config/aqueous/input.toml"
# -----------------------------------------------------------------------------# Mouse / other non-touchpad pointer devices# -----------------------------------------------------------------------------[input.mouse]accel_profile = "flat" # flat | adaptiveaccel_speed = 0.0 # -1.0 through 1.0natural_scroll = falseleft_handed = falsemiddle_emulation = falsedwt = false # disable-while-typing, when supported by the device
# tap, click_method, and scroll_method are accepted by the parser in every# device section but are only applied to devices detected as touchpads.# tap = false# click_method = "button-areas" # clickfinger | button-areas# scroll_method = "no-scroll" # two-finger | edge | no-scroll
# -----------------------------------------------------------------------------# Touchpads# -----------------------------------------------------------------------------[input.touchpad]accel_profile = "adaptive" # flat | adaptiveaccel_speed = 0.0 # -1.0 through 1.0natural_scroll = truetap = truedwt = trueleft_handed = falsemiddle_emulation = falseclick_method = "clickfinger" # clickfinger | button-areasscroll_method = "two-finger" # two-finger | edge | no-scroll
# -----------------------------------------------------------------------------# Trackpoints# -----------------------------------------------------------------------------# These keys are accepted and retained by the configuration parser. The current# libinput application path classifies non-touchpad pointer devices as mice, so# [input.mouse] is presently the effective policy for trackpoints as well.[input.trackpoint]accel_profile = "adaptive"accel_speed = 0.0natural_scroll = falsetap = falsedwt = falseleft_handed = falsemiddle_emulation = falseclick_method = "button-areas"scroll_method = "no-scroll"
# -----------------------------------------------------------------------------# Tablets: generate exact identities using aqueousctl in the running session.# -----------------------------------------------------------------------------# aqueousctl input devices --json# aqueousctl input generate-config --device DEVICE_ID --id kamvas-pen --output OUTPUT# Add --write ~/.config/aqueous/input.toml to update this file atomically.# For a Kamvas, select its display. For an Intuos, select your drawing monitor.# Replace placeholders before uncommenting; device names match exactly.# [[input.tablet]]# id = "kamvas-pen"# match_name = "<reported pen device name>"# output = "<display connector>"## A second independently mapped tablet:# [[input.tablet]]# id = "intuos-pen"# match_name = "<reported Intuos pen device name>"# output = "<drawing monitor connector>"## Optional AND selectors: match_vendor = 0x056a, match_product = 0x033b,# match_path = "<udev ID_PATH>". Require name, path, or BOTH vendor/product IDs.# output_edid = "sha256:<64 hex digits>" may replace output (never use both).# For full-desktop mapping omit output/output_edid and set mapping = "desktop".# To disable pen delivery omit mapping/output/output_edid and set enabled = false.# Last matching rule wins. Sidecar rules completely replace wm.toml rules by id.# Configured missing/disabled/ambiguous outputs suspend pen input until restored.# Valid remaps take effect after proximity-out. Invalid reloads retain prior rules.# See docs/tablet-configuration.md for the full contract and diagnostics.