Config Reference

Input

Keyboard, pointer focus, gestures, physical device classes, touch, and exact-name overrides.

Defaults

Defaults shown here are the effective built-in defaults for the selected wiki version.

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:
    client-passthrough true
    pinch-to-zoom true
    compositor-scope "empty-field"
    modifier "mod"
  end
end

input

Top-level input behavior and nested device groups.

OptionTypeDefaultNotes
repeat-ratei3230Keyboard repeat frequency. 0 disables repeat.
repeat-delayi32 ms500Delay before repeat begins.
focus-modeclick | hoverclickHover follows the pointer without implicitly raising windows.
raise-on-clickbooltrueRaises a clicked window independently of focus mode.
keyboardnested blocksee input.keyboardXKB layout, model, variant, and options.
gesturesnested blocksee input.gesturesClient passthrough and compositor gesture routing.
touchpad | mouse | trackpoint | trackball | touchscreennested blockslibinputClass defaults applied to matching native devices.
devicesnested blocknoneExact, ASCII-case-insensitive full device-name overrides.

input.keyboard

XKB keyboard configuration.

OptionTypeDefaultNotes
layoutstringusXKB layout name.
modelstringXKB model; empty uses the XKB default.
variantstringXKB layout variant.
optionsstringComma-separated XKB options.

input.gestures

Hybrid client/compositor gesture routing and remappable discrete actions.

OptionTypeDefaultNotes
enabledbooltrueMaster switch for Halley camera gestures.
client-passthroughbooltrueForwards swipe, pinch, and hold sequences to clients when Halley does not consume them.
touch-passthroughbooltrueExposes raw touchscreen contacts through wl_touch.
pinch-to-zoombooltrueEnables compositor pinch zoom.
pinch-scopeempty-field | globalempty-fieldWhere pinch zoom is eligible.
compositor-scopeempty-field | globalempty-fieldWhere compositor pan and ordinary action gestures are eligible.
modifiermodifier | mod | offmodModifier that forces eligible gestures to Halley; exact left/right modifiers are accepted.
scroll-panoff | empty-fieldempty-fieldControls two-finger scroll panning.
pan-fingersu323Finger count for continuous swipe panning; 0 disables it.
pan-momentumbooltrueContinues camera motion after a flick.
pan-decay-ratef326.0Momentum decay rate.
flick-min-px-per-sf32200.0Minimum velocity treated as a flick.
swipe-threshold-pxf32120.0Distance required to commit a discrete swipe.
swipe-<direction>-<fingers>actionmap defaultsMaps a 1-32 finger swipe to a built-in compositor action.
apogee-swipe-<direction>-<fingers>actionmap defaultsIndependent action map used while Apogee is open.
hold-<fingers>actionnoneMaps a 1-32 finger hold to a built-in compositor action.

input.touchpad / mouse / trackpoint / trackball

Optional libinput defaults; omitted fields retain each device's own default.

OptionTypeDefaultNotes
enabledboollibinputEnables or disables this device class. Omit to retain the device default.
natural-scrollboollibinputControls natural scrolling.
accel-speedf32libinputAcceleration speed from -1.0 through 1.0.
accel-profilestringlibinputAccepted values: adaptive, flat.
scroll-methodstringlibinputAccepted values: none, two-finger, edge, on-button-down.
scroll-buttonu32libinputLinux input button code used by on-button scrolling.
scroll-button-lockboollibinputKeeps on-button scrolling active after the button is released.
left-handedboollibinputControls left-handed button mapping.
middle-emulationboollibinputControls middle-button emulation.
tapboollibinputTouchpad tap-to-click.
tap-button-mapstringlibinputleft-right-middle or left-middle-right.
dwtboollibinputTouchpad disable-while-typing.
click-methodstringlibinputclickfinger or button-areas.
dragboollibinputTouchpad tap-and-drag.
drag-lockboollibinputTouchpad drag lock.
disabled-on-external-mouseboollibinputDisables a touchpad while an external mouse is present.

input.touchscreen

Touch device enablement, output mapping, and calibration.

OptionTypeDefaultNotes
enabledboollibinputEnables or disables touchscreen events.
map-to-outputstringunsetExact connector to which contacts are mapped.
calibration-matrix[f32; 6]libinputRow-major 2x3 affine calibration matrix.

input.devices.<name>

Per-device values layered over the relevant class block.

OptionTypeDefaultNotes
<full device name>nested blocknoneExact full device name, compared without ASCII case.
<supported device option>class optioninheritedOverrides a supported setting for this device only.