[ANNOUNCE] libratbag 0.17

Yaroslav Chvanov yaroslav.chvanov at gmail.com
Wed Nov 9 11:32:28 UTC 2022


Hello, libratbag v0.17 has been released. libratbag now requires meson
0.50.0 (released in March 2019) for building.

Fixes:
- Report rate changing now works on older SteelSeries mice.
- Fix multiple configurable devices being shown for one connected
  SteelSeries mouse.
- Fix setting onboard profile mode in HID++2.0 driver.
- Fix active resolution slot reading and writing in Sinowealth driver.
- Fix report rates which are not multiples of 100 not applying.

Features:
- Completely new driver for ASUS devices.
- Sinowealth driver now supports changing report rate, button
  assignments and macros.

New compatible devices:
- ASUS ROG Chakram
- ASUS ROG GX860 Buzzard Mouse
- ASUS ROG Gladius II
- ASUS ROG Gladius II Origin
- ASUS ROG Gladius II Origin PNK LTD
- ASUS ROG Keris Wireless
- ASUS ROG Pugio
- ASUS ROG Strix Carry
- ASUS ROG Strix Impact
- ASUS ROG Strix Impact II Wireless
- DreamMachines DM5 Blink
- G-Wolves Hati HT-M Wired
- Genesys Xenon 770
- Glorious Model O (with older firmware)
- Logitech G502 X
- Logitech G502 X Wireless
- Logitech G635
- Logitech G733
- Logitech MX Anywhere 3B
- Machenike M620
- Marvo Scorpion G961
- More SteelSeries Rival variations
- Roccat Kone EMP
- SteelSeries Rival 100/105

Thanks to everyone who has contributed! Bellow is the git shortlog with
  more details.

Andreas Grosse (1):
      Add Support for G502 X over USB

Andreas Schwab (1):
      meson.build: use valgrind only if available

Carlos Mogas da Silva (1):
      Add Logitech G635 Headset

