User rule cannot be deleted if it is the only one
Created by: GorgosGlobatoris
Information
- Solaar version (
solaar --version
orgit describe --tags
if cloned from this repository): 1.1.4 - Distribution: Linux Mint 20.3 Cinnamon
- Kernel version (ex.
uname -srmo
):5.4.0-124-generic
- Output of
solaar show
:
Solaar version 1.1.4
Unifying Receiver
Device path : /dev/hidraw0
USB id : 046d:C52B
Serial : 0F88276B
Firmware : 24.11.B0036
Bootloader : 02.09
Other : AA.AC
Has 1 paired device(s) out of a maximum of 6.
Notifications: wireless, software present (0x000900)
Device activity counters: 1=82
1: MX Keys Keyboard
Device path : /dev/hidraw1
WPID : 408A
Codename : MX Keys
Kind : keyboard
Protocol : HID++ 4.5
Polling rate : 20 ms (50Hz)
Serial number: 3EB38AFE
Model ID: B35B408A0000
Unit ID: 3EB38AFE
Bootloader: BL1 08.00.B0011
Firmware: MPK 12.01.B0013
Other:
The power switch is located on the edge of top right corner.
Supports 32 HID++ 2.0 features:
0: ROOT {0000}
1: FEATURE SET {0001}
2: DEVICE FW VERSION {0003}
Firmware: Bootloader BL1 08.00.B0011 00008169E8BB
Firmware: Firmware MPK 12.01.B0013 408AFE037737
Firmware: Other
Unit ID: 3EB38AFE Model ID: B35B408A0000 Transport IDs: {'btleid': 'B35B', 'wpid': '408A'}
3: DEVICE NAME {0005}
Name: MX Keys Wireless Keyboard
Kind: keyboard
4: WIRELESS DEVICE STATUS {1D4B}
5: RESET {0020}
6: DEVICE FRIENDLY NAME {0007}
Friendly Name: MX Keys
7: BATTERY STATUS {1000}
Battery: 50%, discharging, next level 20%.
8: REPROG CONTROLS V4 {1B04}
Key/Button Diversion (saved): {Calculator:Regular, Show Desktop:Regular, Lock PC:Regular, Screen Capture/Print Screen:Regular, Brightness Down:Regular, Brightness Up:Regular, Host Switch Channel 1:Regular, Host Switch Channel 2:Regular, Host Switch Channel 3:Regular, Mission Control/Task View:Regular, Dashboard Launchpad/Action Center:Regular, Backlight Down:Regular, Backlight Up:Regular, Previous Fn:Regular, Play/Pause Fn:Regular, Next Fn:Regular, Mute Fn:Regular, Volume Down Fn:Regular, Volume Up Fn:Regular, App Contextual Menu/Right Click:Regular, Right Arrow:Regular, Left Arrow:Regular}
Key/Button Diversion : {Calculator:Regular, Show Desktop:Regular, Lock PC:Regular, Screen Capture/Print Screen:Regular, Brightness Down:Regular, Brightness Up:Regular, Host Switch Channel 1:Regular, Host Switch Channel 2:Regular, Host Switch Channel 3:Regular, Mission Control/Task View:Regular, Dashboard Launchpad/Action Center:Regular, Backlight Down:Regular, Backlight Up:Regular, Previous Fn:Regular, Play/Pause Fn:Regular, Next Fn:Regular, Mute Fn:Regular, Volume Down Fn:Regular, Volume Up Fn:Regular, App Contextual Menu/Right Click:Regular, Right Arrow:Regular, Left Arrow:Regular}
9: CHANGE HOST {1814}
Change Host : 1:jv-desktop
10: HOSTS INFO {1815}
Host 0 (paired): jv-desktop
Host 1 (unpaired):
Host 2 (unpaired):
11: BACKLIGHT2 {1982}
Backlight (saved): True
Backlight : True
12: K375S FN INVERSION {40A3}
Swap Fx function (saved): False
Swap Fx function : False
13: ENCRYPTION {4100}
14: LOCK KEY STATE {4220}
15: KEYBOARD DISABLE KEYS {4521}
Disable keys (saved): {Caps Lock:False, Num Lock:False, Scroll Lock:False, Insert:False, Win:False}
Disable keys : {Caps Lock:False, Num Lock:False, Scroll Lock:False, Insert:False, Win:False}
16: MULTIPLATFORM {4531}
Set OS (saved): Windows
Set OS : Windows
17: DFUCONTROL SIGNED {00C2}
18: DEVICE RESET {1802} internal, hidden
19: unknown:1803 {1803} internal, hidden
20: CONFIG DEVICE PROPS {1806} internal, hidden
21: unknown:1813 {1813} internal, hidden
22: OOBSTATE {1805} internal, hidden
23: unknown:1830 {1830} internal, hidden
24: unknown:1890 {1890} internal, hidden
25: unknown:1891 {1891} internal, hidden
26: unknown:18A1 {18A1} internal, hidden
27: unknown:1DF3 {1DF3} internal, hidden
28: unknown:1E00 {1E00} hidden
29: unknown:1EB0 {1EB0} internal, hidden
30: unknown:1861 {1861} internal, hidden
31: unknown:1A20 {1A20} internal, hidden
Has 24 reprogrammable keys:
0: Host Switch Channel 1 , default: HostSwitch Channel 1 => HostSwitch Channel 1
nonstandard, divertable, persistently divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
1: Host Switch Channel 2 , default: HostSwitch Channel 2 => HostSwitch Channel 2
nonstandard, divertable, persistently divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
2: Host Switch Channel 3 , default: HostSwitch Channel 3 => HostSwitch Channel 3
nonstandard, divertable, persistently divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
3: Brightness Down , default: Brightness Down => Brightness Down
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, analytics key events, pos:1, group:0, group mask:empty
reporting: default
4: Brightness Up , default: Brightness Up => Brightness Up
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, analytics key events, pos:2, group:0, group mask:empty
reporting: default
5: Mission Control/Task View , default: Mission Control/Task View => Mission Control/Task View
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, analytics key events, pos:3, group:0, group mask:empty
reporting: default
6: Dashboard Launchpad/Action Center, default: Dashboard Launchpad/Action Center => Dashboard Launchpad/Action Center
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, analytics key events, pos:4, group:0, group mask:empty
reporting: default
7: Show Desktop , default: Show Desktop => Show Desktop
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, analytics key events, pos:5, group:0, group mask:empty
reporting: default
8: Backlight Down , default: Backlight Down => Backlight Down
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, analytics key events, pos:6, group:0, group mask:empty
reporting: default
9: Backlight Up , default: Backlight Up => Backlight Up
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, analytics key events, pos:7, group:0, group mask:empty
reporting: default
10: Previous Fn , default: Previous => Previous
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, analytics key events, pos:8, group:0, group mask:empty
reporting: default
11: Play/Pause Fn , default: Play/Pause => Play/Pause
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, analytics key events, pos:9, group:0, group mask:empty
reporting: default
12: Next Fn , default: Next => Next
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, analytics key events, pos:10, group:0, group mask:empty
reporting: default
13: Mute Fn , default: Mute => Mute
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, analytics key events, pos:11, group:0, group mask:empty
reporting: default
14: Volume Down Fn , default: Volume Down => Volume Down
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, analytics key events, pos:12, group:0, group mask:empty
reporting: default
15: Volume Up Fn , default: Volume Up => Volume Up
nonstandard, reprogrammable, divertable, persistently divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
16: Calculator , default: Calculator => Calculator
nonstandard, reprogrammable, divertable, persistently divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
17: Screen Capture/Print Screen, default: Screen Capture => Screen Capture
nonstandard, reprogrammable, divertable, persistently divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
18: App Contextual Menu/Right Click, default: Right Click/App Contextual Menu => Right Click/App Contextual Menu
nonstandard, reprogrammable, divertable, persistently divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
19: Lock PC , default: WindowsLock => WindowsLock
nonstandard, reprogrammable, divertable, persistently divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
20: Left Arrow , default: Keyboard Left Arrow => Keyboard Left Arrow
nonstandard, divertable, persistently divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
21: Right Arrow , default: Keyboard Right Arrow => Keyboard Right Arrow
nonstandard, divertable, persistently divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
22: F Lock , default: Do Nothing One => Do Nothing One
is FN, analytics key events, pos:0, group:0, group mask:empty
reporting: default
23: FN Key , default: Do Nothing One => Do Nothing One
nonstandard, analytics key events, pos:0, group:0, group mask:empty
reporting: default
Battery: 50%, discharging, next level 20%.
- Contents of
~/.config/solaar/config.yaml
(or~/.config/solaar/config.json
if~/.config/solaar/config.yaml
not present):
- 1.1.4
- _NAME: MX Keys Keyboard
_absent: [hi-res-scroll, lowres-scroll-mode, hires-smooth-invert, hires-smooth-resolution, hires-scroll-mode, smart-shift, thumb-scroll-invert, thumb-scroll-mode,
onboard_profiles, report_rate, pointer_speed, dpi, dpi-sliding, speed-change, mouse-gestures, backlight-timed, reprogrammable-keys, persistent-remappable-keys,
crown-smooth, divert-crown, divert-gkeys, m-key-leds, mr-key-led, gesture2-gestures, gesture2-divert, gesture2-params, sidetone, equalizer]
_modelId: B35B408A0000
_sensitive: {backlight: false, change-host: false, divert-keys: false, fn-swap: false, multiplatform: false}
_serial: 3EB38AFE
_unitId: 3EB38AFE
_wpid: 408A
backlight: true
change-host: null
disable-keyboard-keys: {1: false, 2: false, 4: false, 8: false, 16: false}
divert-keys: {10: 0, 110: 0, 111: 0, 191: 0, 199: 0, 200: 0, 209: 0, 210: 0, 211: 0, 224: 0, 225: 0, 226: 0, 227: 0, 228: 0, 229: 0, 230: 0, 231: 0, 232: 0,
233: 0, 234: 0, 235: 0, 236: 0}
fn-swap: false
multiplatform: 0
- Errors or warrnings from Solaar: 06:43:11,481 WARNING [MainThread] logitech_receiver.diversion: rule Key arguments unknown: 06:43:11,482 WARNING [MainThread] logitech_receiver.diversion: rule Key key name not name of a Logitech key: 0 06:43:15,217 WARNING [MainThread] logitech_receiver.diversion: rule Key key name not name of a Logitech key: c 06:43:15,518 WARNING [MainThread] logitech_receiver.diversion: rule Key key name not name of a Logitech key: ca 06:43:15,720 WARNING [MainThread] logitech_receiver.diversion: rule Key key name not name of a Logitech key: cal 06:43:32,172 WARNING [MainThread] logitech_receiver.diversion: rule KeyPress keys not key names ['']
(Happened only once during reproducing the bug, not sure how relevant it is)
Describe the bug Saving changes after deleting the last user rule has no effect. After restarting Solaar, the deleted rule is again active and present in the rule editor. Editing or deleting conditions or actions in the rule is saved correctly, but deleting the rule itself is not.
To Reproduce Steps to reproduce the behavior:
- Go to 'Rule Editor'
- Add a user defined rule
- Add condition
- Add action
- Save changes
- Restart Solaar
- Go to 'Rule Editor'
- The deleted rule is back
Additional context
- Problem is not in the rule itself, it is possible to add new rule, delete the problematic one and this change will be saved correctly. But the new rule will have the same issue.
- Even an empty rule (without any conditions or actions) is kept.
- File rules.yaml is without changes after saving the deletion of the rule.
- Deleting file rules.yaml seems to solve the issue.