Config Reference

Input

Keyboard repeat behavior, focus policy, keyboard layout, gestures, and libinput device settings.

Defaults

Defaults shown here are the effective builtin defaults from RuntimeTuning::builtin_defaults().

Default Config Shape

Use this as the section shape when editing halley.rune.

Input config
input:
  repeat-rate 30
  repeat-delay 500
  focus-mode "click"
  raise-on-click true
  keyboard:
    layout "us"
    variant ""
    options ""
    model ""
  end

  gestures:
    enabled true
    client-passthrough true
    touch-passthrough true
    pinch-to-zoom true
    pinch-scope "empty-field"
    compositor-scope "global"
    modifier "$mod"
    scroll-pan "empty-field"
    swipe-threshold-px 120
    pan-fingers 3
    pan-momentum true
    pan-decay-rate 6
    flick-min-px-per-s 200
    swipe-up-4 "apogee-open"
    apogee-swipe-down-4 "apogee-close"
  end

  touchpad:
    tap true
    natural-scroll true
    dwt true
    accel-speed 0.3
    accel-profile "adaptive"
    scroll-method "two-finger"
    click-method "clickfinger"
    tap-button-map "left-right-middle"
    middle-emulation false
    left-handed false
    disabled-on-external-mouse false
    enabled true
  end

  mouse:
    natural-scroll false
    accel-speed 0.0
    accel-profile "flat"
    middle-emulation false
    left-handed false
    enabled true
  end

  devices:
    "Logitech MX Master 3":
      accel-speed 0.6
      natural-scroll true
    end
  end
end

input

Keyboard repeat behavior and focus policy.

OptionTypeDefaultNotes
repeat-ratei3230Keyboard repeat rate.
repeat-delayi32500Delay before keyboard repeat starts, in milliseconds.
focus-modestringclickAccepted values: click, hover. hover focuses windows under the pointer and, when the pointer is on an otherwise empty monitor, default new windows spawn on that monitor.
raise-on-clickbooltrueRaises clicked windows independently from focus mode. Hover focus does not imply raise.
keyboardnested blocksee input.keyboardKeyboard layout, model, variant, and option strings.
gesturesnested blocksee input.gesturesTouchpad gesture, touchscreen passthrough, pinch, swipe, and hold behavior.
touchpadnested blocksee input.touchpadClass-wide libinput touchpad settings. Omitted keys keep libinput defaults.
mousenested blocksee input.mouseClass-wide libinput mouse/generic pointer settings. Omitted keys keep libinput defaults.
devicesnested blocknonePer-device libinput overrides matched against libinput device names.

keyboard

Keyboard layout, variant, and XKB options.

OptionTypeDefaultNotes
layoutstringusXKB keyboard layout.
modelstringXKB keyboard model.
variantstringXKB keyboard variant.
optionsstringXKB keyboard options such as compose:ralt.

gestures

Touchpad gesture, touch passthrough, pinch, swipe, and hold behavior.

OptionTypeDefaultNotes
enabledbooltrueEnables compositor gesture handling.
client-passthroughbooltrueForwards touchpad gestures to clients through pointer gesture protocols when no compositor binding consumes them.
touch-passthroughbooltrueForwards touchscreen contacts to clients through wl_touch when appropriate.
pinch-to-zoombooltrueMaps compositor pinch gestures to field zoom.
pinch-scopestringempty-fieldWhere compositor pinch zoom applies. Example value: empty-field.
compositor-scopestringglobalWhere compositor gesture bindings are eligible. Example values include global and empty-field.
modifiermodifier token$modModifier token used by modifier-scoped gestures.
scroll-panstringempty-fieldWhere two-finger scroll pans the field.
swipe-threshold-pxf32120Swipe distance threshold before discrete swipe bindings commit.
pan-fingersu323Finger count used for continuous field panning.
pan-momentumbooltrueKeeps gesture panning moving briefly after a flick.
pan-decay-ratef326Momentum decay rate for gesture panning.
flick-min-px-per-sf32200Minimum velocity treated as a flick.
swipe-<dir>-<fingers>action stringunsetBinds a swipe direction and finger count to a compositor action, such as swipe-up-4 "apogee-open".
apogee-swipe-<dir>-<fingers>action stringunsetBinds an Apogee-aware swipe, such as apogee-swipe-down-4 "apogee-close".
hold-<fingers>action stringunsetBinds a libinput hold gesture to an existing compositor gesture action.

touchpad

Class-wide libinput touchpad settings applied on device hotplug and config reload.

OptionTypeDefaultNotes
tapboollibinputTap-to-click setting. Omit to keep libinput's own default.
natural-scrollboollibinputNatural scrolling setting.
dwtboollibinputDisable-while-typing setting.
accel-speedf32libinputPointer acceleration speed from -1.0 through 1.0.
accel-profilestringlibinputAccepted values: adaptive, flat.
scroll-methodstringlibinputAccepted values: two-finger, edge, on-button-down, no-scroll.
click-methodstringlibinputAccepted values: clickfinger, button-areas.
tap-button-mapstringlibinputTap button mapping, such as left-right-middle.
middle-emulationboollibinputMiddle-button emulation setting.
left-handedboollibinputLeft-handed button mapping setting.
disabled-on-external-mouseboollibinputDisables the touchpad when an external mouse is present.
enabledboollibinputSend-events on/off switch for the device class.

mouse

Class-wide libinput mouse and generic pointer settings.

OptionTypeDefaultNotes
natural-scrollboollibinputNatural scrolling setting.
accel-speedf32libinputPointer acceleration speed from -1.0 through 1.0.
accel-profilestringlibinputAccepted values: adaptive, flat.
middle-emulationboollibinputMiddle-button emulation setting.
left-handedboollibinputLeft-handed button mapping setting.
enabledboollibinputSend-events on/off switch for the device class.

devices.<name>

Per-device libinput overrides layered on top of touchpad or mouse defaults.

OptionTypeDefaultNotes
<device name>nested blocknoneMatches the name from libinput list-devices by exact, case-insensitive, or substring match.
<libinput option>same as touchpad/mouseinheritedAny supported touchpad or mouse option can be overridden field by field.