openlogi-hidpp 0.6.20

OpenLogi's vendored fork of the `hidpp` crate (Logitech HID++ protocol).
Documentation

openlogi-hidpp

OpenLogi's vendored fork of the hidpp crate — an implementation of the Logitech HID++ protocol.

  • Upstream: https://github.com/lus/logy (crate hidpp)
  • Forked at: commit 135c5600807845c269b5d5bfa1f33032281fbd86 (upstream v0.3.0, 2025-12-26)
  • License: 0BSD © Lukas Schulte Pelkum (see LICENSE)

The library target is named hidpp, so dependents use hidpp::… unchanged. OpenLogi-specific changes live here; the source is otherwise kept close to upstream to ease future syncs.

The crate is versioned with the OpenLogi workspace (unified versioning), not upstream's 0.3.0 — that number is provenance, recorded above.

Feature coverage

Beyond upstream, this fork adds typed wrappers for a broad set of HID++ 2.0 features. Each is registered in feature::registry and obtained via device.get_feature::<…>(); implemented areas include:

  • Device & power — Root, FeatureSet, DeviceInformation, DeviceTypeAndName, DeviceFriendlyName, UnifiedBattery, WirelessDeviceStatus.
  • Hosts & platform — HostsInfo, ChangeHost, MultiPlatform, DualPlatform.
  • Pointer & wheel — MousePointer, AdjustableDpi, ExtendedAdjustableDpi, VerticalScrolling, HiResWheel, Thumbwheel, SmartShift (and enhanced).
  • Controls & remapping — ReprogControls (0x1b04, with named control-id and task-id constants), PersistentRemappableAction.
  • Keyboard — Fn inversion (legacy and multi-host), DisableKeys, DisableKeysByUsage, ModeStatus.
  • Lighting — Backlight, Illumination, BrightnessControl, ColorLedEffects, RgbEffects, PerKeyLighting.
  • Audio — Sidetone, Equalizer.
  • Report rate — AdjustableReportRate, ExtendedAdjustableReportRate.
  • Touch, crown & misc — Crown, TouchpadRawXy, TouchMouseRaw, SolarKeyboardDashboard.

Each wrapper encodes/decodes the official wire format, models domain values with enums/bitflags/newtypes, returns Hidpp20Error::UnsupportedResponse for unknown wire values rather than guessing, and is unit-tested against the published spec.