Logitech Craft, assertion failed on `solaar show`
Created by: domschl
Information
- Solaar version (
solaar --version
orgit describe --tags
if cloned from this repository): - Distribution:
- Kernel version (ex.
uname -srmo
):KERNEL VERSION HERE
- Output of
solaar show
:
Version 1.1.4rc1 Arch linux Linux 5.18.7-arch1-1 x86_64 GNU/Linux
Solaar version 1.1.4rc1
Unifying Empfänger
Device path : /dev/hidraw0
USB id : 046d:C52B
Serial : B8AF9FCD
Firmware : 12.11.B0032
Bootloader : 04.16
Other : AA.AA
Has 2 paired device(s) out of a maximum of 6.
Notifications: wireless, software present (0x000900)
Device activity counters: 1=159, 2=12
1: Craft Advanced Keyboard
Device path : /dev/hidraw2
WPID : 4066
Codename : Craft
Kind : keyboard
Protocol : HID++ 4.5
Polling rate : 12 ms (83Hz)
Serial number: 9691EB9D
Model ID: B35040660000
Unit ID: 364AAB0D
Bootloader: BOT 41.00.B0014
Firmware: MPK 07.02.B0021
Other:
Other:
The power switch is located on the edge of top right corner.
Supports 38 HID++ 2.0 features:
0: ROOT {0000}
1: FEATURE SET {0001}
2: DEVICE FW VERSION {0003}
Firmware: Bootloader BOT 41.00.B0014 000012B69E92
Firmware: Firmware MPK 07.02.B0021 4066F5471FE1
Firmware: Other
Firmware: Other
Unit ID: 364AAB0D Model ID: B35040660000 Transport IDs: {'btleid': 'B350', 'wpid': '4066'}
3: DEVICE NAME {0005}
Name: Craft Advanced Keyboard
Kind: keyboard
4: WIRELESS DEVICE STATUS {1D4B}
5: RESET {0020}
6: DEVICE FRIENDLY NAME {0007}
Friendly Name: Keyboard Craft
7: BATTERY STATUS {1000}
Battery: N/A, full, next level 0%.
8: CHANGE HOST {1814}
Anderen Empfänger wählen : 2:nineveh
9: HOSTS INFO {1815}
Host 0 (paired): m1mini
Host 1 (paired): nineveh
Host 2 (paired): Dominik’s Mac mini
10: BACKLIGHT2 {1982}
Hintergrundbeleuchtung (saved): True
Hintergrundbeleuchtung : True
11: REPROG CONTROLS V4 {1B04}
Taste/Maustaste umleiten (saved): {Calculator:Normal, Show Desktop:Normal, Lock PC:Normal, Screen Capture/Print Screen:Normal, Brightness Down:Normal, Brightness Up:Normal, Host Switch Channel 1:Normal, Host Switch Channel 2:Normal, Host Switch Channel 3:Normal, Mission Control/Task View:Normal, Backlight Down:Normal, Backlight Up:Normal, Previous Fn:Normal, Play/Pause Fn:Normal, Next Fn:Normal, Mute Fn:Normal, Volume Down Fn:Normal, Volume Up Fn:Normal, App Contextual Menu/Right Click:Normal, Right Arrow:Normal, Left Arrow:Normal, Multiplatform App Switch/Show Dashboard:Normal}
Taste/Maustaste umleiten : {Calculator:Normal, Show Desktop:Normal, Lock PC:Normal, Screen Capture/Print Screen:Normal, Brightness Down:Normal, Brightness Up:Normal, Host Switch Channel 1:Normal, Host Switch Channel 2:Normal, Host Switch Channel 3:Normal, Mission Control/Task View:Normal, Backlight Down:Normal, Backlight Up:Normal, Previous Fn:Normal, Play/Pause Fn:Normal, Next Fn:Normal, Mute Fn:Normal, Volume Down Fn:Normal, Volume Up Fn:Normal, App Contextual Menu/Right Click:Normal, Right Arrow:Normal, Left Arrow:Normal, Multiplatform App Switch/Show Dashboard:Normal}
12: PERSISTENT REMAPPABLE ACTION {1C00}
solaar: assertion failed: /usr/lib/python3.10/site-packages/logitech_receiver/settings.py line 1099
- Contents of
~/.config/solaar/config.yaml
(or~/.config/solaar/config.json
if~/.config/solaar/config.yaml
not present):
cat ~/.config/solaar/config.yaml
- 1.1.4rc1
- _NAME: Craft Advanced Keyboard
_absent: [hi-res-scroll, lowres-scroll-mode, hires-smooth-invert, hires-smooth-resolution, hires-scroll-mode, smart-shift, thumb-scroll-mode, thumb-scroll-invert,
onboard_profiles, report_rate, pointer_speed, dpi, dpi-sliding, speed-change, mouse-gestures, backlight-timed, reprogrammable-keys, divert-gkeys, m-key-leds,
mr-key-led, gesture2-gestures, gesture2-divert, gesture2-params, sidetone, equalizer]
_modelId: B35040660000
_sensitive: {backlight: true, crown-smooth: false, disable-keyboard-keys: true, divert-crown: true, fn-swap: false, multiplatform: false, persistent-remappable-keys: false}
_serial: 9691EB9D
_unitId: 364AAB0D
_wpid: '4066'
backlight: true
change-host: null
crown-smooth: true
disable-keyboard-keys: {1: false, 2: false, 4: false, 8: false, 16: false}
divert-crown: false
divert-keys: {10: 0, 110: 0, 111: 0, 191: 0, 199: 0, 200: 0, 209: 0, 210: 0, 211: 0, 224: 0, 226: 0, 227: 0, 228: 0, 229: 0, 230: 0, 231: 0, 232: 0, 233: 0,
234: 0, 235: 0, 236: 0, 255: 0}
fn-swap: true
multiplatform: 1
persistent-remappable-keys: null
- _NAME: MX Master 3 Wireless Mouse
_absent: [hi-res-scroll, lowres-scroll-mode, onboard_profiles, report_rate, pointer_speed, speed-change, backlight, backlight-timed, fn-swap, persistent-remappable-keys,
disable-keyboard-keys, divert-crown, crown-smooth, divert-gkeys, m-key-leds, mr-key-led, multiplatform, gesture2-gestures, gesture2-divert, gesture2-params,
sidetone, equalizer]
_modelId: B02340820000
_sensitive: {hires-smooth-invert: true, hires-smooth-resolution: false, thumb-scroll-invert: false}
_serial: EE1951FB
_unitId: EE1951FB
_wpid: '4082'
change-host: null
divert-keys: {82: 0, 83: 0, 86: 0, 195: 0, 196: 0}
dpi: 1000
dpi-sliding: 0
hires-scroll-mode: false
hires-smooth-invert: true
hires-smooth-resolution: true
mouse-gestures: 0
reprogrammable-keys: {80: 80, 81: 81, 82: 82, 83: 83, 86: 86, 195: 195, 196: 196}
smart-shift: 0
thumb-scroll-invert: false
thumb-scroll-mode: false
- Errors or warrnings from Solaar:
Crash-log:
solaar -dd
10:03:49,902 INFO [MainThread] root: language en_US (UTF-8), translations path /usr/share/locale
(solaar:221766): Gtk-WARNING **: 10:03:49.993: Locale not supported by C library.
Using the fallback 'C' locale.
10:03:50,085 INFO [MainThread] logitech_receiver.diversion: GDK Keymap set up
10:03:50,085 WARNING [MainThread] logitech_receiver.diversion: rules cannot access active process or modifier keys in Wayland
10:03:50,187 INFO [MainThread] logitech_receiver.diversion: uinput device set up
10:03:50,205 INFO [MainThread] solaar.upower: connected to system dbus, watching for suspend/resume events
10:03:50,227 INFO [MainThread] solaar.ui.notify: starting desktop notifications
10:03:50,267 INFO [MainThread] solaar.listener: starting receiver listening threads
10:03:50,272 INFO [MainThread] solaar.listener: receiver event add DeviceInfo(path='/dev/hidraw0', vendor_id='046D', product_id='C52B', serial='', release=None, manufacturer=None, product=None, interface=2, driver='logitech-djreceiver', bus_id=3, isDevice=None)
10:03:50,272 INFO [MainThread] logitech_receiver.base: New lock 16
10:03:50,376 INFO [ReceiverListener:hidraw0] logitech_receiver.listener: started with <UnifyingEmpfänger(/dev/hidraw0,16)> (16)
10:03:50,376 INFO [ReceiverListener:hidraw0] solaar.listener: <UnifyingEmpfänger(/dev/hidraw0,16)>: notifications listener has started (16)
10:03:50,376 INFO [ReceiverListener:hidraw0] logitech_receiver.base: New lock <_ThreadedHandle(/dev/hidraw0)>
10:03:50,380 INFO [ReceiverListener:hidraw0] logitech_receiver.receiver: <UnifyingEmpfänger(/dev/hidraw0,16)>: receiver notifications enabled => ('wireless', 'software present')
10:03:50,386 INFO [ReceiverListener:hidraw0] solaar.listener: status_changed <UnifyingEmpfänger(/dev/hidraw0,16)>: present, Keine gekoppelten Geräte. (0)
10:03:50,393 INFO [ReceiverListener:hidraw0] logitech_receiver.receiver: <UnifyingEmpfänger(/dev/hidraw0,16)>: found new device 1 (4066)
10:03:50,393 INFO [ReceiverListener:hidraw0] solaar.listener: connection Notification(10,1,41,04,316640) for <Device(1,4066,Craft Advanced Keyboard,9691EB9D)> (keyboard)
10:03:50,396 INFO [ReceiverListener:hidraw0] solaar.listener: status_changed <UnifyingEmpfänger(/dev/hidraw0,16)>: present, 1 gekoppeltes Gerät. (0)
10:03:50,396 INFO [ReceiverListener:hidraw0] logitech_receiver.base: New lock 19
10:03:50,494 INFO [ReceiverListener:hidraw0] solaar.listener: status_changed <Device(1,4066,Craft Advanced Keyboard,9691EB9D)>: paired online, {'LINK ENCRYPTED': True, 'BATTERY LEVEL': NamedInt(90, 'full'), 'BATTERY STATUS': NamedInt(3, 'full'), 'BATTERY NEXT LEVEL': 0, 'BATTERY VOLTAGE': None, 'BATTERY CHARGING': True, 'ERROR': None} (0)
10:03:50,542 INFO [ReceiverListener:hidraw0] logitech_receiver.device: <Device(1,4066,Craft Advanced Keyboard,9691EB9D)>: unitId 364AAB0D does not match serial 9691EB9D
10:03:52,646 INFO [ReceiverListener:hidraw0] logitech_receiver.status: <Device(1,4066,Craft Advanced Keyboard,9691EB9D)> pushing device settings [<Setting([Feature:toggle] Craft:backlight=None)>, <Setting([Feature:toggle] Craft:fn-swap=None)>, <Setting([Feature:map choice] Craft:persistent-remappable-keys=None)>, <Setting([Feature:map choice] Craft:divert-keys=None)>, <Setting([Feature:multiple toggle] Craft:disable-keyboard-keys=None)>, <Setting([Feature:toggle] Craft:crown-smooth=None)>, <Setting([Feature:toggle] Craft:divert-crown=None)>, <Setting([Feature:choice] Craft:multiplatform=None)>, <Setting([Feature:choice] Craft:change-host=None)>]
10:03:52,694 ERROR [ReceiverListener:hidraw0] logitech_receiver.listener: processing Notification(10,1,41,04,316640)
Traceback (most recent call last):
File "/usr/lib/python3.10/site-packages/logitech_receiver/listener.py", line 188, in run
self._notifications_callback(n)
File "/usr/lib/python3.10/site-packages/solaar/listener.py", line 264, in _notifications_handler
_notifications.process(dev, n)
File "/usr/lib/python3.10/site-packages/logitech_receiver/notifications.py", line 60, in process
return _process_device_notification(device, status, notification)
File "/usr/lib/python3.10/site-packages/logitech_receiver/notifications.py", line 178, in _process_device_notification
return _process_hidpp10_notification(device, status, n)
File "/usr/lib/python3.10/site-packages/logitech_receiver/notifications.py", line 288, in _process_hidpp10_notification
status.changed(active=link_established)
File "/usr/lib/python3.10/site-packages/logitech_receiver/status.py", line 311, in changed
_settings.apply_all_settings(d)
File "/usr/lib/python3.10/site-packages/logitech_receiver/settings.py", line 1423, in apply_all_settings
s.apply()
File "/usr/lib/python3.10/site-packages/logitech_receiver/settings.py", line 336, in apply
value = self.read(self.persist) # Don't use persisted value if setting doesn't persist
File "/usr/lib/python3.10/site-packages/logitech_receiver/settings.py", line 374, in read
reply_map[int(key)] = self._validator.validate_read(reply, key)
File "/usr/lib/python3.10/site-packages/logitech_receiver/settings.py", line 1099, in validate_read
assert reply_value in self.choices[
AssertionError: validator_class: failed to validate read value 2000200
10:03:52,700 INFO [ReceiverListener:hidraw0] logitech_receiver.receiver: <UnifyingEmpfänger(/dev/hidraw0,16)>: found new device 2 (4082)
10:03:52,700 INFO [ReceiverListener:hidraw0] solaar.listener: connection Notification(10,2,41,04,328240) for <Device(2,4082,MX Master 3 Wireless Mouse,EE1951FB)> (mouse)
10:03:52,702 INFO [ReceiverListener:hidraw0] solaar.listener: status_changed <UnifyingEmpfänger(/dev/hidraw0,16)>: present, 2 gekoppelte Geräte. (0)
10:03:52,702 INFO [ReceiverListener:hidraw0] logitech_receiver.base: New lock 20
10:03:52,792 INFO [ReceiverListener:hidraw0] solaar.listener: status_changed <Device(2,4082,MX Master 3 Wireless Mouse,EE1951FB)>: paired online, {'LINK ENCRYPTED': True, 'BATTERY LEVEL': 100, 'BATTERY STATUS': NamedInt(0, 'discharging'), 'BATTERY NEXT LEVEL': 50, 'BATTERY VOLTAGE': None, 'BATTERY CHARGING': False, 'ERROR': None} (0)
10:03:53,214 INFO [ReceiverListener:hidraw0] logitech_receiver.status: <Device(2,4082,MX Master 3 Wireless Mouse,EE1951FB)> pushing device settings [<Setting([Feature:toggle] MX Master 3:hires-smooth-invert=None)>, <Setting([Feature:toggle] MX Master 3:hires-smooth-resolution=None)>, <Setting([Feature:toggle] MX Master 3:hires-scroll-mode=None)>, <Setting([Feature:range] MX Master 3:smart-shift=None)>, <Setting([Feature:toggle] MX Master 3:thumb-scroll-invert=None)>, <Setting([Feature:toggle] MX Master 3:thumb-scroll-mode=None)>, <Setting([Feature:choice] MX Master 3:dpi=None)>, <Setting([Feature:choice] MX Master 3:dpi-sliding=None)>, <Setting([Feature:choice] MX Master 3:mouse-gestures=None)>, <Setting([Feature:map choice] MX Master 3:reprogrammable-keys=None)>, <Setting([Feature:map choice] MX Master 3:divert-keys=None)>, <Setting([Feature:choice] MX Master 3:change-host=None)>]
10:03:53,662 INFO [ReceiverListener:hidraw0] solaar.listener: status_changed <Device(2,4082,MX Master 3 Wireless Mouse,EE1951FB)>: paired online, {'LINK ENCRYPTED': True, 'BATTERY LEVEL': 100, 'BATTERY STATUS': NamedInt(0, 'discharging'), 'BATTERY NEXT LEVEL': 50, 'BATTERY VOLTAGE': None, 'BATTERY CHARGING': False, 'ERROR': None} (0)
10:03:53,663 INFO [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(1,4066,Craft Advanced Keyboard,9691EB9D)>: spurious BATTERY status Notification(11,1,07,10,0404C0050A0000000000000000000000)
10:03:53,663 INFO [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(2,4082,MX Master 3 Wireless Mouse,EE1951FB)>: spurious BATTERY status Notification(11,2,08,10,0404C078050000000000000000000000)
10:03:53,663 INFO [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(2,4082,MX Master 3 Wireless Mouse,EE1951FB)>: unknown WHEEL Notification(11,2,0E,20,02000000000000000000000000000000)
10:03:53,663 INFO [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(2,4082,MX Master 3 Wireless Mouse,EE1951FB)>: WHEEL: res: 0 periods: 15 delta V:7192
Describe the bug
- solaar throws assertion. (see logs)
- MX Master 3 mouse settings (scroll direction) is forgotten after a few minutes (no sleep involved, settings simply revert from 'natural scroll' to 'standard scroll' without user interaction or power-state change
To Reproduce Steps to reproduce the behavior:
Screenshots If applicable, add screenshots to help explain your problem.
Additional context Add any other context about the problem here.