Skip to main content

Module binding

Module binding 

Source
Expand description

Logical mouse button identifiers and the action vocabulary each one can bind to. Lives in openlogi-core because the config schema serializes these directly — the GUI re-exports them.

When Action gains new variants, keep the existing variant names stable: the TOML config keys/values use the enum variant identifiers verbatim, so renames are migration events.

Structs§

KeyCombo
A modifier + virtual-key keystroke captured by the P1.3 recorder UI or hand-authored in config.toml.

Enums§

Action
What pressing a ButtonId should do.
ButtonId
One of the user-rebindable hotspots on a Logi mouse. The order matches the physical layout from front to side; ButtonId::ALL is consumed by the default-binding generator and the popover trigger list.
Category
Grouping for popover section headers.
GestureDirection
One of the five sub-bindings on the gesture button: hold + swipe up/down/ left/right or a plain click without movement. Logi ships these as independent assignments (SLOT_NAME_GESTURE_*_BUTTON in the device_gesture_buttons_image metadata block) — OpenLogi mirrors the same shape.

Constants§

GESTURE_SWIPE_DEADZONE
Maximum cross-axis travel allowed at the threshold, so only a reasonably straight swipe commits. Grows with the dominant axis (max(deadzone, 35%)).
GESTURE_SWIPE_THRESHOLD
Minimum dominant-axis travel (raw-XY units) before a held gesture commits to a direction. Tuned to match Logitech Options+’s responsiveness.

Functions§

default_binding
Sensible defaults for a fresh device so the panel isn’t empty on first run.
default_gesture_binding
Per-direction defaults for the gesture button. These are captured live over HID++ 0x1b04 (raw-XY diversion) and dispatched like any other binding; the defaults give the picker something sensible to show on first run.
detect_swipe
Classify the running raw-XY travel of a held gesture button into a directional swipe, the instant it commits — or None while it’s still too short or too diagonal.
post_horizontal_scroll
Synthesise a horizontal scroll of delta wheel lines at the current focus.