Skip to content

Releases: pwr-Solaar/Solaar


03 Nov 11:23
Choose a tag to compare
  • Add dependency on typing_extension to
  • Don't defer saves in CLI and don't require Gtk in CLI
  • Be more permissive in recognizing HID++ report descriptors
  • Update Polish and Croatian translations
  • Switch scroll ratcheting in response to scroll ratchet button notification
  • Add setting to turn scroll ratchet on and off
  • Eliminate visual glitch when updating range setting
  • Make hid-parser an optional dependency


30 Oct 16:20
Choose a tag to compare
1.1.7rc2 Pre-release
  • Don't defer saves in CLI and don't require Gtk in CLI
  • Be more permissive in recognizing HID++ report descriptors
  • Update Polish and Croatian translations
  • Switch scroll ratcheting in response to scroll ratchet button notification
  • Add setting to turn scroll ratchet on and off
  • Eliminate visual glitch when updating range setting
  • Make hid-parser an optional dependency


25 Oct 00:00
Choose a tag to compare
  • Only update remaining pairings after successful pairing
  • Check for presence of status attribute when resuming
  • Update Polish and Croation translations
  • Don't add non-existant key in raw xy processing
  • Add special keys from MX Mechanical Mini
  • Fix processing of HID++ 1.0 battery reports
  • Use report descriptors to determine suitable devices
  • Handle exceptions when processing configuration file
  • Add Logitech PRO Gaming Keyboard
  • Fix bad entries in divert-keys when found
  • Correctly convert old-style diversions to new style and remove old ones
  • Add optional save argument to write_key_value methods
  • Use device name in configuration entries if device modelId is zeroes
  • Don't show normal DJ messages in debug log
  • Add Later rule action
  • Correctly record battery feature when ADC produces error
  • Print feature call errors in solaar show instead of terminating
  • Use ADC notifications to set device inactive and active
  • Add one to feature count to count ROOT feature
  • Don't check modifiers for KeyPress actions that are not clicks
  • Augment comments on what Solaar cannot do
  • Fix bug in printing closed handle
  • Use only product records to determine which receivers unpair
  • Add conditional delay to get around race with Linux HID++ driver


14 Sep 23:05
Choose a tag to compare
  • Add G213 Prodigy Gaming Keyboard
  • Update Turkish, Croation, and zh_CN translations
  • Move old device descriptions to new locations and clean up
  • Increase minimum stopped time between mouse movements
  • Fix bug with non-recognized empty mouse movement
  • Allow config panel to scroll
  • Add descriptions for K360 4004, MX Master 4017, Lightspeed C541, and G915 407D
  • Change security tooltip for unencrypted wireless connections
  • Add Norwegian Bokmal translation
  • Update documentation on continuously running GUI, diverted keys, and changing hosts
  • Solaar config no longer applies settings
  • Add description of rule components to rule editor
  • Ignore first movement for mouse gestures when reprog controls version is 5 or more
  • Add Active rule condition to test whether a device is active
  • Terminate iteration over receiver devices when all have been found
  • Downgrade Set prolem messages from error to warning
  • Log informational messages and above to a temporary file
  • Don't produce warnings when editing rules in rule editor
  • Fix bug that didn't save rules file if there were no rules
  • Allow devices with connection number larger than max_devices
  • Show more registers in solaar probe
  • Show feature versions in solaar show
  • Fix problems with deleting devices on exit
  • Update German translation
  • Update device documentation directory
  • Add descriptors for G502 Proteus Spectrum Optical Mouse and G935 headset
  • Record feature versions
  • Add Serbian translation
  • Fix circular import in rules
  • Keep track of devices and use in rules
  • Update zh_CN and zh_TW translations
  • Convert old-style mouse gestures and sliding dpi settings to new style
  • Allow multiple keys for mouse gestures and sliding dpi
  • Defer saving configuration file for a while to cut down on the number if times it is saved
  • Use correct functions for unified battery and battery voltage features.
  • Add defensive check for missing keys array in mouse gestures setting
  • Better presentation of battery information
  • Add support for ADC MEASUREMENT battery feature
  • Add information on how to find divertable key names in solaar show output
  • Better warnings for feature call errors with reprogrammable key and gesture settings
  • Increase entry size for ChoiceControlBig


