Skip to content

Latest commit

 

History

History
811 lines (752 loc) · 36.3 KB

CHANGELOG.md

File metadata and controls

811 lines (752 loc) · 36.3 KB

1.1.13

  • Update Polish and Russian translations.
  • Fix bug in suspend and resume callback
  • Add choices universe for backlight setting
  • Add simplify diversion.py and add unit tests
  • Get and use current host number for K375sFnSwap because of bug in firmware of MX Keys S
  • Fix bug with logo in about window
  • Don't ping device just to get logging information
  • Optimize write for per-key lighting
  • Add and initialize per-key lighting to a special no-change value
  • Remove some Python 2 compatibility code
  • Update French translation
  • Refactor rule loading for testability

1.1.12

  • Check for existence of keys file before opening
  • Perform translation for all translatable strings.
  • Add included hid_parser to packages installed
  • Improve label and description for LED zone settings
  • Add message about Onboard Profiles to LED Zone settings
  • Initialize device registers to empty list
  • Use bluez dbus signals to disconnect and connect bluetooth devices
  • Handle a different signal for onboard profiles directory in ROM
  • Introduce small delay in getting pairing information to let receiver settle after pairing
  • Improve testing for settings_templates, settings, hidpp20, and device and fix small bugs found
  • Add extended adjustable DPI setting
  • Improve and extend infrastructure for testing setting_templates
  • Update Greek, Polish, Russian, and Traditional Chinese translations
  • Implement and test per-key lighting
  • Refactor and test pair_window in GUI
  • Handle situation when read of a setting fails in GUI
  • Permit continuing when a read during pushing fails
  • Fix bug in LEDZoneSetting when effect is not implemented
  • Add tests for LEDEffect structures in hidpp20
  • Handle BRIGHTNESS_CONTROL notifications
  • Add settings for BRIGHTNESS_CONTROL and RGB_EFFECTS features
  • Fix small bugs found from testing in settings
  • Use f-strings for more exceptions and log message
  • Tests for setting_templates
  • Simple change in settings to improve testability
  • Use feature_request from the device everywhere in hidpp20
  • Fix bug in backlight 2 durations
  • Replace deprecated code constructs
  • Set up test data and classes to help test HID++ interactions
  • Use pytest to test code for logitech_receiver modules
  • Align init methods for all receiver classes
  • Start refactoring of code base
  • Allow sub-second delays in Later
  • Fix bug in setting configuration cookie due to bad documentation
  • Use ruff for code styling and linting
  • Upgrade string formating to f-string
  • Document battery-icons=solaar option
  • Tell devices to delay device sending first messages until configuration is done
  • Optimize some functions in FeaturesArray
  • Fix bug in creating features array
  • Fix bug in building battery line in show
  • Refactor diversion_rules
  • Fix bug in determining tray icon
  • Fix bug in getting friendly name
  • Move status information to Device and Receiver objects
  • Add tests for get_kind_from_index and base product information
  • Update EX100 documentation
  • Use object attributes instead of dictionary in status objects
  • Create subclasses of receiver for different variants
  • Add requirement for CONFIG_HIDRAW to documentation
  • Add some low-level tests for some hidpp20 functions, profiles, and lighting and some hidpp10 tests
  • Fix app name casing in UI
  • Add missing receiver type for Lightspeed receivers
  • Add new device types
  • Refactor device and receiver instantiation
  • Simplify naming of distribution files
  • Clean up some logging code
  • Remove duplicated code to read register
  • Introduce Hidpp20 and Hidpp10 class
  • Remove unnecessary calls of del
  • Fix bug when reading BACKLIGHT setting from device
  • Replace invalid hidpp10 and hidpp20 usages
  • Use only timer thread to save config.yaml
  • Improve README
  • Copy newer version of hid_parser
  • Reorder code in settings
  • Update installation documentation
  • Add missing license blocks
  • Clean up listener and notifications code
  • Add locks to prevent multiple persisters for device
  • Clean up configuration, device, and receiver code
  • Move battery constants common to HID++ 1.0 and 2.0 to common
  • Move mapping of device kind into hidpp20
  • Move pairing information gathering to receiver
  • update contributors
  • Expand allowable profile numbers
  • Clean up init in logitech_receiver
  • Modify pre-commit args to make ruff change files
  • Fix bug in hidpp20 get host names
  • Use ruff for formatting and linting
  • Fix bug in rule Set action
  • Add notify module to logitech_receiver
  • Implement setting_changed callback and pass in to new devices and receivers
  • Add callback to call when changing a setting
  • Move exceptions, hidpp20 and hidpp10 constants into new modules
  • Streamline status code
  • Upgrade debugging in udev
  • Fix deprecated GitHub actions
  • Extend makefile and tests
  • Improve features array
  • Move ui_async to common.py
  • Improve module imports
  • Add tests of common module

