K600 keyboard natural scrolling and persistent key/button mapping issue
Created by: reaganch
Information
- Solaar version (
solaar --version
orgit describe --tags
if cloned from this repository): solaar 1.1.3rc2 - Distribution: Linux Mint 20.3 Cinnamon
- Kernel version (ex.
uname -srmo
): Linux 5.16.15-051615-generic x86_64 GNU/Linux - Output of
solaar show
:
Solaar version 1.1.3rc2
Unifying Receiver
Device path : /dev/hidraw0
USB id : 046d:C52B
Serial : 6FF69CDA
Firmware : 24.11.B0036
Bootloader : 02.09
Other : AA.E5
Has 1 paired device(s) out of a maximum of 6.
Notifications: wireless, software present (0x000900)
Device activity counters: 1=62
1: Keyboard K600 TV
Device path : /dev/hidraw2
WPID : 4078
Codename : K600 TV
Kind : keyboard
Protocol : HID++ 4.5
Polling rate : 8 ms (125Hz)
Serial number: F8F15AC0
Model ID: B35340780000
Unit ID: A9996F5C
Bootloader: BOT 73.01.B0017
Firmware: MPK 08.01.B0017
Other:
Other:
Supports 36 HID++ 2.0 features:
0: ROOT {0000}
1: FEATURE SET {0001}
2: DEVICE FW VERSION {0003}
Firmware: Bootloader BOT 73.01.B0017 0000663D98BD
Firmware: Firmware MPK 08.01.B0017 4078663D98BD
Firmware: Other
Firmware: Other
Unit ID: A9996F5C Model ID: B35340780000 Transport IDs: {'btleid': 'B353', 'wpid': '4078'}
3: DEVICE NAME {0005}
Name: Keyboard K600 TV
Kind: keyboard
4: WIRELESS DEVICE STATUS {1D4B}
5: RESET {0020}
6: DEVICE FRIENDLY NAME {0007}
Friendly Name: Keyboard K600 T
7: BATTERY STATUS {1000}
Battery: 90%, discharging, next level 50%.
8: REPROG CONTROLS V4 {1B04}
Key/Button Diversion (saved): {Fn Left Click:Regular, Multiplatform App Switch:Regular, Multiplatform Back:Regular, Multiplatform Insert:Regular, Brightness Down:Regular, Brightness Up:Regular, Host Switch Channel 1:Regular, Host Switch Channel 2:Regular, Host Switch Channel 3:Regular, MultiPlatform Search:Regular, MultiPlatform Home/Mission Control:Regular, MultiPlatform Menu/Show/Hide Virtual Keyboard/Launchpad:Regular, Previous Fn:Regular, Play/Pause Fn:Regular, Next Fn:Regular, Mute Fn:Regular, Volume Down Fn:Regular, Volume Up Fn:Regular}
Key/Button Diversion : {Fn Left Click:Regular, Multiplatform App Switch:Regular, Multiplatform Back:Regular, Multiplatform Insert:Regular, Brightness Down:Regular, Brightness Up:Regular, Host Switch Channel 1:Regular, Host Switch Channel 2:Regular, Host Switch Channel 3:Regular, MultiPlatform Search:Regular, MultiPlatform Home/Mission Control:Regular, MultiPlatform Menu/Show/Hide Virtual Keyboard/Launchpad:Regular, Previous Fn:Regular, Play/Pause Fn:Regular, Next Fn:Regular, Mute Fn:Regular, Volume Down Fn:Regular, Volume Up Fn:Regular}
9: PERSISTENT REMAPPABLE ACTION {1C00}
solaar: assertion failed: /usr/share/solaar/lib/logitech_receiver/settings.py line 1035
- Contents of
~/.config/solaar/config.yaml
:
- 1.1.3rc2
- _NAME: Keyboard K600 TV
_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, backlight-timed, reprogrammable-keys, divert-crown,
crown-smooth, divert-gkeys, m-key-leds, mr-key-led]
_modelId: B35340780000
_sensitive: {fn-swap: false, gesture2-gestures: false}
_serial: F8F15AC0
_unitId: A9996F5C
_wpid: '4078'
disable-keyboard-keys: {1: false, 8: false, 16: false}
divert-keys: {183: 0, 186: 0, 189: 0, 190: 0, 199: 0, 200: 0, 209: 0, 210: 0, 211: 0, 212: 0, 213: 0, 214: 0, 228: 0, 229: 0, 230: 0, 231: 0, 232: 0,
233: 0}
fn-swap: false
gesture2-divert: {1: false, 2: false, 4: false, 5: false, 10: false, 44: false, 84: false, 85: false, 100: false}
gesture2-gestures: {1: true, 2: true, 4: true, 5: true, 10: true, 30: true, 34: false, 42: true, 43: true, 45: true, 84: false}
gesture2-params:
4: {scale: 256}
multiplatform: 3
- Errors or warrnings from Solaar:
11:23:31,332 INFO [MainThread] root: language en_NZ (UTF-8), translations path None
11:23:31,407 INFO [MainThread] logitech_receiver.diversion: GDK Keymap set up
11:23:31,414 INFO [MainThread] solaar.upower: connected to system dbus, watching for suspend/resume events
11:23:31,428 INFO [MainThread] solaar.ui.notify: starting desktop notifications
11:23:31,450 INFO [MainThread] solaar.listener: starting receiver listening threads
11:23:31,451 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)
11:23:31,451 INFO [MainThread] logitech_receiver.base: New lock 12
11:23:31,459 INFO [ReceiverListener:hidraw0] logitech_receiver.listener: started with <UnifyingReceiver(/dev/hidraw0,12)> (12)
11:23:31,459 INFO [ReceiverListener:hidraw0] solaar.listener: <UnifyingReceiver(/dev/hidraw0,12)>: notifications listener has started (12)
11:23:31,459 INFO [ReceiverListener:hidraw0] logitech_receiver.base: New lock <_ThreadedHandle(/dev/hidraw0)>
11:23:31,463 INFO [ReceiverListener:hidraw0] logitech_receiver.receiver: <UnifyingReceiver(/dev/hidraw0,12)>: receiver notifications enabled => ('wireless', 'software present')
11:23:31,467 INFO [ReceiverListener:hidraw0] solaar.listener: status_changed <UnifyingReceiver(/dev/hidraw0,12)>: present, No paired devices. (0)
11:23:31,481 INFO [ReceiverListener:hidraw0] logitech_receiver.receiver: <UnifyingReceiver(/dev/hidraw0,12)>: found new device 1 (4078)
11:23:31,481 INFO [ReceiverListener:hidraw0] logitech_receiver.base: New lock 15
11:23:31,481 INFO [ReceiverListener:hidraw0] solaar.listener: connection Notification(10,1,41,04,B17840) for <Device(1,4078,Keyboard K600 TV,F8F15AC0)> (keyboard)
11:23:31,926 INFO [ReceiverListener:hidraw0] solaar.listener: status_changed <UnifyingReceiver(/dev/hidraw0,12)>: present, 1 paired device. (0)
11:23:32,044 INFO [ReceiverListener:hidraw0] solaar.listener: status_changed <Device(1,4078,Keyboard K600 TV,F8F15AC0)>: paired online, {'LINK ENCRYPTED': True, 'BATTERY LEVEL': 90, 'BATTERY STATUS': NamedInt(0, 'discharging'), 'BATTERY NEXT LEVEL': 50, 'BATTERY VOLTAGE': None, 'BATTERY CHARGING': False, 'ERROR': None} (0)
11:23:32,163 INFO [ReceiverListener:hidraw0] logitech_receiver.device: <Device(1,4078,Keyboard K600 TV,F8F15AC0)>: unitId A9996F5C does not match serial F8F15AC0
11:23:33,816 INFO [ReceiverListener:hidraw0] logitech_receiver.status: <Device(1,4078,Keyboard K600 TV,F8F15AC0)> pushing device settings [<Setting([feature:toggle] K600 TV:fn-swap=None)>, <Setting([feature:map choice] K600 TV:persistent-remappable-keys=None)>, <Setting([feature:map choice] K600 TV:divert-keys=None)>, <Setting([feature:multiple toggle] K600 TV:disable-keyboard-keys=None)>, <Setting([feature:choice] K600 TV:multiplatform=None)>, <Setting([feature:choice] K600 TV:change-host=None)>, <Setting([feature:multiple toggle] K600 TV:gesture2-gestures=None)>, <Setting([feature:multiple toggle] K600 TV:gesture2-divert=None)>, <Setting([feature:multiple range] K600 TV:gesture2-params=None)>]
11:23:33,836 ERROR [ReceiverListener:hidraw0] logitech_receiver.listener: processing Notification(10,1,41,04,B17840)
Traceback (most recent call last):
File "/usr/share/solaar/lib/logitech_receiver/listener.py", line 188, in run
self._notifications_callback(n)
File "/usr/share/solaar/lib/solaar/listener.py", line 264, in _notifications_handler
_notifications.process(dev, n)
File "/usr/share/solaar/lib/logitech_receiver/notifications.py", line 60, in process
return _process_device_notification(device, status, notification)
File "/usr/share/solaar/lib/logitech_receiver/notifications.py", line 178, in _process_device_notification
return _process_hidpp10_notification(device, status, n)
File "/usr/share/solaar/lib/logitech_receiver/notifications.py", line 288, in _process_hidpp10_notification
status.changed(active=link_established)
File "/usr/share/solaar/lib/logitech_receiver/status.py", line 311, in changed
_settings.apply_all_settings(d)
File "/usr/share/solaar/lib/logitech_receiver/settings.py", line 1305, in apply_all_settings
s.apply()
File "/usr/share/solaar/lib/logitech_receiver/settings.py", line 334, in apply
value = self.read(self.persist) # Don't use persisted value if setting doesn't persist
File "/usr/share/solaar/lib/logitech_receiver/settings.py", line 372, in read
reply_map[int(key)] = self._validator.validate_read(reply, key)
File "/usr/share/solaar/lib/logitech_receiver/settings.py", line 1035, in validate_read
assert reply_value in self.choices[
AssertionError: validator_class: failed to validate read value 01
11:23:33,842 INFO [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(1,4078,Keyboard K600 TV,F8F15AC0)>: spurious BATTERY status Notification(11,1,07,10,0400C16D0A0000000000000000000000)
Describe the bug
- Upon enabling Gestures -> Natural scrolling, the natural scrolling feature of the touchpad is enabled as expected. Upon rebooting, however, the natural scrolling feature is disabled. Cycling the lock icon next to Gestures to Ignore this setting -> Changes allowed -> No changes allowed enables this feature.
- A continuous circular rotating icon is observed next to the Persistent Key/Button Mapping option, with hover text "Working..." and it is not possible to use this feature at all.
To Reproduce Steps to reproduce the behavior:
- Natural scrolling issue
- Open Solaar
- Enable Gestures -> Natural scrolling
- Reboot computer
- Natural scrolling feature appears to be disabled
- Persistent Key/Button Mapping issue
- Open Solaar
- Observe continuous circular rotating icon next to option, with hover text "Working..."
Screenshots If applicable, add screenshots to help explain your problem.
Additional context Seems to be related to #1519 (closed) and #1102 (closed)