04 Jul 13:17
Choose a tag to compare
  • Update Croatian translation
  • Handle unanticipated values for persistent remappable action as default
  • Improve system tray interface documentation
  • Remove blank lines from system tray popup
  • Update Polish translation
  • Add depress and release options to KeyPress rule action
  • Only close existing devices for receiver
  • Differentiate debug messages for different setting types
  • Implement packed range setting in config panel
  • Only produce warning for unimplemented display of setting
  • Add sidetone and equalizer settings for headsets
  • Add packed ranges setting
  • Use built-ins for conversions between int and byte string
  • Don't add HI_RES wheel ecodes to evdev device codes
  • Handle null key in persistent remappable actions when device does not respond
  • Consult polling rate feature for polling rate
  • Eliminate extra file handles
  • Close file handles for receiver-connected devices
  • Access to more keys in KeyPress rule action when in other keyboard groups
  • Update Turkish translation
  • Put battery levels in tray menu labels
  • Reduce warnings for inaccessible keys in KeyPress rule action
  • Better determination of keycodes and insert needed shifts in KeyPress actions.
  • Be careful when processing notifications for partly set up devices.
  • Clear out fields for empty persistent remappable action.
  • Fix message generation when device is offline.
  • Fix bug in feature lookup.
  • Add support for G533 Headset and G502 Gaming Mouse
  • Improve device features handling.
  • Keep trying settings that have worked in the past.
  • Store None in persisters for non-persisting settings.
  • Only create configuration entries for off-line devices if they have a serial number.


25 Apr 13:07
Choose a tag to compare
  • Update documentation files
  • Lower remove python 3.7 constructs and lower python dependency to 3.6
  • Fix bug in xtest mouse scrolling
  • Allow mouse gesture setting for non-mice, e.g., trackballs
  • Print message when there is another Solaar process running
  • Fix determination of whether to force read before writing boolean setting
  • Add recent diversion features to default list in rules UI
  • Add setting to divert hires scroll wheel
  • Don't use device kind to determine how to handle notifications
  • Update Polish, Russian, and zh_CN translations
  • Remove pggettext so as to not require Python 3.8
  • Remove Python 2 unicode support
  • Store keys in configuration file as int instead of str
  • Use yaml for configuration file instead of json.
  • Remove process-dependent rules from built-in rules.
  • Handle situation where GTK application cannot be set up in CLI.
  • Remove obsolete upower signals.
  • Appinfo/metadata fixes including using correct APP_ID.
  • Fix bugs in solaar config.
  • Add full set of mouse buttons in persistent remappable actions setting.
  • Improve rule behaviour under Wayland and when Xtest or X11 not available.
  • Fix up and document dependencies (evdev, Python, ...).


26 Mar 15:55
Choose a tag to compare
  • Update documentation on supported devices and translations
  • Include evdev as a dependency
  • Try to use uinput for fake input if XTest extension not available
  • Add Nano receiver C542 for M190 mice
  • Broaden range of HID++ Bluetooth devices
  • Add setting to divert gestures
  • Rule editor can edit all rule components
  • Configuation via solaar config takes effect in Solaar UI if it is running
  • Add setting to disable Onboard Profiles and decouple from Polling Rate setting
  • Add setting for PERSISTENT_REMAPPABLE_ACTION, common keyboard and mouse cases only
  • Split Test rule condition into Test and TestBytes and support in rule editor
  • Fix bug in speed-change setting
  • Support Backlight3 feature
  • Ensure that settings are pushed in resume
  • Update German, Polish, and zh_CN translations
  • Determine device number for direct-connected devices from protocol
  • fix bug in add and delete button actions in rule editor
  • dispose of no-op notifications quickly
  • add rule condition for checking device settings
  • use local file for conversion from key names to keysyms
  • get keyboard group and use to get correct keycodes (X11 only)
  • improve how rules work under Wayland
  • add settings for M-Key LEDs and MR-Key LED
  • fix bug in unpacking M and MR key notification
  • add G815 keyboard and MX518 mouse
  • add new special keys for recent keyboards
  • track M and MR keys for use in rules
  • make sure that device is online when searching for devices in solaar show
  • don't check for device kind in dpi sliding setting
  • fix problem with devices that report 0 DPI
  • handle missing divert-setting in action RW for settings
  • add id property (unitId or serial) and don't use ? for unknown serial
  • fix contains for NamedInts and eliminate use of has_element
  • check for xtest and disable modifier checking if not available
  • improve determination of gesture information
  • add Set rules to rule GUI
  • add gesture params to Set rules
  • hide system tray when there are no devices to control
  • add G733 headset, G9 mouse, G502 Hero mouse
  • Use greyscale solaar icon in tray when using symbolic icons
  • Fix bugs in solaar config
  • Use classes for settings to hep with modularity
  • Accept '~' and Toggle for toggling boolean settings in cli and rules
  • handle errors when writing to devices
  • refactor to use classes for widgets
  • add rules action to set Solaar settings
  • decrease amount of logging at each debug level
  • don't stretch toggles in settings
  • use key structure for key remapping setting
  • optimize ReprogrammableKey implementation
  • keep track of settings that are absent from device
  • add G512 keyboard and G402 mouse
  • reformat
  • use feature numbers for reprogrammable key versions
  • don't use new_from_icon_set in menu as it is deprecated


