# Docs

- Documentation

  - **Quick Start**
  - [Introduction](/docs): A native, local-first alternative to Logitech Options+, written in Rust. No account, no telemetry.
  - [Installation](/docs/installation): Install OpenLogi v0.8.15 on macOS, Linux, or Windows, then grant the access it needs.
  - [Supported devices](/docs/supported-devices): The Logitech devices and capability gates that OpenLogi recognises in v0.8.15.

  - **Guides**
  - [Connect a device](/docs/connect-device): Connect Logitech devices through a receiver, Bluetooth, or USB, then pair and manage them in OpenLogi.
  - [Settings and updates](/docs/settings): Configure OpenLogi application preferences, permissions, assets, network access, and updates in the Settings window.
  - [Features](/docs/features): An overview of OpenLogi's features, with a map from each device tab to its guide.
  - [Actions Ring](/docs/features/actions-ring): Open and configure an eight-slot launcher at the cursor, with complete per-application layouts and optional haptic feedback.
  - [Per-app profiles](/docs/features/profiles): Switch button actions and Actions Ring layouts by application, with focused or pointer-selected mouse profiles.
  - [Easy-Switch](/docs/features/easy-switch): Inspect, rename, and coordinate the paired computers on a compatible Logitech device’s Easy-Switch channels.
  - [On-screen notices](/docs/features/notifications): OpenLogi shows low-battery, lock-key, and keyboard-backlight notices in its own transient overlay.

  - **Mouse**
  - [Remap buttons](/docs/features/mouse/remap-buttons): Map supported mouse controls to actions, gestures, and Back or Forward wheel-hold behavior.
  - [DPI presets](/docs/features/mouse/dpi): Set pointer resolution and manage an ordered DPI preset list for a supported mouse.
  - [Report rate](/docs/features/mouse/report-rate): Select a mouse report rate that the current HID++ connection offers.
  - [Scrolling](/docs/features/mouse/scrolling): Configure app-wide wheel handling, per-device main-wheel controls, thumb-wheel presets, and hold-to-scroll sideways.
  - [SmartShift](/docs/features/mouse/smartshift): Switch a mouse wheel between free-spin and ratchet, and set its automatic release and resistance where supported.

  - **Other devices**
  - Keyboards
    - [Keyboards](/docs/features/keyboard): Bind Logitech keyboard controls over HID++, remap function keys through the OS hook, and manage keyboard-specific settings.
    - [Keyboard lighting](/docs/features/keyboard/lighting): Control static RGB lighting and keyboard-stored backlight settings on supported Logitech keyboards.
  - [Litra lights](/docs/features/lights): Control a Litra light's power, brightness, colour temperature, and camera-linked auto-power.
  - [Webcams](/docs/features/webcams): Preview a Logitech webcam and adjust its device-level UVC controls, profiles, and saved settings.
  - [Troubleshooting](/docs/troubleshooting): Fix connection, permission, configuration, and agent problems before you file an OpenLogi issue.

  - **Reference**
  - [Command line](/docs/cli): Use the OpenLogi command line to inspect hardware, run diagnostics, and automate supported settings through a local JSON API.
  - [Configuration](/docs/configurations): Reference for the schema 9 TOML configuration: file recovery, settings, devices, bindings, profiles, and Actions Ring layouts.
  - Devices
    - [MX Master 4](/docs/devices/mx-master-4): Every control OpenLogi drives on the MX Master 4, the HID++ feature behind each one, and the config.toml that binds them.

  - **Project**
  - [Roadmap](/docs/project/roadmap): A feature-by-feature status table showing what OpenLogi v0.8.15 supports and what is still in progress.
  - [Architecture](/docs/project/architecture): How OpenLogi's desktop, agent, overlay, CLI, shared crates, and hardware boundaries fit together.
  - [Contributing](/docs/project/contributing): How to get the source, build from it, and contribute testing or code to OpenLogi.
  - [Changelog](/docs/changelog): Every OpenLogi release, pulled from the project's GitHub Releases.
