[ANNOUNCE] libratbag 0.18
Yaroslav Chvanov
yaroslav.chvanov at gmail.com
Tue Sep 24 16:19:00 UTC 2024
libratbag v0.18 is out.
The list of interesting changes are:
- This release bumps D-Bus API version and is not compatible with older Piper versions.
- Add button disabling.
- Add resolution disabling (used in hidpp20 and sinowealth drivers).
- Add firmware version API (used in steelseries and sinowealth drivers).
- Add debounce time changing (used in asus and sinowealth drivers).
- Add device type API (allows Piper to reassign first two keys on keyboards).
- Add angle snapping changing (used in asus driver).
- ASUS - implement simple key actions button mappings.
- Sinowealth - implement several device profiles.
- Fix crash on on profile disabling.
- Clamp minimal allowed report rate to 125hz.
- Properly announce property changes to D-Bus (so Piper can reflect changes made with ratbagctl without restarting).
- New supported devices:
- ASUS ROG Chakram Core
- ASUS ROG Chakram X
- ASUS ROG Harpe Wireless
- ASUS ROG Keris Wireless AimPoint
- ASUS ROG Spatha X
- ASUS ROG Strix Impact II
- Logitech G PRO Keyboard
- Logitech G102 (new variation: usb:046d:c09d)
- Logitech G303 Shroud Edition
- Logitech G413 (keyboard)
- Logitech G733 (new variation: usb:046d:0afe)
- Logitech MX Anywhere 3S
- Logitech MX Master 3S
- Logitech MX Master 3S for Business
- Mad Dog GM905 (sinowealth)
- Mars Gaming MM4 (new driver 'marsgaming')
- SteelSeries Rival 650 Wireless
- T-Dagger Imperial T-TGM310 (sinowealth)
See the full log at the end if you are interested in the details.
BigBoiMan123 (1):
data: add ASUS ROG Keris Wireless AimPoint
Daniel Levi-Minzi (1):
add rog harpe ace wireless
Filipe Laíns (1):
hidpp20: enable disabling buttons on onboard profiles (0x8100)
Jon (1):
data: update logitech-g915-tkl.device to DeviceType=keyboard
José Almeida (1):
data: add device Logitech G Pro (X) keyboard
Julian Kandlhofer (2):
implement 'DeviceType' property
change misnamed function name
Kirk Roybal (1):
data: add Logitech MX Master 3S for Business
Kyoken (20):
asus: add strix impact 2
asus: button mapping reworked
asus: fix building errors
asus: add spatha x
asus: rename params
asus: handle undefined buttons
asus: fix button mapping type
asus: allow empty cells in bindings table and fix pugio button bindings
asus: pugio button mapping
implement key bindings feature
fix ratbag-command key bindings
use key name instead of code for binding
fix typo in macro bindings
add angle snapping and debounce
ratbagd.py: don't mark a profile as dirty on active profile switch
data: fix asus chakram x
asus: check mouse in probe, fix asus status code
asus: fix single profile devices
asus: warn on unknown key codes
asus: add rog chakram core
Matt Coffin (1):
steelseries: add support for Rival 650 Wireless
Matthias Bach (1):
build: install ratbagd into sbindir
Michał Lubas (4):
Update ratbagctl.test
Replace removed imp module with importlib
meson.build: Don't pass a file to str.format
Add a delay before dbus sync in ratbagctl.test
Odd Eirik Nes (1):
data: add an additional usb identifier for Logitech G733
Peter Hutterer (4):
tools: convert our enum equivalents to python enums
libratbag: Fix the action type NONE handling
ratbagd: map disabling a button to the existing action type None
ratbagd: switch Profile.Enabled to Profile.Disabled
Peter Oliver (1):
Adjust offered resolutions for SteelSeries Kinzu V3
Qjammer (1):
marsgaming: implement Mars Gaming MM4 protocol
Red_M (1):
Fix spatha x device file.
Ryan Jensen (1):
updating documentation: linux/input.h -> linux/input-event-codes.h
Stephan Lachnit (4):
Make order of resolution properties consistent
Implement disabled resolutions
driver-hidpp20: implement disabled resolutions
data: add support for Logitech G413 keyboard
TCH (1):
data: add Logitech MX Master 3S
Vladislav Tyulbashev (1):
data: add Logitech MX Anywhere 3S
Yaroslav Chvanov (283):
sinowealth: fix writing of `key` button action type
sinowealth: do an `assert` instead of graceful internal bug handling
sinowealth: remove now unused `button_set_key_action_from_macro`
libratbag-data: fix formatting
asus: make pointer variables `const` wherever possible
asus: use ARRAY_FOR_EACH
build: bump ratbagd DBus API version
ratbagctl: add an error message if the key supplied to macro is wrong
ratbagd: use NULL instead of 0 for pointers
ratbagd: fix formatting
tools: put the list of possible button action types into a const
test: fix incorrect type of file paths in data-parse-test
test: add type hints to data-parse-test
data: fix missing `Driver` field
test: add `wheel` to the list of permitted LED types
test: work-around unsupported Driver section of the `sinowealth` driver
build: fix data tests not running
test: fix formatting
test: data-parse-test: check all files even if there is an error
test: fix incorrect character escaping in data-parse-test
test: increase max DPI in check_dpi_range_str() to 36000
test: make check_section_driver() a bit more diff-friendly
test: add device data tests for the asus driver
test: add device data tests for the steelseries driver
sinowealth: print a warning if there are too much events in a macro
sinowealth: use non-GNU-specific empty array initializer
sinowealth: fix some variable types
sinowealth: make all casts explicit
sinowealth: simply return a `bool` instead of 0 or 1
sinowealth: assert instead of silently ignoring an error
sinowealth: fix a typo
sinowealth: deduplicate the code of reading configuration data
sinowealth: add support for reading 2 profiles (if a macro is set)
sinowealth: fix a missing new line in logging
sinowealth: refactor sinowealth_update_macro_from_action()
sinowealth: improve error handling
sinowealth: add support for button actions in macros
sinowealth: add support for writing additional profiles
sinowealth: explain additional profiles and their pit-falls
sinowealth: further deduplicate the code of reading config data
sinowealth: enable profile cycling mapping with a preprocessor macro
ratbagd: fix error handling in ratbagd_button_set_none()
libratbag: check if disabling buttons is supported
ratbagctl: check if disabling buttons is supported
sinowealth: enable button disabling support
Revert "tools: convert our enum equivalents to python enums"
ratbagc: add NONE as allowed action type
ratbagd.py: make the profile dirty after changing report rate
ratbagd.py: fix changes to IsActive potentially not being notified about
sinowealth: implement disabled resolutions
ratbagd: fix stack smashing
ratbagctl: fix typo
doc: fix documentation for disabling resolutions
Fix typos throughout the codebase
libratbag-util: make asprintf_safe() return a char*
device: add firmware version API
sinowealth: save the firmware version in ratbag device
steelseries: save the firmware version in ratbag device
hidpp10: return EINVAL instead of aborting
driver-hidpp10: fix integer overflow when profile count is unset
ratbagctl: capitalize device type instead of having it in upper case
tools: fix incorrect special method signature
tools: remove an unnecessary variable definition
tools: remove an unused function that always raises
G300: prevent unused variable usage warning
G600: prevent unused variable usage warning
hidpp10: fix a faulty error check which prevent macro parsing
test: remove a duplicate import
ratbagd: don't extract sd_bus when it's given as an argument
sinowealth: remove an incorrect enum member
hidpp10: fix variable shadowing
test: fix variable shadowing
driver-hidpp20: fix variable shadowing
driver-hidpp10: fix variable shadowing
libratbag-util: check the return value of scanf
tools: check snprintf size argument to prevent potential overflow
tools: fix incorrect special method signature
tools: remove unused arguments
test: add explanations to empty excepts
tools: use with-statements to open files
tools: remove unused variables
tools: write to file directly without using `print`
G600: don't enable key-type button actions
steelseries: don't enable key-type button actions
G300: don't enable key-type button actions
etekcity: don't enable key-type button actions
roccat-kone-emp: don't enable key-type button actions
roccat-kone-pure: don't enable key-type button actions
roccat: don't enable key-type button actions
etekcity: remove support for the deprecated button type field
gskill: remove support for the deprecated button type field
hidpp10: remove support for the deprecated button type field
G300: remove support for the deprecated button type field
G600: remove support for the deprecated button type field
roccat-kone-emp: remove support for the deprecated button type field
roccat-kone-pure: remove support for the deprecated button type field
roccat: remove support for the deprecated button type field
steelseries: remove support for the deprecated button type field
test: remove support for the deprecated button type field
tools: remove helpers for the deprecated ratbag_button_type
gskill: remove support for the deprecated button type field
hidpp20: don't set the deprecated button type field in the driver
hidpp20: remove unused physical mapping button type
libratbag: remove support for the deprecated button type field
hidpp20: remove usage of the deprecated LED type in the driver
hidpp20: remove unused LED type mappings
tools: remove helpers for deprecated LED types
asus: remove usage of deprecated LED types
sinowealth: remove usage of deprecated LED types
G600: remove usage of deprecated LED types
steelseries: remove usage of deprecated LED type
hidpp20: remove usage of deprecated LED types
roccat-kone-emp: remove usage of deprecated LED types
data: remove usage of the deprecated LED type field
test: don't allow the deprecated LedTypes field
G300: remove usage of the deprecated LED type field
libratbag-data: don't parse LedTypes from device files
sinowealth-nubwo: remove usage of the deprecated LED type field
test: remove usage of the deprecated LED type field
libratbag: remove everything related to the deprecated ratbag_led_type
sinowealth: don't change active profile while probing
sinowealth: add missing new-line in a log message
sinowealth: move active profile index and debounce time getting to init
sinowealth: edit a note about active profile index to be more clear
sinowealth: get rid of profile cache
sinowealth: use the first profile if active profile index is too high
tools: don't try to return the first profile on error
tools: don't try to return the first resolution on error
ratbagctl: check if there is an active profile
ratbagctl: check if there is an active resolution
gskill: add back button type button actions
Rename Python files throughout the project to have `.py*` in the suffix
tools: prevent a syntax error for code editors and linters
build: add Python code formatting with black
Format Python code
build: add Ruff for Python code linting
Automatically fix Ruff warnings
test: fix ambiguous variable names
tools: fix ambiguous variable names
tools: chain exceptions within exceptions
tools: don't use complex types as default function arguments
tools: ignore a false positive warning
tools: fix "line too long" warnings where possible
ratbagctl: add type hints where possible
ratbagctl: simplify an expression to make mypy understand it
ratbagctl: make an argument non-optional
ratbagctl: don't reuse a variable for different types
ratbagctl: rename a member function to prevent incorrect overriding
Remove flake8 configuration file
sinowealth: implement debounce time reading/writing
doc: add angle snapping and debounce time
ratbagctl: use textwrap.indent instead of inventing the wheel ourselves
tools: remove unnecessary `pass` statements
lint: enable flake8-pie lints
ratbagctl: fix an incorrect type hint
ratbagctl: use standard exception types
ratbagctl: remove unnecessary else
test: raise ValueError instead of AssertionError manually
test: don't return anything from main()
tools: make all exceptions types have Error as the sufix
Use 'key in dict' instead of 'key in dict.keys()'
Use 'a != b' instead of 'not a == b'
lint: enable flake8-simplify
lint: enable flake8-return
test: fix traceback.print_exception() usage on older Python versions
lint: exit early if git ls-files doesn't find anything
build: use project-local build and source directories
test: use a simply `assert` instead of using a helper
build: add a missing dependency to a test
ratbagd.py: add back .keys() calls on all GLib.Variant
tools: print errors to stderr
tools: skip linter checks if linters are not installed
libratbag: don't apply active profile change until committing
sinowealth: fix incorrect placement of `sensor_type` in config data
sinowealth: add more debug logging for easier device file creation
sinowealth: add support for PMW3212 sensor
data: add links to device issues with raw configuration data
data: add Sinowealth Generic Mouse (258a:0051)
libratbag: fix profile not becoming dirty on active profile switch
libratbag: add API for checking if profile is dirty
ratbagd: add `IsDirty` property to profiles
ratbagd.py: use the IsDirty property of the DBus API
libratbag: check if driver supports committing
libratbag: check if profile is dirty in sanity check
Fix drivers making profiles dirty while probing
libratbag-util: make dpi_list_free() be able to take NULL
libratbag-data: use the dpi_list_free helper
libratbag: remove fall back for Logitech devices
libratbag: take constant pointers where possible
ratbagd.py: sync with Piper
ratbagctl: show if a profile is dirty
sinowealth: add command IDs for the third profile
sinowealth: update the comment about profile count
sinowealth: check for device compatibility as soon as possible
sinowealth: add and use profile count in drv_data
sinowealth: rename `MAX` to the variable with maximum profile count
sinowealth: make an error message less generic
sinowealth: add "cycle LED modes" binding to unknown
sinowealth: read profile count from the device file
sinowealth: change "profile-up" button binding to cycle
sinowealth: use early return
sinowealth: conditionally enable writing profile-switching bindings
sinowealth: allow up to three profiles
data: enable second profile for T-Dagger Imperial T-TGM310
sinowealth: fix logging using wrong member
sinowealth: don't try to live through errors while committing
libratbag-data: set fallback value in the same place as the proper value
sinowealth: check if ButtonCount field in device file is correct
data: add SinoWealth driver to the example device file
fixup! sinowealth: read profile count from the device file
ratbagd: change type of a variable to fix stack smashing
tools: fix printing of macros with buttons in them
test: check that disabled profile can't made active
libratbag: don't allow setting disabled profile as active
test: check that active profile can't be disabled
libratbag: don't allow disabling active profile
build: remove redundant build targets for tests
test: add test for sinowealth driver sections in device files
sinowealth: change device files to match other drivers
shared-macro: make startswith() return a const char*
sinowealth: store firmware version in device files in the group name
data: improve description of possible fields for sinowealth driver
sinowealth: show a more detailed message for unknown mice
steelseries: don't use `else` after `return`
steelseries: add commit error logging
steelseries: simplify loop breaking
steelseries: don't use reserved underscore identifiers
steelseries: don't define variables on a single line
steelseries: fix narrowing conversions
steelseries: make most of implicit conversions explicit
steeseries: make an array `static const`
steelseries: add missing newlines to logging
sinowealth-nubwo: fix incorrect firmware version getting error check
sinowealth-nubwo: correctly use an attribute
sinowealth-nubwo: remove trailing whitespace
sinowealth-nubwo: idiomatically zero initialize a struct
liblur: check return value instead of comparing the out_ptr
driver-hidpp20: zero initialize a struct
openinput: return early instead of making an error-prone zero-sized VLA
steelseries: check for settings reading errors
steelseries: ignore the check for HID vendor device
Use f-strings for formatting
ratbagd.py: sync with Piper
ratbagctl: ignore a Ruff f-string formatting warning (UP032)
doc: fix ActionTypes
doc: remove leftover docs generators for libratbag-enums
doc: remove an outdated section from IsDisabled field of Resolution
doc: don't say that report rate is related to resolutions
libratbag: refactor ratbag_action_macro_num_keys()
libratbag: drop everything related to simple key action modifiers
sinowealth: make report rates list const
sinowealth: handle errors in sinowealth_update_macro_events_from_action
sinowealth: handle errors in sinowealth_button_set_key_action
sinowealth: change some default switch cases, comments and code style
sinowealth: write simple enough macros as key actions
ratbagd: show version when starting
hidpp20: remove an unused variable
libratbag: add a bit of const correctness
libratbag-hidraw: add const correctness
libratbag-data: fix narrowing conversions
libratbag-util: add const correctness
sinowealth: put a number into a const
sinowealth: add a note about a bit mask
steelseries: remove an unneeded import
build: move rbtree into a subdirectory
build: remove Coverity work-around
test: format receiver IDs as hex numbers
ratbagd-profile: cap minimum report rate to 125
driver-hidpp20: remove unused static function
sinowealth: add report rate cycling key mapping
sinowealth: fix typos and reformat
sinowealth: fix lift-off distance reading integer overflow
ratbagd: fix typo
ci: update linter settings format for ruff
ratbagc: fix new Ruff lints
sinowealth: use existing libratbag helper for converting macro to raw
libratbag: remove FIXME for simple key action modifiers
ratbagctl: fix Ruff warnings
ratbagctl: remove unused imports
ratbagctl: use correct type hint for def main
ratbagd: format with ruff format
release.sh: use bash from PATH in shebang
libratbag 0.18
Zebreus (1):
doc: fix typo in readme
fritteli (1):
data: set device type of Logitech G513 to keyboard
halting (1):
Revert "g300: use the correct step size"
koliwbr (1):
data: add support for Mad Dog GM905
lennie420 (1):
Logitech G303 Shroud Edition device file
mistepien (1):
data: add additional USB id for Logitech G102 (046d:c09d)
git tag: v0.18
The libratbag project does not generate tarballs for releases, you can
grab one directly from github:
https://github.com/libratbag/libratbag/archive/v0.18/libratbag-0.18.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/20240924/041f8082/attachment.sig>
More information about the Input-tools
mailing list