mirror of
https://github.com/libratbag/libratbag.git
synced 2026-11-07 23:23:52 +01:00
Mice behind an ASUS Omni receiver all enumerate with the same usb id (0b05:1ace), so the regular bus:vid:pid DeviceMatch cannot tell models apart. Identify the model during probe instead: - asus-rog-omni-receiver.device is a minimal bootstrap file that only declares Quirks=OMNI_RECEIVER, so the asus driver gets probed on the receiver's hidraw nodes - the probe queries the serial number signature (03 12 12 02) and matches its prefix against the OmniSignature field of the .device files, then re-resolves the device data for the identified usb id - an unknown signature fails the probe with -ENODEV, which also drops the receiver's keyboard and media control nodes The Strix Impact III family answers with data two bytes earlier than the original protocol (code plus params echo instead of code plus pad), so two quirks cover the new layouts: - LED_V2: per-zone LED responses with data at offset 4, brightness in 0-100 - SETTINGS_V2: settings and DPI responses with data at offset 4, rate/debounce/snapping as single bytes Also write DPI values with two bytes so presets above 12850 dpi work. Verified on a ROG Strix Impact III Wireless: identification on hidraw4, all 5 profiles with 8 buttons, 1 LED and DPI presets 400/800/1600/3200, report rate 1000 Hz, debounce 12 ms, LED brightness 127 (50%). Writes round-trip and survive a ratbagd restart.
10 KiB
Executable File
10 KiB
Executable File