- HID++ Reference
  - [HID++ Reference](/hidpp): Logitech's vendor protocol for mice, keyboards, and receivers, as OpenLogi speaks it — message format, errors, feature discovery, and how to read the feature pages.
  - [Receivers](/hidpp/receivers): Logitech wireless receivers use HID++ 1.0 registers for detection, paired-device enumeration, notifications, and pairing.
  - [Model IDs](/hidpp/model-ids): Model IDs in Logitech's asset registry and the products they identify
  - Features
    - [Index](/hidpp/features): The catalogue of HID++ 2.0 features, each identified by a 16-bit ID, with per-feature support status in OpenLogi v0.8.15.
    - [0x0000 · root](/hidpp/features/x0000-root): Map a feature ID to its session index and use ping to determine the HID++ protocol version.
    - [0x0001 · featureSet](/hidpp/features/x0001-featureset): Enumerate a device feature table by reading its count and each 1-based feature entry.
    - [0x0003 · deviceInformation](/hidpp/features/x0003-device-information): Read firmware entities, unit and model identifiers, transport flags, and an optional serial number.
    - [0x0005 · deviceTypeAndName](/hidpp/features/x0005-device-type-and-name): Read a device marketing type and marketing name, including names returned in short or long chunks.
    - [0x0007 · deviceFriendlyName](/hidpp/features/x0007-device-friendly-name): Read or change a device-specific friendly name through 15-byte name chunks.
    - [0x00c2 · dfuControlSigned](/hidpp/features/x00c2-dfu-control-signed): G HUB exposes DFU status and start operations for this unimplemented signed DFU-control feature.
    - [0x00d0 · dfu](/hidpp/features/x00d0-dfu): G HUB contains DFU start, packet-send, restart, and report-handling operations for this unimplemented feature.
    - [0x1000 · batteryStatus](/hidpp/features/x1000-battery-status): Legacy battery state with a discharge reading, a next threshold, and a charging status for devices without unifiedBattery.
    - [0x1001 · batteryVoltage](/hidpp/features/x1001-battery-voltage): Battery state as a big-endian millivolt reading and charging flags for wireless G-series devices.
    - [0x1004 · unifiedBattery](/hidpp/features/x1004-unified-battery): Unified battery capability and status feature with a state-of-charge gate and live battery-change events.
    - [0x1010 · chargingControl](/hidpp/features/x1010-charging-control): G HUB reads and writes a charging-control mode through two functions that OpenLogi does not implement.
    - [0x1802 · deviceReset](/hidpp/features/x1802-device-reset): G HUB contains a forced-device-reset operation for this unimplemented device-management feature.
    - [0x1805 · oobState](/hidpp/features/x1805-oob-state): G HUB contains a setter named SetOobState for this unimplemented device-management feature.
    - [0x1814 · changeHost](/hidpp/features/x1814-change-host): Select the active Easy-Switch host channel and manage one persistent cookie byte for each host slot.
    - [0x1815 · hostsInfo](/hidpp/features/x1815-hosts-info): Inspect Easy-Switch host slots, names, and operating systems, and rename a paired host when the device permits it.
    - [0x1981 · backlight](/hidpp/features/x1981-backlight1): First-generation keyboard backlight control that OpenLogi names but does not implement.
    - [0x1982 · backlight](/hidpp/features/x1982-backlight): Keyboard backlight configuration, live status, and change events for OpenLogi-supported white-backlight keyboards.
    - [0x1990 · illumination](/hidpp/features/x1990-illumination): Device illumination control for power, brightness, colour temperature, selectable levels, and a version-1 effective brightness limit.
    - [0x19b0 · hapticFeedback](/hidpp/features/x19b0-haptic-feedback): Device-wide haptic configuration, capability-gated waveform playback, and readiness checks for the MX Master 4 Actions Ring.
    - [0x1a00 · presenterControl](/hidpp/features/x1a00-presenter-control): G HUB exposes presenter information, settings, and vibration operations for this unimplemented feature.
    - [0x1b00 · reprogControls](/hidpp/features/x1b00-reprog-controls): Early-generation control enumeration and diversion for programmable mouse and keyboard controls.
    - [0x1B04 · specialKeysMSEButtons](/hidpp/features/x1b04-special-keys-mse-buttons): Enumerate programmable controls, change their reporting state, and receive diverted button, pointer, analytics, and raw-wheel events.
    - [0x1C00 · persistentRemappableAction](/hidpp/features/x1c00-persistent-remappable-action): Read or write non-volatile, per-control and per-host HID action assignments.
    - [0x1D4B · wirelessDeviceStatus](/hidpp/features/x1d4b-wireless-device-status): Receive a device reconnection broadcast and let OpenLogi reconfigure captured controls and volatile settings.
    - [0x1F20 · adcMeasurement](/hidpp/features/x1f20-adc-measurement): Battery voltage and link state for wireless G-series headsets, including the G733.
    - [0x2001 · swapLeftRightButton](/hidpp/features/x2001-swap-left-right-button): An unimplemented feature ID whose registry name is SwapLeftRightButton; its protocol interface is not established.
    - [0x2100 · verticalScrolling](/hidpp/features/x2100-vertical-scrolling): Read the roller type, ratchets per turn, and preferred scroll amount reported by a device's vertical wheel.
    - [0x2110 · smartShift](/hidpp/features/x2110-smartshift): Read or update a legacy SmartShift wheel’s mode and automatic-release threshold.
    - [0x2111 · smartShiftEnhanced](/hidpp/features/x2111-smartshift-enhanced): Read or update a SmartShift Enhanced wheel’s mode, automatic-release threshold, and tunable ratchet torque.
    - [0x2120 · highResolutionScrolling](/hidpp/features/x2120-high-resolution-scrolling): A known HID++ feature ID that OpenLogi v0.8.15 recognizes by name but does not implement.
    - [0x2121 · hiResWheel](/hidpp/features/x2121-hires-wheel): Read and preserve high-resolution wheel state, receive diverted movement and ratchet events, and support OpenLogi's opt-in smooth wheel.
    - [0x2150 · thumbwheel](/hidpp/features/x2150-thumbwheel): Query and divert a horizontal thumb wheel, then receive its rotation, touch, proximity, and tap status.
    - [0x2200 · mousePointer](/hidpp/features/x2200-mouse-pointer): Read a mouse sensor's typical resolution and its pointer-tuning hints.
    - [0x2201 · adjustableDpi](/hidpp/features/x2201-adjustable-dpi): Per-sensor pointer resolution — enumerate supported DPI values and read or write the current DPI.
    - [0x2202 · extendedAdjustableDpi](/hidpp/features/x2202-extended-adjustable-dpi): Extended per-sensor DPI control — X/Y resolution, lift-off distance, DPI-status LED control, and calibration.
    - [0x2205 · PointerMotionScaling](/hidpp/features/x2205-pointer-motion-scaling): Read or write a device-specific pointer-motion multiplier in unsigned 8.8 fixed-point format.
    - [0x40a0 · fnInversion](/hidpp/features/x40a0-fn-inversion): Legacy global Fn-key inversion — read or write the live state without a default-state or host-slot field.
    - [0x40A2 · fnInversionWithDefaultState](/hidpp/features/x40a2-fn-inversion): Single-host Fn-key inversion — read or write the global state and its reported default.
    - [0x40A3 · fnInversionMultiHost](/hidpp/features/x40a3-fn-inversion-multi-host): Per-host Fn-key inversion — read or write a selected Easy-Switch host slot and its reported default.
    - [0x4220 · LockKeyState](/hidpp/features/x4220-lock-key-state): Read the Num Lock, Caps Lock, and Scroll Lock state, or decode an unsolicited lock-key report.
    - [0x4301 · solarKeyboardDashboard](/hidpp/features/x4301-solar-keyboard-dashboard): Schedule solar-keyboard light reports, control the CheckLight LED, and receive battery and ambient-light events.
    - [0x4520 · keyboardLayout](/hidpp/features/x4520-keyboard-layout): An identified keyboard-layout feature with no typed OpenLogi wrapper or verified public wire layout.
    - [0x4521 · disableKeys](/hidpp/features/x4521-disable-keys): Read a keyboard's fixed disabled-key mask and replace the complete mask for supported lock and system keys.
    - [0x4522 · disableKeysByUsage](/hidpp/features/x4522-disable-keys-by-usage): Disable or re-enable keyboard keys by 8-bit HID usage, using cumulative long-report requests.
    - [0x4530 · dualPlatform](/hidpp/features/x4530-dual-platform): Read or select one of two persistent keyboard OS families, and receive hardware platform-change events.
    - [0x4531 · multiPlatform](/hidpp/features/x4531-multi-platform): Associate each Easy-Switch host slot with an OS platform, then keep the current slot on the host OS layout.
    - [0x4600 · crown](/hidpp/features/x4600-crown): Query and configure a rotary crown, then receive its diverted rotation, sensor, gesture, and button updates.
    - [0x6020 · tapEnable](/hidpp/features/x6020-tap-enable): An unimplemented feature ID whose registry name is TapEnable; its protocol interface is not established.
    - [0x6100 · touchpadRawXY](/hidpp/features/x6100-touchpad-raw-xy): Query an integrated touchpad and receive raw multi-touch frames after enabling raw reporting.
    - [0x6110 · touchMouseRawTouchPoints](/hidpp/features/x6110-touch-mouse-raw): Query a touch mouse and select a raw mode to receive four raw touch-point slots per event.
    - [0x6500 · gestures](/hidpp/features/x6500-gestures1): First-generation HID++ gesture feature identifier; OpenLogi v0.8.15 recognises the ID but has no implementation.
    - [0x6501 · gestures2](/hidpp/features/x6501-gestures2): Discover legacy horizontal thumb-wheel gesture 46 and read or change its diversion bit.
    - [0x8010 · gamingGKeys](/hidpp/features/x8010-gaming-g-keys): Query a gaming keyboard’s G-key count and physical layout, and transfer software control of its complete G-key row.
    - [0x8020 · gamingMKeys](/hidpp/features/x8020-gaming-m-keys): Query a gaming keyboard’s M-key count, control its M-key indicator, and observe the M-key button bitmap.
    - [0x8030 · macroRecord](/hidpp/features/x8030-macro-record): Control the macro-record indicator on a compatible gaming keyboard and observe its button event.
    - [0x8040 · brightnessControl](/hidpp/features/x8040-brightness-control): Display or backlight brightness range, value, and independent illumination control for feature version 1.
    - [0x8060 · adjustableReportRate](/hidpp/features/x8060-report-rate): Enumerate 1 ms to 8 ms report intervals, then read or write the active legacy report interval.
    - [0x8061 · extendedAdjustableReportRate](/hidpp/features/x8061-extended-report-rate): Query report-rate capabilities up to 8000 Hz by connection type, then read or set the active extended rate.
    - [0x8070 · colorLedEffects](/hidpp/features/x8070-color-led-effects): Per-zone RGB effect engine that enumerates LED zones and effects, applies an effect with selectable persistence, and can synchronize effect timing.
    - [0x8071 · rgbEffects](/hidpp/features/x8071-rgb-effects): Per-cluster RGB effect engine that controls effects, non-volatile configuration, software ownership, power modes, and RGB notifications.
    - [0x8080 · perKeyLighting](/hidpp/features/x8080-per-key-lighting): Legacy per-key RGB lighting control that streams HID usage and colour entries in very-long reports, then commits the staged frame.
    - [0x8081 · perKeyLighting](/hidpp/features/x8081-per-key-lighting): Per-key RGB lighting control that stages zone updates through seven HID++ functions and commits a frame with optional non-volatile persistence.
    - [0x8090 · modeStatus](/hidpp/features/x8090-mode-status): Read and selectively update a device’s performance-mode status and its hardware or software switching capabilities.
    - [0x8100 · onboardProfiles](/hidpp/features/x8100-onboard-profiles): Manage onboard versus host mode, active profiles, profile storage, and profile-resolution state on compatible gaming devices.
    - [0x8110 · mouseButtonFilter](/hidpp/features/x8110-mouse-button-filter): Query, start, stop, and configure the mouse-button spy interface used for host-side button control.
    - [0x8111 · latencyMonitoring](/hidpp/features/x8111-latency-monitoring): Query latency-monitoring capabilities and enable its notifications on compatible gaming devices.
    - [0x8123 · forceFeedback](/hidpp/features/x8123-force-feedback): Configure force-feedback effects, gain, aperture, and playback state on compatible gaming-wheel devices.
    - [0x8300 · sidetone](/hidpp/features/x8300-sidetone): Headset sidetone level and per-channel mute control in the HID++ 0x8300 protocol wrapper.
    - [0x8310 · equalizer](/hidpp/features/x8310-equalizer): Per-band headset equalizer and microphone-noise-reduction control in the HID++ 0x8310 protocol wrapper.