Filipe Laíns (3):
      Revert "data: add additional identifier for MX Anywhere 2"
      Revert "data: Add (old) Logitech Performance Mouse MX"
      hidpp20: allow setting a default report rate (#969)

Ilya Guterman (7):
      fix button count and default report rate always zero
      steelseries: prefix hidraw writes with 0
      fix ci failures
      add static assert
      hidpp20: fix set onboard mode
      hidpp20: fetch active profile index only once
      hidpp20: verbose log the get current profile

Ilya guterman (2):
      data: support steelseries rival variations
      tests: test for additonal lightspeed receviers pids

João Ferreira (1):
      data: add additional identifier for MX Anywhere 2

Kristian Klausen (1):
      steelseries: only use the HID vendor device

Kyoken (3):
      fix ratbag-command led setting
      asus driver
      asus: remove extern

Linus (1):
      Fix presumed typo

LittleWhite-tb (1):
      Support for Roccat Kone EMP (#1131)

PeakKS (1):
      Add support for G502 X Wireless

Peter Hutterer (12):
      Add a GitHub Workflow as CI run (#1238)
      hidpp20: add missing #define to the feature report strings (#1237)
      meson.build: require meson 0.50.0
      Change the data validation tests to take the directory instead of files
      Install all data files as subdir
      Drop CircleCI
      CI: add a github pages job to the CI
      meson.build: fix spelling of receiver
      roccat: name two fields correctly
      CI: actually test with the various meson args
      roccat: remove an unnecessary #include
      test: add the Bolt receiver C548 to the receiver list

Rafael Silva (3):
      README: add uninstall instruction
      device: g635: Set buttons as 0
      ibratbag-hidraw: add optional filter to hidraw read

Sami Olmari (1):
      Add device-file for Logitech MX Anywhere 3B (#1313)

Stephan Lachnit (1):
      Register Roccat Kone Pure driver

Stephen Kitt (2):
      openinput: fix "Unknown" typo
      man: add both variants in ratbagctl.1 synopsis

Tayllan (1):
      hidpp20: allow setting a default buttons count

Thomas Weißschuh (1):
      libratbag-data: fix possible NULL dereferences

Yaroslav Chvanov (126):
      sinowealth: make init_profile return error codes
      sinowealth: print firmware version on profile init, not on reading
      sinowealth: put reading of raw configuration data into a helper
      sinowealth: move raw data reading from init function to probe function
      sinowealth: detect LED count at run-time
      sinowealth: use the detected LED count
      sinowealth: rename some functions to be more clear
      sinowealth: fix a memory leak
      sinowealth: increase log level of printed firmware version
      sinowealth: remove a redundant comment
      util: fix a string of text being printed out of nowhere
      Fix `ratbag_button_action_match` not matching on type `NONE`
      Add a TODO to make ratbag_button_action_match support macro actions
      sinowealth: use correct bits for report rate
      sinowealth: separate `config` to real `config` and `report_rate` nibbles
      sinowealth: put report rate conversion comparison in order
      sinowealth: use a map to convert report rates
      sinowealth: put some macros into enums
      sinowealth: add a lift off distance value to config report
      sinowealth: don't say that amount of breathing colors is constant
      sinowealth: sort values in an enum
      sinowealth: add `breathing_mode` to config report
      sinowealth: add some hidden lighting types
      sinowealth: rename a config entry to make more sense
      sinowealth: use `NULL` instead of `0` for pointers
      sinowealth: print config data size
      sinowealth: use a struct to store lighting mode
      sinowealth: make some utility functions take unsigned integers
      sinowealth: use enum types in config report directly
      sinowealth: handle new RGB effects
      sinowealth: make the firmware version printing helper return it instead
      sinowealth: print device model based on firmware version
      sinowealth: support different sensors
      sinowealth: format code
      sinowealth: use RGB or RBG colors depending on device
      sinowealth: add profile index getter
      sinowealth: print profile index
      sinowealth: add debounce time getter
      sinowealth: print debounce time
      sinowealth: add LOD and angle snapping value getter
      sinowealth: print LOD and angle snapping value
      sinowealth: add commands IDs for the second profile
      sinowealth: add active profile setter
      sinowealth: select first profile before getting any data from the mouse
      sinowealth: define `set_active_profile` method in the driver
      sinowealth: don't enable LED support if LED type is not defined
      sinowealth: add default sensor type and LED type
      sinowealth: set the RGB effect to unsupported if LED type is not defined
      data: add SinoWealth Generic Mouse (258a:0027)
      data: add another name to Glorious Model O - O-
      sinowealth: split `commit` into raw data update and raw write helpers
      sinowealth: use `uint8_t` instead of `char` for report IDs
      sinowealth: set the command before writing config
      sinowealth: use for_each instead of manually getting profiles
      sinowealth: declare a variable right before it's initialization
      sinowealth: initialize all variables
      sinowealth: add a macro for profile count
      sinowealth: store config report in an array
      sinowealth: cache current profile index in driver data
      sinowealth: don't mark inactive profile as active
      sinowealth: rename macros with config size to make more sense
      sinowealth: make `update_profile_from_config` a void function
      sinowealth: remove new-lines between data types and their size checks
      sinowealth: make the sensor maximum DPI getter return `0` on error
      sinowealth: improve comments
      sinowealth: remove a now unused macro
      sinowealth: put a macro into an enum
      sinowealth: sanity check output of all raw data getters
      sinowealth: prefix some of our data type names
      sinowealth: visually separate config report data specific to long mice
      sinowealth: fix two struct fields having swapped places
      sinowealth: put command buffer size into a macro
      sinowealth: rename a struct member to show that it's bit field
      sinowealth: add helpers for doing raw HID queries
      sinowealth: explain how `active_dpi` works
      sinowealth: fix several misspellings
      steelseries: fix a memory leak
      steelseries: fix length of LED cycle output report being incorrect
      steelseries: only write report rate if it's dirty
      test: migrate to profile-oriented API
      etekcity: migrate to profile-oriented API
      etekcity: only write profile once
      roccat: migrate to profile-oriented API
      roccat-kone-pure: migrate to profile-oriented API
      libratbag: remove now unused deprecated driver methods
      sinowealth: add command ID for putting the device into DFU mode
      sinowealth: don't redundantly unreference a profile
      sinowealth: return an error code instead of doing an assert
      sinowealth: fix active resolution slot reading and writing
      sinowealth: add partial support for reading BREATHING7 lighting mode
      sinowealth: fix `breathing` LED mode on 0027 mice
      sinowealth: use a union instead of doing pointer arithmetic on DPI slots
      sinowealth: fix DPI being off by 100 on PWM3327 sensor
      sinowealth: mark color order on Genesis Xenon 770 as tested
      sinowealth: fix rave lighting mode settings being shifted by one byte
      sinowealth: set button count from detected device
      sinowealth: add types for buttons
      sinowealth: add support for reading button bindings
      sinowealth: add support for changing button mappings
      sinowealth: add support for writing `key` button actions
      sinowealth: add support for writing macros
      libratbag-data: fix a memory leak
      sinowealth: fix a typo
      sinowealth: prefix a function name
      sinowealth: handle RGB_NOT_SUPPORTED explicitly
      sinowealth: make dpi_to_raw return 8 bit number
      sinowealth: decrease minimal configuration size
      sinowealth: add sensor type field to configuration data
      sinowealth: add numeric IDs to sensor types
      sinowealth: make device detection less imperative
      sinowealth: detect sensor type automatically
      sinowealth: fix crashing on mice with unknown sensors
      sinowealth: limit the resolution to sensor's upper bound
      sinowealth: note that debounce time command doesn't work on shorter mice
      sinowealth: add data for Marvo Scorpion G961
      sinowealth: fix all devices being detected as `generic device`
      steelseries: add fallback button and LED count
      steelseries: ensure that device has a version number set
      sinowealth: use a constant instead of a magic number
      sinowealth: null-terminate the buffer with firmware version
      sinowealth: move device-specific data out of the driver
      libratbag-data: add a missing include
      asus: fix include order
      data: add another SinoWealth Generic Mouse (258a:0029)
      CI: update runners to use Node 16
      libratbag 0.17

listout (1):
      Use fprintf instead of error

mtayllan (2):
      Add support to Logitech G733
      Set buttons as 0 for logitech g733

staticssleever668 (20):
      sinowealth: add support for changing active resolution number
      steelseries: fix report rate changing for version 1 devices
      sinowealth: add support for reading current report rate
      sinowealth: add support for changing report rate
      sinowealth: expose all eight resolution slots
      steelseries: improve v1 LED breathing duration configuration
      ratbagd-profile: do not align report rates to 100
      ratbagd-profile: allow report rates up to 8000
      steelseries: add 'Quirk' setting
      steelseries: make settings unique to SteelSeries Sensei RAW a quirk
      libratbag-data: add 'Rival100' quirk to SteelSeries driver
      steelseries: add support for changing LEDs on Rival 100
      data: add SteelSeries Rival 100/105
      ratbagd: initialize a variable
      driver-hidpp10: remove a redundant character array null check
      driver-hidpp10: cast an internal log priority enumeration to the general one
      driver-hidpp20: cast an internal log priority enumeration to the general one
      hidpp20: give some structures names
      sinowealth: add support for mice with longer configuration data
      sinowealth: use proper config size when writing

strangemax (1):
      data: Add (old) Logitech Performance Mouse MX

git tag: v0.17

The libratbag project does not generate tarballs for releases, you can
grab one directly from github:

https://github.com/libratbag/libratbag/archive/refs/tags/v0.17.tar.gz
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/input-tools/attachments/20221109/bf0965f7/attachment.sig>


More information about the Input-tools mailing list