25 Dec 17:30
Choose a tag to compare
  • Keep left pane in Solaar main window the same size
  • Fix crash when checking a process condition when X11 not running
  • Add version number to output of solaar show
  • Fix crash when pinging a device with unknown protocol
  • Display battery percentage estimates from battery voltage
  • Add minimal support for Logitech PRO X Wireless Gaming Headset
  • Push settings when device requests software reconfiguration
  • Fix read for key/button diversion setting
  • Add modalias information to Solaar metainfo
  • Don't do on-screen notifications when devices are powered on
  • Add setting to switch crown between smooth and ratchet scrolling
  • Add write_prefix_bytes argument to Boolean validator
  • Update Russian and Spanish translations
  • New shell script tools to help determine capabilities of receivers
  • Add special keys for MX Keys for Business and MX Keys Mini
  • Improve tray menu ordering
  • Add --tray-icon-size option to get around bugs in some tray implementations


26 Nov 17:23
Choose a tag to compare
  • Fix bug when adding receiver to tray menu
  • Add Catalan translation.
  • Add toggle command to solaar config to toggle boolean settings
  • Don't select windows with no PID when looking for focus window
  • Catch errors when applying settings so that other settings are not affected
  • Add support for Bolt receivers and devices, including pairing
  • Revise method for creating system tray menu
  • Remove obsolete code (mostly Python 2 compatability code)
  • Add support for PRO X Wireless Mouse, G914 TKL keyboard
  • Ignore more notifications that come to a device listener
  • Handle more device connection protocols
  • Update usage and rules documentation
  • Change emojis to text in documentation
  • Pare down device documentation so as not to require frequent updates
  • Add information about M500S mouse
  • Reimplment MOUSE GESTURE and DPI SLIDING settings
  • Add setting for DPI CHANGE button to switch sensitivity
  • Use file name instead of icon name for tray to avoid XFCE bug
  • Update documentation on implemented features and mouse gestures
  • Update Polish, Japanese, and Spanish translations
  • Make Quit and About strings more translatable


27 Oct 23:28
Choose a tag to compare
  • Don't use time_ns so as not to require Python 3.7
  • Correctly determine setting box in change_click method
  • Handle fake Nano connection notifications
  • Lock on actual handle, not just on handle number
  • Mark Nano receiver C52F as not unpairing
  • Upgrade pairing/unpairing documentation
  • Don't signal status change when battery changes from None to None.
  • Add Japanese translation
  • Use first word of name for code name if no other code name available.
  • Better determination of when to add SW ID.
  • Check for more HID++ feature request failing.
  • Fix bug with new_fn_inversion setting.
  • Use correct device number for directly connected devices
  • Add debug message when candidate device found
  • Update Polish, Taiwanese, and Brazilian Portugese translations
  • Add MouseProcess a rule condition like Process but for the window under the mouse
  • Add parameters for binary settings to support prefixes
  • Add locks to serialize requests to devices
  • Fix bug when reprog key requests returns None
  • Fix bug for empty process name and class
  • Rules can now trigger on both pressing and releasing a diverted key
  • Upgrade mouse gestures to allow sequences of movements
  • Fix gkeys diversion faked read
  • Add suppor for Logitech g pro x superlight receiver
  • Convert HID++ 2.0 device kinds to enhanced HID++ 1.0 device kinds
  • Update about window, bug report templates, and supported kernels.