1
0
forked from drath/libratbag

30 Commits

Author SHA1 Message Date
haytham
d93a8bc474 asus: add support for the Omni receiver and new data layouts
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.
2026-08-18 20:11:11 +03:00
Kyoken
7bdca904f5 asus: new quirks for Chakram X and other mice 2025-05-10 13:38:06 +03:00
Yaroslav Chvanov
87f6e521e6 sinowealth: store firmware version in device files in the group name
It only makes sense, since it's what the section are identified by.
2023-03-19 02:42:47 +03:00
Yaroslav Chvanov
876c06237e sinowealth: change device files to match other drivers
..specifically the "ButtonCount" and "ProfileCount" keys.
2023-03-19 02:39:21 +03:00
Yaroslav Chvanov
4b936bf478 test: add test for sinowealth driver sections in device files 2023-03-19 01:51:21 +03:00
Yaroslav Chvanov
a9545b2b63 test: use a simply assert instead of using a helper 2023-03-02 14:05:37 +03:00
Yaroslav Chvanov
265e1cee1a test: fix traceback.print_exception() usage on older Python versions 2023-03-02 05:48:40 +03:00
Yaroslav Chvanov
80fa7f5b8f Use 'key in dict' instead of 'key in dict.keys()' 2023-03-02 05:30:30 +03:00
Yaroslav Chvanov
e84a56c424 test: don't return anything from main() 2023-03-02 04:32:40 +03:00
Yaroslav Chvanov
04b77a3b9b test: raise ValueError instead of AssertionError manually 2023-03-02 04:32:40 +03:00
Yaroslav Chvanov
2ba49ba185 test: fix ambiguous variable names 2023-03-01 22:17:31 +03:00
Yaroslav Chvanov
a66e6d2066 Automatically fix Ruff warnings 2023-03-01 22:17:31 +03:00
Yaroslav Chvanov
49146638a6 Format Python code 2023-03-01 22:17:31 +03:00
Yaroslav Chvanov
274f19e84b test: don't allow the deprecated LedTypes field 2023-02-25 13:39:47 +03:00
Yaroslav Chvanov
74c2cb686e test: add explanations to empty excepts
And all of them are the same string... This is a bit annoying.
2023-02-25 00:41:23 +03:00
Yaroslav Chvanov
b0a9f24afb test: remove a duplicate import 2023-02-24 23:44:00 +03:00
Julian Kandlhofer
4f36371af3 implement 'DeviceType' property
Signed-off-by: Julian Kandlhofer <julian.kandlhofer@gmail.com>
2023-02-14 16:29:20 +03:00
Yaroslav Chvanov
7a5b9b4367 Fix typos throughout the codebase 2023-01-03 04:17:44 +03:00
Yaroslav Chvanov
a493575daa test: add device data tests for the steelseries driver 2022-12-22 03:38:31 +03:00
Yaroslav Chvanov
c7e2e13ee0 test: add device data tests for the asus driver 2022-12-22 03:38:25 +03:00
Yaroslav Chvanov
d6b6b0d12c test: make check_section_driver() a bit more diff-friendly 2022-12-22 03:38:09 +03:00
Yaroslav Chvanov
9450ce18e1 test: increase max DPI in check_dpi_range_str() to 36000
o_O
2022-12-22 03:38:06 +03:00
Yaroslav Chvanov
10f03eaf0e test: fix incorrect character escaping in data-parse-test 2022-12-22 03:04:01 +03:00
Yaroslav Chvanov
8e798c74c9 test: data-parse-test: check all files even if there is an error 2022-12-22 03:03:59 +03:00
Yaroslav Chvanov
c6005b2cb8 test: fix formatting 2022-12-22 02:49:10 +03:00
Yaroslav Chvanov
be79267f9d test: work-around unsupported Driver section of the sinowealth driver 2022-12-22 02:22:59 +03:00
Yaroslav Chvanov
38d10977b6 test: add wheel to the list of permitted LED types 2022-12-22 02:22:59 +03:00
Yaroslav Chvanov
1e4c1d73b8 test: add type hints to data-parse-test
This will help us prevent errors like in
41c655090ce9f709db4f7069777741a6b5384d24 in the future.
2022-12-22 02:18:42 +03:00
Yaroslav Chvanov
99bbbfb0b5 test: fix incorrect type of file paths in data-parse-test
Seems like the API of pathlib changed at some point.
2022-12-22 02:18:41 +03:00
Peter Hutterer
f05b671dc1 Install all data files as subdir
This removes the need of listing every device in meson.build which is a
common enough mistake for new contributors.

And move the validation tests over to test/ so we don't have to list
them in the exclude_files of the install_subdir() command.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2021-12-13 10:39:42 +10:00