1.1.11

  • Rename light icons and install them in correct place
  • Setup macOS tests using GitHub action (#2284)
  • Better checking for setting in record_setting
  • Fix invalid func name set logo name
  • Simplify installation of udev rules
  • Add document on implementation
  • Tidy up scrolling appearance in configuration panel
  • Correctly handle profile button with no action
  • Don't unlock setting when changed by external means
  • Refactor code to record change to setting
  • Add GitHub action for tests
  • Introduce tests with pytest
  • Simplify logger instantiation
  • Update label and tooltip for divert-gkeys setting
  • Don't lock setting when an error occurs
  • Catch assertion errors when reading setting values from devices
  • Support LED Zone control feature
  • Dump and load device profiles
  • Select among profiles.
  • Support backlight levels and duration
  • Use "Report Rate" instead of "Polling" for movement report rate
  • Support extended report rate setting
  • Add stable branch to release.sh (#2236)
  • Fix changelog parsing in release.sh
  • Update installation.md with new udev rules location
  • Downgrade assertion on missing notification flag to warning
  • Write empty file if there are no rules to save
  • Be defensive in device error messages
  • Add descriptions of M650, PRO X 2, G915, MX Anywhere 2S, G305, and MX Keys S
  • Report hidraw node in debugging messages
  • Add names for new Logitech features
  • Update Spanish, French, and Polish translations
  • Defend against lightspeed receivers that contact devices for basic information
  • Remove incorrect feature for M325 mice
  • Add K845 keyboard
  • Add partial support for macOS and minimal support for Windows
  • Correctly enumerate devices on receiver
  • Add wording in documentation about Logitech reusing model numbers
  • Better handling and installation of icons
  • Catch errors when pinging to try to put device online
  • Be more cautious when creating log messages to avoid exceptions
  • Correctly handle NoSuchDevice exception when pinging device
  • Fix test in rules for device equality
  • Add installation instructions for pipx and add not about other GTK system packages
  • Fix bug in NamedInt
  • Add support for MK550
  • Install udev rule files to correct placces
  • Expand expected ping responses
  • Update codename when device status changes

1.1.10

  • Add information about NixOS flake package
  • Permit bluetooth devices in hidconsole
  • Add descriptor for Logitech MX Revolution Mouse M-RCL 124
  • Improve determination for short and long messages
  • Add descriptor for G500s
  • Fix bug in scan-registers
  • Add single depress and release options for rule mouse click action
  • Add rule condition for hostname
  • Update keysym generation to current list of keysyms
  • Allow device 0 in hidconsole
  • Upgrade messages when no supported device found
  • Documentation update for the gnome extension for better Solaar rule support
  • Remove udev-acl tag from udev rules
  • Add support for process condition in Wayland
  • Update French, Chinese, and German translations
  • Add G733 Headset
  • Restore tools/clean.sh
  • Add Bluetooth Keyboard C714
  • Update several device descriptions
  • Update scan-registers.sh
  • Remove assertion on last byte of ping responses
  • Add symbolic version of solaar icon
  • Fix bug when finding name or codename
  • Update documentation
  • Put version in initial INFO logging message

1.1.9

  • Add descriptors for G535 wireless gaming headset and wireless keyboard EX110
  • Update Greek translation
  • Fix minor issues in documentation
  • Remove some deprecated GTK code
  • Use zero exit code for kill interrupts
  • Add rule Test condition for battery charging
  • Get wpid for 28Mz devices from udev when enumerating
  • Add Device condition to rules
  • Don't show wireless link or battery information when unknown or not present
  • Add desccriptor for G9x and LX7 mice
  • Fix bug in determining kind of devices for 27Mz receivers
  • Set initial lock status of smooth scrolling features to ignore
  • Fix glitch in configuration file update when changing versions
  • Add more debugging output for rules
  • Clean up pinging code
  • Put initial ping of direct-connected devices inside listener thread
  • Read and check before write of range settings
  • Improve pairing determination
  • Cut off determination of receiver devices when all have been found
  • Remove derived configuration fields when Solaar version changes
  • Allow device descriptors without name and codename
  • Filter and escape technical detail fields
  • Add setting for ADC power managemen
  • Correctly determine whether to ping with a long HID++ message
  • Add description for K470 keyboard from the MK470 combo (#1945)
  • Add setting value for mouse gestures
  • Update German and French translations
  • Remove old clean.sh and monitor.py tools
  • Retry opening device if permissions error encountered
  • Better handlling of IO errors at device creation
  • Add KeyIsDown rule condition to check whether a diverted key is down
  • Clean up device and receiver creation

1.1.8

  • Add parameter to thumb wheel rule conditions
  • Rename Serbian translation file
  • Update Polish translation
  • Improve handling of wheel notifications
  • Only record changes of scroll wheel ratchet
  • Don't mark setting as absent if there are device errors
  • More robust access to keyword exception fields
  • Add support for config change feature
  • Clean up GTK code
  • Update documentation on mouse gestures and known issues
  • Get commit information from git describe and dpkg-parsechangelog
  • Update pre-commit tools to current versions
  • Update installation instructions
  • Add 8-character commit hash to version information
  • Update solaar.desktop (#1857)
  • Get release in setup.py by reading lib/solaar/init.py
  • Remove version number from docs/_config.yml
  • Update solaar.desktop
  • Update es.po
  • Clarify status of C542 receiver
  • Update devices directory
  • Add description of several devices
  • Show name of disconnecting receiver or device in disconnect warning
  • Reduce standard size of rule editor window
  • Remove unnecessary dependency on typing_extensions

1.1.7

  • Add dependency on typing_extension to setup.py
  • 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

1.1.6

  • 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

1.1.5

  • 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

1.1.4

  • 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.

1.1.3

  • 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, ...).

1.1.2

  • 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
  • Configuration 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 config_panel.py 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 descriptors.py
  • use feature numbers for reprogrammable key versions
  • don't use new_from_icon_set in menu as it is deprecated

1.1.1

  • 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

1.1.0

  • 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 compatibility 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
  • Reimplement 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

1.0.7

  • 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 Portuguese 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 support 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.

1.0.6

  • Update sliding DPI to look for suitable keys
  • Add mouse gestures that can trigger rules
  • Complain if receivers do not support connection notification
  • In polling rate setting, only modify onboard profiles when actually writing polling rate
  • Add ability to ignore settings.
  • Use symbols for receiver sub-registers
  • Add support for wired G700
  • Do not set attention icon
  • Replace deprecated GTK stock menu icons
  • Better handling of icons in tray and tray menus
  • Receiver c52e does not unpair
  • Match active WM_CLASS as well as active process name in rules
  • Correctly set icon theme value when regular battery icons are not available
  • Handle exception when device is not available when device is being added
  • Perform initial activation of devices in listener threads
  • Keep track of serial numbers in the configuration file
  • Don't update settings for non-active devices
  • Set the current host name if not stored on the device
  • Add setting for SMART SHIFT ENHANCED feature
  • Don't unnecessarily use long messages for HID++ 1.0 commands
  • Correctly select choices in solaar config and use 1-origin addressing
  • Add quirk for G915 TKL keyboard because its host mode interferes with its Fn keys
  • Show command outputs both saved and on-device settings
  • Update documentation
  • Fix bug in hidconsole
  • Update French translation

1.0.5

  • Update documentation on devices forgetting settings.
  • Improve help messages
  • Fix bug in finding receiver to pair
  • Solaar config command can set keyed settings.
  • Add setting for polling rate
  • Use long HID++ messages for all 2.0 requests
  • Update German, Italian, and Polish translations
  • Solaar config command no longer selects paired but unconnected devices
  • Show HID++ 1.0 remaining pairings value in solaar show for devices that support it
  • Add option to not use battery icons in system tray.
  • Update Polish and Dutch translation.
  • Add Czech translation.
  • Remove information on SUSE package as it is very old.
  • Turn GKEY notifications into Gn key keypresses that can trigger rules.
  • Push device settings to devices after suspend when device is immediately active.
  • Reduce unnecessary saving of configuration file.
  • Better handling of disconnected devices.
  • Implement GUI to edit rules.
  • Implement rule-base processing of HID++ feature notifications (depends on X11).
  • Add settings for diversion of crown and remappable keys.
  • Access widgets by name instead of by index.
  • Implement UNIFIED_BATTERY feature and use in battery reports.
  • Add a clickable lock icon that determines where each setting can be changed.

1.0.4

  • Update pt_BR translation
  • Support USB and BT connected devices that are not in descriptors.py
  • Use FRIENDLY NAME for codename if needed and available.
  • Extract manufacturer and product ID from Udev HID information.
  • Add Bluetooth and USB product IDs to device descriptors records.
  • Support Bluetooth-connected devices.
  • Add model ID and unit ID to device identification.
  • Support changing DPI by pressing DPI Switch button and sliding horizontally
  • Add device-specific notification handlers.
  • Add MX Vertical USB information.
  • Udev rule adds seat permissions for all Logitech devices.
  • Support USB-connected devices in GUI.
  • Make probe and config work for USB-connected devices.
  • Improve strings and display for settings.
  • Correctly handle non-unifying connection notifications.
  • Update GUI strings for several settings.
  • Better support for EX100 and devices that connect to it.
  • Partial support for feature GESTURE_2.
  • Simplify interface for settings.
  • Use DJ connection notifications to set device active status
  • Udev rule sets seat write permissions for hidraw nodes for device as well as receivers.
  • Handle USB devices that use HID++ protocol in CLI.
  • Use device hidraw nodes where possible.
  • Handle receivers with serial numbers that don't provide number of pairings.
  • Ignore exceptions when setting locale.
  • Correctly discover settings that share a name.
  • Don't show pop-up notifications at startup.
  • Keep battery voltage updated in GUI.
  • Add Portuguese translation.
  • Update several translations.
  • Add Lightspeed receivers c545 and c541.
  • Reimplement REPROG_CONTROLS data structure.

1.0.3

  • Clean up documentation files.
  • Update documentation on installation.
  • Update Swedish and French translations.
  • Add Norwegian Nynorsk and Danish translations.
  • Fix bug handling DJ pairing notifications.
  • Add Norwegian Bokmål translation.
  • Remove deprecated solaar-cli application.
  • Don't install udev or autostart files from python (or pip).
  • Solaar needs Python 3.6+ and probably needs kernel 5.2+
  • Handle exceptions on dynamic settings when device is not connected.
  • Fix infinite loop on some low-level write errors
  • Add support for EX100 keyboard/mouse and receiver (046d:c517)
  • Add two settings for THUMB_WHEEL feature - inversion and reporting via HID++
  • Update German translation
  • Use REPORT RATE feature when available to determine polling rate.
  • Improve config command speed when not printing all settings
  • Improve config command handling and checking of arguments
  • Add setting for CHANGE_HOST feature
  • Add argument to settings for values that are not to persist
  • Add argument to settings to not wait for reply when writing a value to device
  • Add argument to not wait for reply from request to device
  • Add settings for MULTIPLATFORM and DUALPLATFORM features
  • Remove Logitech documents from documentation directory
  • Change config command to not read all settings when only printing or showing one
  • Display hosts info in 'solaar show' if device supports it
  • Remove non-working smooth-scroll from M510 v1
  • Add yapf and flake8 code style checks
  • Fix feature k375s Fn inversion
  • Update controls (keys and buttons) and tasks (actions)
  • Improved way to specify feature settings.
  • Don't abort on device notifications with unexpected device numbers, just warn.
  • Keep track of non-features so as not to ask device multiple times.
  • Implement KEYBOARD DISABLE KEYS feature.
  • Don't create notifications for DJ device activity reports.
  • Update a few special keys and actions.
  • Add keyed choice settings in configuration panel.
  • Support remappable keys from reprogrammable keys v4 feature.
  • Add setting class for keyed choice.
  • Only check for features once per device.
  • Use settings interface to show feature values in solaar show if no special code for feature.
  • Remove maximum window size.
  • Process battery voltage notifications.
  • Display battery voltage information in main window if regular battery information not available.
  • Show next battery level where available.
  • Update list of implemented features and provide information on how to implement features.
  • Add c53d as a Lightspeed receiver.

1.0.2

  • Add usage document
  • Don't produce error dialog for inaccessible receivers with access control lists.
  • Add option --battery-icons=symbolic to use symbolic icons if available.
  • Update French translation
  • Update installation documentation
  • Remove packaging directory tree as it is not maintained
  • Pip installs udev rule and solaar autostart when doing install without --user flag
  • Use Solaar icon instead of a missing battery icon
  • Use only standard icons for battery levels. Symbolic icons do not change to white in dark themes because of problems external to Solaar.
  • Better reporting of battery levels when charging for some devices.
  • Add information on K600 TV, M350 WIPD 4080, and MX Keys
  • Remove assertion requiring receivers to still be in window when they are updated.
  • Augment long description of Solaar showing up in repositories.
  • Update installation directions.
  • Install udev rule as well as autostart file when doing system install.
  • Add support for Ayatana AppIndicator.
  • Use setuptools icon directory on system installs when not using pip.
  • Add receiver C517 and several older devices.
  • Improved translations for polish.
  • Bypass bug in appindicator when solaar is file in current directory.
  • Don't check that device kind matches feature kind.
  • Better determination of icons for battery levels.
  • Use Ayatana AppIndicator if available.
  • Improve error reporting when required system packages are not install.
  • Better tooltip description
  • Add release script to help when creating releases
  • Look up tray icon filenames to get around a bug in libappindicator.
  • Make the default behavior be to show the main window at startup.
  • Support c537 nano receiver
  • Add logind signals for suspend/resume.
  • Remove solaar-gnome3 package
  • Ignore features for devices that don't follow feature specification
  • Add probe command to command-line interface to dump receiver registers
  • Don't terminate on malformed or unknown messages
  • Create fewer internal notifications for messages from devices
  • Add a button to the main window to terminate (quit) Solaar
  • Set up nano receivers as receivers with no unpairing and with re-pairing
  • Set up c534 as receiver with max 2 pairings, no unpairing, re-pairing
  • Better support receivers that do not unpair or when pairing replace existing pairings
  • Add information about receiver pairing to receiver data structure
  • Better support devices that only allow a limited number of total re-pairings
  • Add --window option to control main window visibility and tray usage
  • Ignore receiver if USB id is not retrieved
  • Fix bug with double deleting when devices are disconnected
  • Determine some receiver information from data structure for USB ids
  • Treat battery level of 0 as unknown
  • Fix bug on devices with no serial number
  • Drop support for python2, and use python3 throughout
  • Fix bug in remembering features discovered from device reports
  • Show icons in main window device list
  • Count offline devices when determining whether pairing is possible
  • Update French, Dutch, German, and Croatian translations
  • Better icons for battery levels
  • Support DPI, Backlight 2, Battery Voltage features
  • Support M585, M590, M330, MX Master 2s and 3, new M310, new K800, craft keyboard
  • Documentation improvements
  • Clean up directory structure and remove unused files

1.0.1

  • Updated the repo url.
  • Fixed typo which was crashing the application.
  • Improved the HID write routine which was causing issues on some devices.
  • Fix non-unifying receivers in Linux 5.2.
  • Add new Lightspeed receiver (used in the G305)

1.0.0

  • Too many to track...

0.9.3

  • Merged solaar-cli functionality into main solaar.
  • Scrolling over the systray icon switches between multiple peripherals.
  • Swedish translation courtesy of Daniel Zippert and Emelie Snecker
  • French translation courtesy of Papoteur, David Geiger and Damien Lallement.
  • Fixed some untranslated strings.

0.9.2

  • Added support for hand detection on the K800.
  • Added support for V550 and V450 Nano.
  • Fixed side-scrolling with the M705 Marathon.
  • Fixed identification of the T650 Touchpad.
  • Added internationalization support and romanian translation.
  • Polish translation courtesy of Adrian Piotrowicz.

0.9.1

  • When devices report a battery alert, only show the alert once.
  • Make sure devices in the window tree are sorted by registration index.
  • Added an autostart .desktop file.
  • Replaced single-instance code with GtkApplication.
  • Fixed identification of the M505 mouse.
  • Fixed an occasional windowing layout bug with the C52F Nano Receiver.

0.9.0

  • New single-window UI.
  • Performance MX leds show the current battery charge.
  • Support the VX Nano mouse.
  • Faster and more accurate detection of devices.
  • If upower is accessible through DBus, handle suspend/resume.
  • Replaced Solaar icons with SVGs.
  • Running solaar-cli in parallel with solaar is now less likely to cause issues.
  • Bugfixes to saving and applying device settings.
  • Properly handle ^C when running in console.

0.8.9

  • Improved support for gnome-shell/Unity.
  • Persist devices settings between runs.
  • Fixed reading of MK700 keyboard battery status.
  • Use battery icons from the current theme instead of custom ones.
  • Debian/Ubuntu packages now depend on an icon theme, to make sure no missing icons appear in the application window.
  • Fixed missing icons under Kubuntu.
  • Many more bug-fixes and reliability improvements.

0.8.8

  • Partial support for some Nano receivers.
  • Improved support for some devices: M510, K800, Performance MX.
  • Improved battery support for some HID++ 1.0 devices.
  • Properly handle device loss on computer sleep/wake.
  • Better handling of receiver adding and removal at runtime.
  • Removed a few more unhelpful notifications.
  • Incipient support for multiple connected receivers.
  • More Python 3 fixes.

0.8.7

  • Don't show the "device disconnected" notification, it can be annoying and not very useful.
  • More robust detection of systray icon visibility.

0.8.6

  • Ensure the Gtk application is single-instance.
  • Fix identifying available dpi values.
  • Fixed locating application icons when installed in a custom prefix.
  • Fixed some icon names for the oxygen theme.
  • Python 3 fixes.