OpenLogi

0x1b00 · reprogControls

Early-generation control enumeration and diversion — query the device's programmable button table and redirect individual controls to HID++ events.

reprogControls is an earlier-generation HID++ 2.0 feature for enumerating and diverting the physical controls (buttons, function keys, hotkeys) on Logitech mice and keyboards. It defines the foundational control-table model — each entry carries a control ID, a default task ID, and a set of capability flags — with functions to query that table and to switch individual controls between their default HID report behaviour and HID++ event diversion. The feature was later superseded by 0x1b04 (specialKeysMSEButtons / reprogControlsV4), which adds persistent diversion, raw-XY and raw-wheel event streams, analytics key events, group masking, and the v6 capability query.

Not implemented in OpenLogi

OpenLogi's vendored hidpp crate does not provide a typed wrapper for this feature yet. The notes below summarise the HID++ feature in general terms, not OpenLogi behaviour. OpenLogi instead relies on 0x1b04 reprogControls4/specialKeysMSEButtons where applicable.

What it does

  • Control enumeration — one function reports how many programmable controls the device has; another fetches each descriptor by index, with its default task ID and capability flags (reprogrammable, divertable).
  • Control diversion — read and write the diversion state per control ID; a diverted control stops sending its usual HID report and emits HID++ events instead.
  • Button events — broadcasts the set of currently pressed diverted controls as HID++ events, so host software can respond to them without tying up HID report bandwidth.
  • Earlier protocol revision — compared with 0x1b04, this version has a narrower flag set and does not include persistent diversion, raw pointer deltas, raw wheel deltas, or analytics reporting. Devices that advertise only 0x1b00 predate those capabilities.

Status: Not implemented · Feature ID: 0x1b00 · See also: 0x1b04 reprogControls4/specialKeysMSEButtons

On this page