From ee1bd06f64b6109e0795d3d1abd3699a6fa8ac9c Mon Sep 17 00:00:00 2001 From: "Peter F. Patel-Schneider" Date: Sun, 10 Jul 2022 11:11:47 -0400 Subject: [PATCH] release 1.1.5rc1 --- ChangeLog.md | 43 +++++ Release_Notes.md | 13 ++ docs/_config.yml | 2 +- docs/devices/MX Mechanical Mini B367.txt | 168 ++++++++++++++++++ docs/index.md | 14 +- lib/solaar/__init__.py | 2 +- setup.py | 2 +- .../io.github.pwr_solaar.solaar.metainfo.xml | 1 + 8 files changed, 239 insertions(+), 6 deletions(-) create mode 100644 docs/devices/MX Mechanical Mini B367.txt diff --git a/ChangeLog.md b/ChangeLog.md index d7476608..05621fcb 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -1,3 +1,46 @@ +# 1.1.5rc1 + +* Update Turkish translation +* 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 diff --git a/Release_Notes.md b/Release_Notes.md index 9d71d5a6..307b174b 100644 --- a/Release_Notes.md +++ b/Release_Notes.md @@ -1,5 +1,18 @@ # Notes on Major Changes in Releases +## Version 1.1.5 + +* The Active rule condition takes the serial number or unitID of a device and checks whether the device is active. A device is active if it is connected (via a receiver, USB or Bluetooth), not turned off, and not in a power-saving state. This condition can be used to check whether changing a setting on the device will have any effect, as devices respond to messages only when active. + +* Solaar logs warnings and errors to a file in the user's temporary file directory. This file is deleted when Solaar exists normally. If Solaar is run with `-dd` or `-ddd` informational messages are also logged in the file. + +* If the first element of a Mouse Gesture rule condition is a key or button name then that name must be the same as the name of the key or button that initiated the mouse gesture. + +* The Sliding DPI and Mouse Gestures are now set up using the Key/Button Diversion setting. Changing a key or button to Sliding DPI makes it initiate the sliding DPI changing. Changing a key or button to Mouse Gestures makes it initiate a mouse gesture. There can be multiple keys or buttons for sliding DPI and multiple keys or buttons for mouse gestures. + +* Solaar waits a few seconds to save settings changes to its configuration file. If you interrupt Solaar soon after changing a setting the change might not be saved. + + ## Version 1.1.4 * There are settings for sidetone and equalizer gains for headsets. diff --git a/docs/_config.yml b/docs/_config.yml index d6616a15..3bfca099 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -4,7 +4,7 @@ tagline: Linux Device Manager for Logitech Unifying Receivers and Devices. owner: pwr-Solaar owner_url: https://github.com/pwr-Solaar repository: pwr-Solaar/Solaar -version: 1.1.4 +version: 1.1.5rc1 show_downloads: false encoding: utf-8 theme: jekyll-theme-slate diff --git a/docs/devices/MX Mechanical Mini B367.txt b/docs/devices/MX Mechanical Mini B367.txt new file mode 100644 index 00000000..13859fbb --- /dev/null +++ b/docs/devices/MX Mechanical Mini B367.txt @@ -0,0 +1,168 @@ +Solaar version 1.1.4 + + 1: MX Mechanical Mini + Device path : None + WPID : B367 + Codename : MX MCHNCL M + Kind : keyboard + Protocol : HID++ 4.5 + Serial number: D4E94F5C + Model ID: B36700000000 + Unit ID: D4E94F5C + Bootloader: BL1 50.00.B0010 + Firmware: RBK 72.00.B0010 + Other: + The power switch is located on the (unknown). + Supports 32 HID++ 2.0 features: + 0: ROOT {0000} V0 + 1: FEATURE SET {0001} V0 + 2: DEVICE FW VERSION {0003} V4 + Firmware: Bootloader BL1 50.00.B0010 B367A91B7FC8 + Firmware: Firmware RBK 72.00.B0010 B367A91B7FC8 + Firmware: Other + Unit ID: D4E94F5C Model ID: B36700000000 Transport IDs: {'btleid': 'B367'} + 3: DEVICE NAME {0005} V0 + Name: MX Mechanical Mini + Kind: keyboard + 4: WIRELESS DEVICE STATUS {1D4B} V0 + 5: RESET {0020} V0 + 6: DEVICE FRIENDLY NAME {0007} V0 + Friendly Name: MX MCHNCL M + 7: UNIFIED BATTERY {1004} V3 + Battery: 90%, discharging. + 8: REPROG CONTROLS V4 {1B04} V5 + Key/Button Diversion (saved): {MultiPlatform Search:Regular, Backlight Down:Regular, Backlight Up:Regular, Mute Fn:Regular, Volume Down Fn:Regular, Volume Up Fn:Regular, Voice Dictation:Regular, Open Emoji Panel:Regular, Snipping Tool:Regular, Grave Accent:Regular, Tab Key:Regular, Caps Lock:Regular, Left Shift:Regular, Left Control:Regular, Left Option/Start:Regular, Left Command/Alt:Regular, Right Command/Alt:Regular, Right Shift:Regular, Delete:Regular, Home:Regular, End:Regular, Page Up:Regular, Page Down:Regular, Mute Microphone:Regular, Backslash:Regular, unknown:013C:Regular, unknown:0141:Regular} + Key/Button Diversion : {MultiPlatform Search:Regular, Backlight Down:Regular, Backlight Up:Regular, Mute Fn:Regular, Volume Down Fn:Regular, Volume Up Fn:Regular, Voice Dictation:Regular, Open Emoji Panel:Regular, Snipping Tool:Regular, Grave Accent:Regular, Tab Key:Regular, Caps Lock:Regular, Left Shift:Regular, Left Control:Regular, Left Option/Start:Regular, Left Command/Alt:Regular, Right Command/Alt:Regular, Right Shift:Regular, Delete:Regular, Home:Regular, End:Regular, Page Up:Regular, Page Down:Regular, Mute Microphone:Regular, Backslash:Regular, unknown:013C:Regular, unknown:0141:Regular} + 9: CHANGE HOST {1814} V1 + Change Host : 1:chimera + 10: HOSTS INFO {1815} V2 + Host 0 (paired): chimera + Host 1 (paired): Logitech Bolt receiver + Host 2 (unpaired): + 11: BACKLIGHT2 {1982} V2 + Backlight (saved): True + Backlight : True + 12: K375S FN INVERSION {40A3} V0 + Swap Fx function (saved): True + Swap Fx function : True + 13: LOCK KEY STATE {4220} V0 + 14: KEYBOARD DISABLE KEYS {4521} V0 + Disable keys (saved): {Caps Lock:False, Scroll Lock:False, Insert:False, Win:False} + Disable keys : {Caps Lock:False, Scroll Lock:False, Insert:False, Win:False} + 15: MULTIPLATFORM {4531} V1 + Set OS (saved): Windows + Set OS : Windows + 16: KEYBOARD LAYOUT 2 {4540} V0 + 17: DFUCONTROL {00C3} V0 + 18: DEVICE RESET {1802} V0 internal, hidden, unknown:000010 + 19: unknown:1803 {1803} V0 internal, hidden, unknown:000010 + 20: CONFIG DEVICE PROPS {1806} V8 internal, hidden, unknown:000010 + 21: unknown:1816 {1816} V0 internal, hidden, unknown:000010 + 22: OOBSTATE {1805} V0 internal, hidden + 23: unknown:1830 {1830} V0 internal, hidden, unknown:000010 + 24: unknown:1891 {1891} V7 internal, hidden, unknown:000008 + 25: unknown:18A1 {18A1} V0 internal, hidden, unknown:000010 + 26: unknown:1E00 {1E00} V0 hidden + 27: unknown:1E02 {1E02} V0 internal, hidden + 28: unknown:1602 {1602} V0 + 29: unknown:1EB0 {1EB0} V0 internal, hidden, unknown:000010 + 30: unknown:1861 {1861} V1 internal, hidden, unknown:000010 + 31: unknown:1A20 {1A20} V0 internal, hidden, unknown:000010 + Has 32 reprogrammable keys: + 0: Host Switch Channel 1 , default: HostSwitch Channel 1 => HostSwitch Channel 1 + is FN, FN sensitive, analytics key events, pos:1, group:0, group mask:empty + reporting: default + 1: Host Switch Channel 2 , default: HostSwitch Channel 2 => HostSwitch Channel 2 + is FN, FN sensitive, analytics key events, pos:2, group:0, group mask:empty + reporting: default + 2: Host Switch Channel 3 , default: HostSwitch Channel 3 => HostSwitch Channel 3 + is FN, FN sensitive, analytics key events, pos:3, group:0, group mask:empty + reporting: default + 3: Backlight Down , default: Backlight Down => Backlight Down + is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:4, group:0, group mask:empty + reporting: default + 4: Backlight Up , default: Backlight Up => Backlight Up + is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:5, group:0, group mask:empty + reporting: default + 5: Voice Dictation , default: Voice Dictation => Voice Dictation + is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:6, group:0, group mask:empty + reporting: default + 6: Open Emoji Panel , default: Open Emoji Panel => Open Emoji Panel + is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:7, group:0, group mask:empty + reporting: default + 7: Snipping Tool , default: Snipping Tool => Snipping Tool + is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:8, group:0, group mask:empty + reporting: default + 8: Mute Microphone , default: Mute Microphone => Mute Microphone + is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:9, group:0, group mask:empty + reporting: default + 9: MultiPlatform Search , default: Multiplatform Search => Multiplatform Search + is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:10, group:0, group mask:empty + reporting: default + 10: unknown:0141 , default: unknown:00FD => unknown:00FD + is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:11, group:0, group mask:empty + reporting: default + 11: Mute Fn , default: Mute => Mute + is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:12, group:0, group mask:empty + reporting: default + 12: Volume Down Fn , default: Volume Down => Volume Down + nonstandard, reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty + reporting: default + 13: Volume Up Fn , default: Volume Up => Volume Up + nonstandard, reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty + reporting: default + 14: Grave Accent , default: Grave Accent => Grave Accent + reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty + reporting: default + 15: Tab Key , default: Standard Tab Key => Standard Tab Key + reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty + reporting: default + 16: Caps Lock , default: Caps Lock => Caps Lock + reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty + reporting: default + 17: Left Shift , default: Left Shift => Left Shift + reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty + reporting: default + 18: Left Control , default: Left Control => Left Control + reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty + reporting: default + 19: Left Option/Start , default: Left Option/Start => Left Option/Start + reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty + reporting: default + 20: Left Command/Alt , default: Left Command/Alt => Left Command/Alt + reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty + reporting: default + 21: Right Command/Alt , default: Right Command/Alt => Right Command/Alt + reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty + reporting: default + 22: unknown:013C , default: Right Option/Start/2 => Right Option/Start/2 + reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty + reporting: default + 23: Right Shift , default: Right Shift => Right Shift + reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty + reporting: default + 24: Backslash , default: Backslash => Backslash + reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty + reporting: default + 25: Delete , default: Delete => Delete + reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty + reporting: default + 26: Home , default: Home => Home + reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty + reporting: default + 27: End , default: End => End + reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty + reporting: default + 28: Page Up , default: Page Up => Page Up + reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty + reporting: default + 29: Page Down , default: Page Down => Page Down + reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty + reporting: default + 30: F Lock , default: Do Nothing One => Do Nothing One + is FN, analytics key events, pos:0, group:0, group mask:empty + reporting: default + 31: FN Key , default: Do Nothing One => Do Nothing One + nonstandard, analytics key events, pos:0, group:0, group mask:empty + reporting: default + Battery: 90%, discharging. diff --git a/docs/index.md b/docs/index.md index 4d5e4c77..b6a65c96 100644 --- a/docs/index.md +++ b/docs/index.md @@ -138,13 +138,21 @@ for the step-by-step procedure for manual installation. in some system tray implementations. Changing to a different theme may help. The `--battery-icons=symbolic` option can be used to force symbolic icons. -- Some Linux drivers view or modify the setting Scroll Wheel Resolution to - implement smooth scrolling. If Solaar changes this setting after the driver is - set up scrolling can be either very fast or very slow. To fix this problem +- The Linux HID++ driver modifies the setting Scroll Wheel Resolution to + implement smooth scrolling. If Solaar later changes this setting scrolling + can be either very fast or very slow. To fix this problem click on the icon at the right edge of the setting to set it to "Ignore this setting". The mouse has to be reset (e.g., by turning it off and on again) before this fix will take effect. +- The driver also sets the scrolling direction to its normal setting when implementing smooth scrolling. + This can interfere with the Scroll Wheel Direction setting, requiring flipping this setting back and forth + to restore reversed scrolling. + +- The driver sends messages to devices that do not conform with the Logitech HID++ specification + resulting in reponses being sent back that look like other messages. For some devices this causes + Solaar to report incorrect battery levels. + - Many gaming mice and keyboards have the ONBOARD PROFILES feature. This feature can override other features, including polling rate and key lighting. To make the Polling Rate and M-Key LEDs settings effective the Onboard Profiles setting has to be disabled. diff --git a/lib/solaar/__init__.py b/lib/solaar/__init__.py index 32f30206..0ef9c801 100644 --- a/lib/solaar/__init__.py +++ b/lib/solaar/__init__.py @@ -16,5 +16,5 @@ ## with this program; if not, write to the Free Software Foundation, Inc., ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -__version__ = '1.1.4' +__version__ = '1.1.5rc1' NAME = 'Solaar' diff --git a/setup.py b/setup.py index 8df5db01..139110f9 100755 --- a/setup.py +++ b/setup.py @@ -8,7 +8,7 @@ except ImportError: from distutils.core import setup # from solaar import NAME, __version__ -__version__ = '1.1.4' +__version__ = '1.1.5rc1' NAME = 'Solaar' diff --git a/share/solaar/io.github.pwr_solaar.solaar.metainfo.xml b/share/solaar/io.github.pwr_solaar.solaar.metainfo.xml index fdad848f..bbf55d01 100644 --- a/share/solaar/io.github.pwr_solaar.solaar.metainfo.xml +++ b/share/solaar/io.github.pwr_solaar.solaar.metainfo.xml @@ -44,6 +44,7 @@ +