Repository: pwr-Solaar/Solaar

Issue:
Big amount of CPU
**Information**
<!-- Make sure that your issue is not one of the known issues in the Solaar documentation at https://pwr-solaar.github.io/Solaar/ -->
<!-- Do not bother opening an issue for a version older than 1.1.0.  Update to the latest version and see if your issue persists. -->
- Solaar version (`solaar --version` or `git describe --tags` if cloned from this repository): `solaar 1.1.1` and `1.1.1-80-gf938d34`
- Distribution: Debian testing
- Kernel version (ex. `uname -srmo`): `Linux 5.15.0-2-amd64 x86_64 GNU/Linux`
- Output of `solaar show`:

<details>

```
Solaar version 1.1.1

Unifying Receiver
  Device path  : /dev/hidraw1
  USB id       : 046d:C52B
  Serial       : E341955E
    Firmware   : 12.11.B0032
    Bootloader : 04.16
    Other      : AA.AA
  Has 1 paired device(s) out of a maximum of 6.
  Notifications: wireless, software present (0x000900)
  Device activity counters: 1=66

  1: Multi Device Silent Mouse M585/M590
     Device path  : /dev/hidraw2
     WPID         : 406B
     Codename     : M585/M590
     Kind         : mouse
     Protocol     : HID++ 4.5
     Polling rate : 8 ms (125Hz)
     Serial number: FE035A84
     Model ID:      B01B406B0000
     Unit ID:       85DA07C8
        Bootloader: BOT 48.01.B0002
          Firmware: MPM 05.10.B0011
             Other: 
     The power switch is located on the base.
     Supports 35 HID++ 2.0 features:
         0: ROOT                   {0000}   
         1: FEATURE SET            {0001}   
         2: DEVICE FW VERSION      {0003}   
            Firmware: Bootloader BOT 48.01.B0002 0000AE5E7277
            Firmware: Firmware MPM 05.10.B0011 406BAE5E7277
            Firmware: Other   
            Unit ID: 85DA07C8  Model ID: B01B406B0000  Transport IDs: {'btleid': 'B01B', 'wpid': '406B'}
         3: DEVICE NAME            {0005}   
            Name: M585/M590 Multi-Device Mouse
            Kind: mouse
         4: WIRELESS DEVICE STATUS {1D4B}   
         5: RESET                  {0020}   
         6: CRYPTO ID              {0021}   
         7: DEVICE FRIENDLY NAME   {0007}   
            Friendly Name: M585/M590
         8: BATTERY STATUS         {1000}   
            Battery: 50%, discharging, next level 20%.
         9: CHANGE HOST            {1814}   
            Change Host        : 1:deb
        10: HOSTS INFO             {1815}   
            Host 0 (paired): deb
            Host 1 (paired): 
        11: REPROG CONTROLS V4     {1B04}   
            Mouse Gestures (saved): Off
            Mouse Gestures        : Off
            Key/Button Actions (saved): {Left Button:Left Click, Right Button:Right Click, Middle Button:Mouse Middle Button, Back Button:Mouse Back Button, Forward Button:Mouse Forward Button, Left Tilt:Mouse Back Button, Right Tilt:Mouse Forward Button}
            Key/Button Actions        : {Left Button:Left Click, Right Button:Right Click, Middle Button:Mouse Middle Button, Back Button:Mouse Back Button, Forward Button:Mouse Forward Button, Left Tilt:Mouse Back Button, Right Tilt:Mouse Forward Button}
            Key/Button Diversion (saved): {Middle Button:Regular, Back Button:Regular, Forward Button:Regular, Left Tilt:Regular, Right Tilt:Regular}
            Key/Button Diversion        : {Middle Button:Regular, Back Button:Regular, Forward Button:Regular, Left Tilt:Regular, Right Tilt:Regular}
        12: PERSISTENT REMAPPABLE ACTION {1C00}   
        13: POINTER SPEED          {2205}   
            Pointer Speed: 1.0
            Sensitivity (Pointer Speed) (saved): 256
            Sensitivity (Pointer Speed)        : 256
        14: VERTICAL SCROLLING     {2100}   
            Roller type: standard
            Ratchet per turn: 18
            Scroll lines: 0
        15: DFUCONTROL SIGNED      {00C2}   
        16: DEVICE RESET           {1802}   internal, hidden
        17: unknown:1803           {1803}   internal, hidden
        18: CONFIG DEVICE PROPS    {1806}   internal, hidden
        19: OOBSTATE               {1805}   internal, hidden
        20: unknown:1813           {1813}   internal, hidden
        21: unknown:1830           {1830}   internal, hidden
        22: unknown:1861           {1861}   internal, hidden
        23: unknown:1890           {1890}   internal, hidden
        24: unknown:1891           {1891}   internal, hidden
        25: unknown:18A1           {18A1}   internal, hidden
        26: unknown:1DF3           {1DF3}   internal, hidden
        27: unknown:1E00           {1E00}   hidden
        28: unknown:1EB0           {1EB0}   internal, hidden
        29: unknown:18B1           {18B1}   internal, hidden
        30: unknown:1850           {1850}   internal, hidden
        31: unknown:1E22           {1E22}   
        32: unknown:1F03           {1F03}   internal, hidden
        33: unknown:18C0           {18C0}   internal, hidden
        34: LOWRES WHEEL           {2130}   
            Wheel Reports: HID
            Scroll Wheel Diversion (saved): False
            Scroll Wheel Diversion        : False
     Has 8 reprogrammable keys:
         0: Left Button               , default: Left Click                  => Left Click                
             mse, reprogrammable, pos:0, group:1, group mask:g1
             reporting: default
         1: Right Button              , default: Right Click                 => Right Click               
             mse, reprogrammable, pos:0, group:1, group mask:g1
             reporting: default
         2: Middle Button             , default: Mouse Middle Button         => Mouse Middle Button       
             mse, reprogrammable, divertable, persistently divertable, raw XY, pos:0, group:2, group mask:g1,g2
             reporting: default
         3: Back Button               , default: Mouse Back Button           => Mouse Back Button         
             mse, reprogrammable, divertable, persistently divertable, raw XY, pos:0, group:2, group mask:g1,g2
             reporting: default
         4: Forward Button            , default: Mouse Forward Button        => Mouse Forward Button      
             mse, reprogrammable, divertable, persistently divertable, raw XY, pos:0, group:2, group mask:g1,g2
             reporting: default
         5: Left Tilt                 , default: Mouse Scroll Left Button    => Mouse Back Button         
             mse, reprogrammable, divertable, persistently divertable, raw XY, pos:0, group:2, group mask:g1,g2
             reporting: default
         6: Right Tilt                , default: Mouse Scroll Right Button   => Mouse Forward Button      
             mse, reprogrammable, divertable, persistently divertable, raw XY, pos:0, group:2, group mask:g1,g2
             reporting: default
         7: Virtual Gesture Button    , default: Virtual Gesture Button      => Virtual Gesture Button    
             divertable, virtual, raw XY, force raw XY, pos:0, group:3, group mask:empty
             reporting: default
     Battery: 50%, discharging, next level 20%.

USB and Bluetooth Devices

  1: Bluetooth Multi-Device Keyboard K380
     Device path  : /dev/hidraw3
     USB id       : 046d:B342
     Codename     : Keyboard K380
     Kind         : ?
     Protocol     : HID++ 4.5
     Serial number: 
     Model ID:      B34200000000
     Unit ID:       97000000
          Firmware: RBK 42.01.B0017
          Hardware: 72
     Supports 15 HID++ 2.0 features:
         0: ROOT                   {0000}   
         1: FEATURE SET            {0001}   
         2: DEVICE FW VERSION      {0003}   
            Firmware: Firmware RBK 42.01.B0017 B342C18DBFDD
            Firmware: Hardware  72 
            Unit ID: 97000000  Model ID: B34200000000  Transport IDs: {'btid': 'B342'}
         3: DEVICE NAME            {0005}   
            Name: Bluetooth Multi-Device Keyboard K380
            Kind: keyboard
         4: DEVICE FRIENDLY NAME   {0007}   
            Friendly Name: Keyboard K380
         5: RESET                  {0020}   
         6: BATTERY STATUS         {1000}   
            Battery: 50%, discharging, next level 20%.
         7: CHANGE HOST            {1814}   
            Change Host        : 1:deb
         8: HOSTS INFO             {1815}   
            Host 0 (paired): deb
            Host 1 (unpaired): 
            Host 2 (paired): Tel
         9: REPROG CONTROLS V4     {1B04}   
            Key/Button Diversion (saved): {Volume Up:Regular, Multiplatform App Switch:Regular, Multiplatform Home:Regular, Multiplatform Menu:Regular, Multiplatform Back:Regular, Multiplatform Insert:Regular, Screen Capture/Print Screen:Regular, Fn Down:Regular, Fn Up:Regular, Multiplatform Lock:Regular, Volume Down:Regular, Mute:Regular, Play/Pause:Regular, Next:Regular, Previous:Regular, Search:Regular}
            Key/Button Diversion        : {Volume Up:Regular, Multiplatform App Switch:Regular, Multiplatform Home:Regular, Multiplatform Menu:Regular, Multiplatform Back:Regular, Multiplatform Insert:Regular, Screen Capture/Print Screen:Regular, Fn Down:Regular, Fn Up:Regular, Multiplatform Lock:Regular, Volume Down:Regular, Mute:Regular, Play/Pause:Regular, Next:Regular, Previous:Regular, Search:Regular}
        10: unknown:1E00           {1E00}   hidden
        11: NEW FN INVERSION       {40A2}   
            Fn-swap: disabled
            Fn-swap default: enabled
            Swap Fx function (saved): False
            Swap Fx function        : False
        12: LOCK KEY STATE         {4220}   
        13: KEYBOARD DISABLE KEYS  {4521}   
            Disable keys (saved): {Caps Lock:False, Win:False, Scroll Lock:False, Insert:False}
            Disable keys        : {Caps Lock:False, Scroll Lock:False, Insert:False, Win:False}
        14: MULTIPLATFORM          {4531}   
            Set OS (saved): Linux
            Set OS        : Linux
     Has 16 reprogrammable keys:
         0: Multiplatform Home        , default: MultiPlatform Home          => MultiPlatform Home        
             is FN, FN sensitive, reprogrammable, divertable, pos:4, group:0, group mask:empty
             reporting: default
         1: Multiplatform App Switch  , default: MultiPlatform App Switch    => MultiPlatform App Switch  
             is FN, FN sensitive, reprogrammable, divertable, pos:5, group:0, group mask:empty
             reporting: default
         2: Multiplatform Menu        , default: MultiPlatform Menu          => MultiPlatform Menu        
             is FN, FN sensitive, reprogrammable, divertable, pos:6, group:0, group mask:empty
             reporting: default
         3: Multiplatform Back        , default: MultiPlatform Back          => MultiPlatform Back        
             is FN, FN sensitive, reprogrammable, divertable, pos:7, group:0, group mask:empty
             reporting: default
         4: Previous                  , default: Previous                    => Previous                  
             is FN, FN sensitive, divertable, pos:8, group:0, group mask:empty
             reporting: default
         5: Play/Pause                , default: Play/Pause                  => Play/Pause                
             is FN, FN sensitive, divertable, pos:9, group:0, group mask:empty
             reporting: default
         6: Next                      , default: Next                        => Next                      
             is FN, FN sensitive, divertable, pos:10, group:0, group mask:empty
             reporting: default
         7: Mute                      , default: Mute                        => Mute                      
             is FN, FN sensitive, divertable, pos:11, group:0, group mask:empty
             reporting: default
         8: Volume Down               , default: Volume Down                 => Volume Down               
             is FN, FN sensitive, divertable, pos:12, group:0, group mask:empty
             reporting: default
         9: Volume Up                 , default: Volume Up                   => Volume Up                 
             is FN, FN sensitive, divertable, pos:0, group:0, group mask:empty
             reporting: default
        10: Multiplatform Insert      , default: Switch Language             => Switch Language           
             FN sensitive, reprogrammable, divertable, pos:0, group:0, group mask:empty
             reporting: default
        11: Fn Up                     , default: unknown:0070                => unknown:0070              
             is FN, divertable, pos:0, group:0, group mask:empty
             reporting: default
        12: Fn Down                   , default: unknown:006F                => unknown:006F              
             is FN, divertable, pos:0, group:0, group mask:empty
             reporting: default
        13: Screen Capture/Print Screen, default: Screen Capture              => Screen Capture            
             is FN, reprogrammable, divertable, pos:0, group:0, group mask:empty
             reporting: default
        14: Search                    , default: Search Files                => Search Files              
             is FN, reprogrammable, divertable, pos:0, group:0, group mask:empty
             reporting: default
        15: Multiplatform Lock        , default: WindowsLock                 => WindowsLock               
             is FN, reprogrammable, divertable, pos:0, group:0, group mask:empty
             reporting: default
     Battery: 50%, discharging, next level 20%.

```
</details>

**Describe the bug**
solaar take almost 100% of one logical CPU.

**Tried :**
* Installing solaar thu `sudo apt install solaar` : same issue
* Installing solaar thu git clone repository : same issue

**Note**
The `solaar show`is from the last install from git
Thanks


Discussion:
Please run Solaar from your clone of the GitHub respository as `bin/solaar -dd`.  When Solaar is consuming too much CPU interrupt it with control-C and post the output including the backtrace from the interrupt.
Hi,
Sorry too be so late, very buzzy AFK.
So this what I reproduce (htop give me up to 90 but ps stay under 80, still high no ?): 

```
bash
:~/Solaar$ ps u -C python3
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
ngux        4860 79.5  0.1 793524 72044 pts/0    Sl+  02:40   1:56 python3 /home/ngux
```

But I have to say that the `git clone` version works better than the one I got on `apt` which was higher (reaching 100 most of the time). Usually, the git clone version is around 25% of CPU. Even 25 seems high, what do you think?

___
**debug**
After the `^C`
I got the 500 last lines, enough ? 
(next code block I relauch a processus for you to see the begin of the debug):

<details>

```
bash
(solaar:4860): Gtk-WARNING **: 02:40:41.451: Theme directory symbolic/devices of theme Hack-Lime has no size field


(solaar:4860): Gtk-WARNING **: 02:40:41.451: Theme directory symbolic/emblems of theme Hack-Lime has no size field


(solaar:4860): Gtk-WARNING **: 02:40:41.451: Theme directory symbolic/emotes of theme Hack-Lime has no size field


(solaar:4860): Gtk-WARNING **: 02:40:41.451: Theme directory symbolic/mimetypes of theme Hack-Lime has no size field


(solaar:4860): Gtk-WARNING **: 02:40:41.451: Theme directory symbolic/status of theme Hack-Lime has no size field

02:40:41,491     INFO [MainThread] solaar.listener: starting receiver listening threads
02:40:41,492     INFO [MainThread] solaar.listener: receiver event add DeviceInfo(path='/dev/hidraw1', vendor_id='046D', product_id='C52B', serial='', release=None, manufacturer=None, product=None, interface=2, driver='logitech-djreceiver', bus_id=3, isDevice=None)
02:40:41,493     INFO [MainThread] logitech_receiver.base: New lock 17
02:40:41,598     INFO [ReceiverListener:hidraw1] logitech_receiver.listener: started with <UnifyingReceiver(/dev/hidraw1,17)> (17)
02:40:41,598     INFO [ReceiverListener:hidraw1] solaar.listener: <UnifyingReceiver(/dev/hidraw1,17)>: notifications listener has started (17)
02:40:41,598     INFO [ReceiverListener:hidraw1] logitech_receiver.base: New lock <_ThreadedHandle(/dev/hidraw1)>
02:40:41,602     INFO [MainThread] solaar.listener: receiver event add DeviceInfo(path='/dev/hidraw3', vendor_id='046D', product_id='B342', serial='34:88:5d:d1:b2:a1', release=None, manufacturer=None, product=None, interface=0, driver='hid-generic', bus_id=5, isDevice=True)
02:40:41,603     INFO [MainThread] logitech_receiver.base: New lock 19
02:40:41,604     INFO [ReceiverListener:hidraw1] logitech_receiver.receiver: <UnifyingReceiver(/dev/hidraw1,17)>: receiver notifications enabled => ('wireless', 'software present')
02:40:41,608     INFO [ReceiverListener:hidraw1] solaar.listener: status_changed <UnifyingReceiver(/dev/hidraw1,17)>: present, No paired devices. (0) 
02:40:41,613     INFO [ReceiverListener:hidraw1] logitech_receiver.receiver: <UnifyingReceiver(/dev/hidraw1,17)>: found new device 1 (406B)
02:40:41,613     INFO [ReceiverListener:hidraw1] solaar.listener: connection Notification(10,1,41,04,326B40) for <Device(1,406B,Multi Device Silent Mouse M585/M590,FE035A84)> (mouse)
02:40:41,616     INFO [ReceiverListener:hidraw1] solaar.listener: status_changed <UnifyingReceiver(/dev/hidraw1,17)>: present, 1 paired device. (0) 
02:40:41,616     INFO [ReceiverListener:hidraw1] logitech_receiver.base: New lock 20
02:40:41,828     INFO [MainThread] solaar.listener: status_changed <Device(255,B342,Bluetooth Multi-Device Keyboard K380,)>: paired online, {'BATTERY LEVEL': 50, 'BATTERY STATUS': NamedInt(0, 'discharging'), 'BATTERY NEXT LEVEL': 20, 'BATTERY VOLTAGE': None, 'BATTERY CHARGING': False, 'ERROR': None} (0) 
02:40:41,935     INFO [MainThread] logitech_receiver.settings_templates: check_feature fn-swap [NEW FN INVERSION] detected <Setting([feature:toggle] Keyboard K380:fn-swap=None)>
02:40:42,188     INFO [MainThread] logitech_receiver.settings_templates: check_feature divert-keys [REPROG CONTROLS V4] detected <Setting([feature:map choice] Keyboard K380:divert-keys=None)>
02:40:42,211     INFO [MainThread] logitech_receiver.settings_templates: check_feature disable-keyboard-keys [KEYBOARD DISABLE KEYS] detected <Setting([feature:multiple toggle] Keyboard K380:disable-keyboard-keys=None)>
02:40:42,256     INFO [MainThread] logitech_receiver.settings_templates: check_feature multiplatform [MULTIPLATFORM] detected <Setting([feature:choice] Keyboard K380:multiplatform=None)>
02:40:42,368     INFO [MainThread] logitech_receiver.settings_templates: check_feature change-host [CHANGE HOST] detected <Setting([feature:choice] Keyboard K380:change-host=None)>
02:40:42,369     INFO [MainThread] logitech_receiver.status: <Device(255,B342,Bluetooth Multi-Device Keyboard K380,)> pushing device settings [<Setting([feature:toggle] Keyboard K380:fn-swap=None)>, <Setting([feature:map choice] Keyboard K380:divert-keys=None)>, <Setting([feature:multiple toggle] Keyboard K380:disable-keyboard-keys=None)>, <Setting([feature:choice] Keyboard K380:multiplatform=None)>, <Setting([feature:choice] Keyboard K380:change-host=None)>]
02:40:42,497     INFO [ReceiverListener:hidraw1] solaar.listener: status_changed <Device(1,406B,Multi Device Silent Mouse M585/M590,FE035A84)>: paired online, {'LINK ENCRYPTED': True, 'BATTERY LEVEL': 50, 'BATTERY STATUS': NamedInt(0, 'discharging'), 'BATTERY NEXT LEVEL': 20, 'BATTERY VOLTAGE': None, 'BATTERY CHARGING': False, 'ERROR': None} (0) 
02:40:42,539     INFO [ReceiverListener:hidraw1] logitech_receiver.device: <Device(1,406B,Multi Device Silent Mouse M585/M590,FE035A84)>: unitId 85DA07C8 does not match serial FE035A84
02:40:42,617     INFO [MainThread] solaar.listener: status_changed <Device(255,B342,Bluetooth Multi-Device Keyboard K380,)>: paired online, {'BATTERY LEVEL': 50, 'BATTERY STATUS': NamedInt(0, 'discharging'), 'BATTERY NEXT LEVEL': 20, 'BATTERY VOLTAGE': None, 'BATTERY CHARGING': False, 'ERROR': None} (0) initialization
02:40:42,629     INFO [ReceiverListener:hidraw3] logitech_receiver.listener: started with <Device(255,B342,Bluetooth Multi-Device Keyboard K380,)> (19)
02:40:42,629     INFO [ReceiverListener:hidraw3] solaar.listener: <Device(255,B342,Bluetooth Multi-Device Keyboard K380,)>: notifications listener has started (19)
02:40:42,629     INFO [ReceiverListener:hidraw3] logitech_receiver.base: New lock <_ThreadedHandle(/dev/hidraw3)>
02:40:42,650     INFO [ReceiverListener:hidraw3] solaar.listener: status_changed <Device(255,B342,Bluetooth Multi-Device Keyboard K380,)>: paired online, {'BATTERY LEVEL': 50, 'BATTERY STATUS': NamedInt(0, 'discharging'), 'BATTERY NEXT LEVEL': 20, 'BATTERY VOLTAGE': None, 'BATTERY CHARGING': False, 'ERROR': None, 'NOTIFICATION FLAGS': False} (0) 
02:40:42,760     INFO [ReceiverListener:hidraw1] logitech_receiver.settings_templates: check_feature mouse-gestures [REPROG CONTROLS V4] detected <Setting([feature:choice] M585/M590:mouse-gestures=None)>
02:40:42,762     INFO [ReceiverListener:hidraw1] logitech_receiver.settings_templates: check_feature reprogrammable-keys [REPROG CONTROLS V4] detected <Setting([feature:map choice] M585/M590:reprogrammable-keys=None)>
02:40:42,763     INFO [ReceiverListener:hidraw1] logitech_receiver.settings_templates: check_feature divert-keys [REPROG CONTROLS V4] detected <Setting([feature:map choice] M585/M590:divert-keys=None)>
02:40:42,906     INFO [ReceiverListener:hidraw1] logitech_receiver.hidpp20: Setting host name to bytearray(b'deb')
02:40:42,972     INFO [ReceiverListener:hidraw1] logitech_receiver.settings_templates: check_feature change-host [CHANGE HOST] detected <Setting([feature:choice] M585/M590:change-host=None)>
02:40:42,972     INFO [ReceiverListener:hidraw1] logitech_receiver.status: <Device(1,406B,Multi Device Silent Mouse M585/M590,FE035A84)> pushing device settings [<Setting([feature:toggle] M585/M590:lowres-smooth-scroll=None)>, <Setting([feature:range] M585/M590:pointer_speed=None)>, <Setting([feature:choice] M585/M590:mouse-gestures=None)>, <Setting([feature:map choice] M585/M590:reprogrammable-keys=None)>, <Setting([feature:map choice] M585/M590:divert-keys=None)>, <Setting([feature:choice] M585/M590:change-host=None)>]
02:40:43,074  WARNING [ReceiverListener:hidraw1] logitech_receiver.hidpp20: REPROG_CONTROLS_v4 setCidReporting on device <Device(1,406B,Multi Device Silent Mouse M585/M590,FE035A84)> didn't echo request packet.
02:40:43,093  WARNING [ReceiverListener:hidraw1] logitech_receiver.hidpp20: REPROG_CONTROLS_v4 setCidReporting on device <Device(1,406B,Multi Device Silent Mouse M585/M590,FE035A84)> didn't echo request packet.
02:40:43,122  WARNING [ReceiverListener:hidraw1] logitech_receiver.hidpp20: REPROG_CONTROLS_v4 setCidReporting on device <Device(1,406B,Multi Device Silent Mouse M585/M590,FE035A84)> didn't echo request packet.
02:40:43,146  WARNING [ReceiverListener:hidraw1] logitech_receiver.hidpp20: REPROG_CONTROLS_v4 setCidReporting on device <Device(1,406B,Multi Device Silent Mouse M585/M590,FE035A84)> didn't echo request packet.
02:40:43,170  WARNING [ReceiverListener:hidraw1] logitech_receiver.hidpp20: REPROG_CONTROLS_v4 setCidReporting on device <Device(1,406B,Multi Device Silent Mouse M585/M590,FE035A84)> didn't echo request packet.
02:40:43,196  WARNING [ReceiverListener:hidraw1] logitech_receiver.hidpp20: REPROG_CONTROLS_v4 setCidReporting on device <Device(1,406B,Multi Device Silent Mouse M585/M590,FE035A84)> didn't echo request packet.
02:40:43,220  WARNING [ReceiverListener:hidraw1] logitech_receiver.hidpp20: REPROG_CONTROLS_v4 setCidReporting on device <Device(1,406B,Multi Device Silent Mouse M585/M590,FE035A84)> didn't echo request packet.
02:40:43,244  WARNING [ReceiverListener:hidraw1] logitech_receiver.hidpp20: REPROG_CONTROLS_v4 setCidReporting on device <Device(1,406B,Multi Device Silent Mouse M585/M590,FE035A84)> didn't echo request packet.
02:40:43,268  WARNING [ReceiverListener:hidraw1] logitech_receiver.hidpp20: REPROG_CONTROLS_v4 setCidReporting on device <Device(1,406B,Multi Device Silent Mouse M585/M590,FE035A84)> didn't echo request packet.
02:40:43,292  WARNING [ReceiverListener:hidraw1] logitech_receiver.hidpp20: REPROG_CONTROLS_v4 setCidReporting on device <Device(1,406B,Multi Device Silent Mouse M585/M590,FE035A84)> didn't echo request packet.
02:40:43,316  WARNING [ReceiverListener:hidraw1] logitech_receiver.hidpp20: REPROG_CONTROLS_v4 setCidReporting on device <Device(1,406B,Multi Device Silent Mouse M585/M590,FE035A84)> didn't echo request packet.
02:40:43,340  WARNING [ReceiverListener:hidraw1] logitech_receiver.hidpp20: REPROG_CONTROLS_v4 setCidReporting on device <Device(1,406B,Multi Device Silent Mouse M585/M590,FE035A84)> didn't echo request packet.
02:40:43,364     INFO [ReceiverListener:hidraw1] solaar.listener: status_changed <Device(1,406B,Multi Device Silent Mouse M585/M590,FE035A84)>: paired online, {'LINK ENCRYPTED': True, 'BATTERY LEVEL': 50, 'BATTERY STATUS': NamedInt(0, 'discharging'), 'BATTERY NEXT LEVEL': 20, 'BATTERY VOLTAGE': None, 'BATTERY CHARGING': False, 'ERROR': None} (0) 
02:40:43,444     INFO [ReceiverListener:hidraw1] logitech_receiver.notifications: <Device(1,406B,Multi Device Silent Mouse M585/M590,FE035A84)>: spurious BATTERY status Notification(11,1,08,10,0400C21C0A0000000000000000000000)

(solaar:4860): Gdk-CRITICAL **: 02:40:43.987: gdk_window_thaw_toplevel_updates: assertion 'window->update_and_descendants_freeze_count > 0' failed
^CThread 0x00007fc69dd1c640 (most recent call first):
  File "/usr/local/lib/python3.9/dist-packages/python_xlib-0.31-py3.9.egg/Xlib/protocol/display.py", line 429 in send_and_recv
  File "/usr/local/lib/python3.9/dist-packages/python_xlib-0.31-py3.9.egg/Xlib/protocol/rq.py", line 1381 in reply
  File "/usr/local/lib/python3.9/dist-packages/python_xlib-0.31-py3.9.egg/Xlib/protocol/rq.py", line 1369 in __init__
  File "/usr/local/lib/python3.9/dist-packages/python_xlib-0.31-py3.9.egg/Xlib/xobject/drawable.py", line 455 in get_property
  File "/usr/local/lib/python3.9/dist-packages/python_xlib-0.31-py3.9.egg/Xlib/xobject/drawable.py", line 472 in get_full_property
  File "/home/ngux/Solaar/lib/logitech_receiver/diversion.py", line 295 in x11_focus_prog
  File "/home/ngux/Solaar/lib/logitech_receiver/diversion.py", line 333 in evaluate
  File "/home/ngux/Solaar/lib/logitech_receiver/diversion.py", line 209 in evaluate
  File "/home/ngux/Solaar/lib/logitech_receiver/diversion.py", line 209 in evaluate
  File "/home/ngux/Solaar/lib/logitech_receiver/diversion.py", line 209 in evaluate
  File "/home/ngux/Solaar/lib/logitech_receiver/diversion.py", line 844 in process_notification
  File "/home/ngux/Solaar/lib/logitech_receiver/notifications.py", line 432 in _process_feature_notification
  File "/home/ngux/Solaar/lib/logitech_receiver/notifications.py", line 197 in _process_device_notification
  File "/home/ngux/Solaar/lib/logitech_receiver/notifications.py", line 60 in process
  File "/home/ngux/Solaar/lib/solaar/listener.py", line 192 in _notifications_handler
  File "/home/ngux/Solaar/lib/logitech_receiver/listener.py", line 190 in run
  File "/usr/lib/python3.9/threading.py", line 973 in _bootstrap_inner
  File "/usr/lib/python3.9/threading.py", line 930 in _bootstrap

Thread 0x00007fc684ecb640 (most recent call first):
  File "/usr/local/lib/python3.9/dist-packages/python_xlib-0.31-py3.9.egg/Xlib/protocol/display.py", line 561 in send_and_recv
  File "/usr/local/lib/python3.9/dist-packages/python_xlib-0.31-py3.9.egg/Xlib/protocol/rq.py", line 1381 in reply
  File "/usr/local/lib/python3.9/dist-packages/python_xlib-0.31-py3.9.egg/Xlib/protocol/rq.py", line 1369 in __init__
  File "/usr/local/lib/python3.9/dist-packages/python_xlib-0.31-py3.9.egg/Xlib/xobject/drawable.py", line 455 in get_property
  File "/usr/local/lib/python3.9/dist-packages/python_xlib-0.31-py3.9.egg/Xlib/xobject/drawable.py", line 472 in get_full_property
  File "/home/ngux/Solaar/lib/logitech_receiver/diversion.py", line 295 in x11_focus_prog
  File "/home/ngux/Solaar/lib/logitech_receiver/diversion.py", line 333 in evaluate
  File "/home/ngux/Solaar/lib/logitech_receiver/diversion.py", line 209 in evaluate
  File "/home/ngux/Solaar/lib/logitech_receiver/diversion.py", line 209 in evaluate
  File "/home/ngux/Solaar/lib/logitech_receiver/diversion.py", line 209 in evaluate
  File "/home/ngux/Solaar/lib/logitech_receiver/diversion.py", line 844 in process_notification
  File "/home/ngux/Solaar/lib/logitech_receiver/notifications.py", line 432 in _process_feature_notification
  File "/home/ngux/Solaar/lib/logitech_receiver/notifications.py", line 197 in _process_device_notification
  File "/home/ngux/Solaar/lib/logitech_receiver/notifications.py", line 60 in process
  File "/home/ngux/Solaar/lib/solaar/listener.py", line 263 in _notifications_handler
  File "/home/ngux/Solaar/lib/logitech_receiver/listener.py", line 190 in run
  File "/usr/lib/python3.9/threading.py", line 973 in _bootstrap_inner
  File "/usr/lib/python3.9/threading.py", line 930 in _bootstrap

Thread 0x00007fc69e5ea640 (most recent call first):
  File "/usr/lib/python3.9/threading.py", line 312 in wait
  File "/usr/lib/python3.9/queue.py", line 171 in get
  File "/home/ngux/Solaar/lib/solaar/tasks.py", line 60 in run
  File "/usr/lib/python3.9/threading.py", line 973 in _bootstrap_inner
  File "/usr/lib/python3.9/threading.py", line 930 in _bootstrap

Thread 0x00007fc6a0159640 (most recent call first):
  File "/usr/local/lib/python3.9/dist-packages/python_xlib-0.31-py3.9.egg/Xlib/protocol/display.py", line 561 in send_and_recv
  File "/usr/local/lib/python3.9/dist-packages/python_xlib-0.31-py3.9.egg/Xlib/protocol/rq.py", line 1381 in reply
  File "/usr/local/lib/python3.9/dist-packages/python_xlib-0.31-py3.9.egg/Xlib/protocol/rq.py", line 1369 in __init__
  File "/usr/local/lib/python3.9/dist-packages/python_xlib-0.31-py3.9.egg/Xlib/ext/record.py", line 220 in __init__
  File "/usr/local/lib/python3.9/dist-packages/python_xlib-0.31-py3.9.egg/Xlib/ext/record.py", line 239 in enable_context

Current thread 0x00007fc6a37ba740 (most recent call first):
  File "/home/ngux/Solaar/lib/solaar/gtk.py", line 127 in _handlesigint
  File "/usr/lib/python3/dist-packages/gi/_ossighelper.py", line 92 in signal_notify
  File "/usr/lib/python3/dist-packages/gi/overrides/Gio.py", line 42 in run
  File "/home/ngux/Solaar/lib/solaar/ui/__init__.py", line 161 in run_loop
  File "/home/ngux/Solaar/lib/solaar/gtk.py", line 169 in main
  File "/home/ngux/Solaar/bin/solaar", line 55 in <module>
solaar: exit due to keyboard interrupt
:~/Solaar$ 
```
</details>

Another processus from the begining:

<details>

```
bash
:~/Solaar$ /home/ngux/Solaar/bin/solaar -dd
02:50:20,214     INFO [MainThread] root: language en_GB (UTF-8), translations path None
02:50:20,371     INFO [MainThread] solaar.upower: connected to system dbus, watching for suspend/resume events

(solaar:5930): Gtk-WARNING **: 02:50:20.376: Theme parsing error: gtk.css:1:106: Failed to import: Error opening file /home/ngux/.local/share/gnome-shell/extensions/no-title-bar@jonaspoehler.de/stylesheet.css: No such file or directory

(solaar:5930): Gtk-WARNING **: 02:50:20.376: Theme parsing error: gtk.css:2:112: Failed to import: Error opening file /home/ngux/.local/share/gnome-shell/extensions/no-title-bar@jonaspoehler.de/stylesheet-tiled.css: No such file or directory

(solaar:5930): Gtk-WARNING **: 02:50:20.376: Theme parsing error: gtk.css:3:113: Failed to import: Error opening file /home/ngux/.local/share/gnome-shell/extensions/no-title-bar@franglais125.gmail.com/stylesheet.css: No such file or directory

(solaar:5930): Gtk-WARNING **: 02:50:20.376: Theme parsing error: gtk.css:4:119: Failed to import: Error opening file /home/ngux/.local/share/gnome-shell/extensions/no-title-bar@franglais125.gmail.com/stylesheet-tiled.css: No such file or directory

(solaar:5930): Gtk-WARNING **: 02:50:20.379: Theme parsing error: gtk.css:1969:72: The :insensitive pseudo-class is deprecated. Use :disabled instead.

(solaar:5930): Gtk-WARNING **: 02:50:20.379: Theme parsing error: gtk.css:1969:117: The :insensitive pseudo-class is deprecated. Use :disabled instead.

(solaar:5930): Gtk-WARNING **: 02:50:20.379: Theme parsing error: gtk.css:1993:72: The :insensitive pseudo-class is deprecated. Use :disabled instead.

(solaar:5930): Gtk-WARNING **: 02:50:20.379: Theme parsing error: gtk.css:1993:117: The :insensitive pseudo-class is deprecated. Use :disabled instead.
02:50:20,401     INFO [MainThread] solaar.ui.notify: starting desktop notifications

(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 8x8/emblems of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 16x16/actions of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 16x16/apps of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 16x16/categories of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 16x16/devices of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 16x16/emblems of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 16x16/emotes of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 16x16/mimetypes of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 16x16/panel of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 16x16/status of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 16x16@2x/actions of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 16x16@2x/apps of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 16x16@2x/categories of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 16x16@2x/devices of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 16x16@2x/emblems of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 16x16@2x/emotes of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 16x16@2x/mimetypes of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 16x16@2x/panel of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 16x16@2x/status of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 22x22/actions of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 22x22/animations of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 22x22/apps of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 22x22/categories of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 22x22/devices of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 22x22/emblems of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 22x22/emotes of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 22x22/mimetypes of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 22x22/panel of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 22x22/status of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 22x22@2x/actions of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 22x22@2x/animations of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 22x22@2x/apps of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 22x22@2x/categories of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 22x22@2x/devices of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 22x22@2x/emblems of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 22x22@2x/emotes of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 22x22@2x/mimetypes of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 22x22@2x/panel of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 22x22@2x/status of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 24x24/actions of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 24x24/animations of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 24x24/apps of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 24x24/categories of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 24x24/devices of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 24x24/emblems of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 24x24/emotes of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 24x24/mimetypes of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 24x24/panel of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 24x24/status of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 24x24@2x/actions of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 24x24@2x/animations of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 24x24@2x/apps of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 24x24@2x/categories of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 24x24@2x/devices of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 24x24@2x/emblems of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 24x24@2x/emotes of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 24x24@2x/mimetypes of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 24x24@2x/panel of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 24x24@2x/status of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 32x32/actions of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 32x32/apps of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 32x32/categories of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 32x32/devices of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 32x32/emblems of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 32x32/emotes of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 32x32/mimetypes of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 32x32/status of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 32x32@2x/actions of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 32x32@2x/apps of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 32x32@2x/categories of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 32x32@2x/devices of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 32x32@2x/emblems of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 32x32@2x/emotes of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 32x32@2x/mimetypes of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 32x32@2x/status of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 48x48/apps of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 48x48/categories of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 48x48/devices of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 48x48/emblems of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 48x48/emotes of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 48x48/mimetypes of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 48x48/status of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 48x48@2x/apps of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 48x48@2x/categories of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 48x48@2x/devices of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 48x48@2x/emblems of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 48x48@2x/emotes of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 48x48@2x/mimetypes of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.404: Theme directory 48x48@2x/places of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.405: Theme directory 48x48@2x/status of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.405: Theme directory 64x64/apps of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.405: Theme directory 64x64/categories of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.405: Theme directory 64x64/devices of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.405: Theme directory 64x64/mimetypes of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.405: Theme directory 64x64@2x/apps of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.405: Theme directory 64x64@2x/categories of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.405: Theme directory 64x64@2x/devices of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.405: Theme directory 64x64@2x/mimetypes of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.405: Theme directory symbolic/actions of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.405: Theme directory symbolic/apps of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.405: Theme directory symbolic/categories of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.405: Theme directory symbolic/devices of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.405: Theme directory symbolic/emblems of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.405: Theme directory symbolic/emotes of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.405: Theme directory symbolic/mimetypes of theme Hack-Lime has no size field


(solaar:5930): Gtk-WARNING **: 02:50:20.405: Theme directory symbolic/status of theme Hack-Lime has no size field

02:50:20,443     INFO [MainThread] solaar.listener: starting receiver listening threads
02:50:20,445     INFO [MainThread] solaar.listener: receiver event add DeviceInfo(path='/dev/hidraw1', vendor_id='046D', product_id='C52B', serial='', release=None, manufacturer=None, product=None, interface=2, driver='logitech-djreceiver', bus_id=3, isDevice=None)
02:50:20,445     INFO [MainThread] logitech_receiver.base: New lock 17
02:50:20,550     INFO [ReceiverListener:hidraw1] logitech_receiver.listener: started with <UnifyingReceiver(/dev/hidraw1,17)> (17)
02:50:20,550     INFO [ReceiverListener:hidraw1] solaar.listener: <UnifyingReceiver(/dev/hidraw1,17)>: notifications listener has started (17)
02:50:20,550     INFO [ReceiverListener:hidraw1] logitech_receiver.base: New lock <_ThreadedHandle(/dev/hidraw1)>
02:50:20,555     INFO [ReceiverListener:hidraw1] logitech_receiver.receiver: <UnifyingReceiver(/dev/hidraw1,17)>: receiver notifications enabled => ('wireless', 'software present')
02:50:20,556     INFO [MainThread] solaar.listener: receiver event add DeviceInfo(path='/dev/hidraw3', vendor_id='046D', product_id='B342', serial='34:88:5d:d1:b2:a1', release=None, manufacturer=None, product=None, interface=0, driver='hid-generic', bus_id=5, isDevice=True)
02:50:20,557     INFO [MainThread] logitech_receiver.base: New lock 19
02:50:20,559     INFO [ReceiverListener:hidraw1] solaar.listener: status_changed <UnifyingReceiver(/dev/hidraw1,17)>: present, No paired devices. (0) 
02:50:20,564     INFO [ReceiverListener:hidraw1] logitech_receiver.receiver: <UnifyingReceiver(/dev/hidraw1,17)>: found new device 1 (406B)
02:50:20,565     INFO [ReceiverListener:hidraw1] solaar.listener: connection Notification(10,1,41,04,326B40) for <Device(1,406B,Multi Device Silent Mouse M585/M590,FE035A84)> (mouse)
02:50:20,567     INFO [ReceiverListener:hidraw1] solaar.listener: status_changed <UnifyingReceiver(/dev/hidraw1,17)>: present, 1 paired device. (0) 
02:50:20,568     INFO [ReceiverListener:hidraw1] logitech_receiver.base: New lock 20
02:50:20,713     INFO [ReceiverListener:hidraw1] solaar.listener: status_changed <Device(1,406B,Multi Device Silent Mouse M585/M590,FE035A84)>: paired online, {'LINK ENCRYPTED': True, 'BATTERY LEVEL': 50, 'BATTERY STATUS': NamedInt(0, 'discharging'), 'BATTERY NEXT LEVEL': 20, 'BATTERY VOLTAGE': None, 'BATTERY CHARGING': False, 'ERROR': None} (0) 
02:50:20,757     INFO [ReceiverListener:hidraw1] logitech_receiver.device: <Device(1,406B,Multi Device Silent Mouse M585/M590,FE035A84)>: unitId 85DA07C8 does not match serial FE035A84
02:50:20,884     INFO [MainThread] solaar.listener: status_changed <Device(255,B342,Bluetooth Multi-Device Keyboard K380,)>: paired online, {'BATTERY LEVEL': 50, 'BATTERY STATUS': NamedInt(0, 'discharging'), 'BATTERY NEXT LEVEL': 20, 'BATTERY VOLTAGE': None, 'BATTERY CHARGING': False, 'ERROR': None} (0) 
02:50:20,984     INFO [ReceiverListener:hidraw1] logitech_receiver.settings_templates: check_feature mouse-gestures [REPROG CONTROLS V4] detected <Setting([feature:choice] M585/M590:mouse-gestures=None)>
02:50:20,986     INFO [ReceiverListener:hidraw1] logitech_receiver.settings_templates: check_feature reprogrammable-keys [REPROG CONTROLS V4] detected <Setting([feature:map choice] M585/M590:reprogrammable-keys=None)>
02:50:20,986     INFO [ReceiverListener:hidraw1] logitech_receiver.settings_templates: check_feature divert-keys [REPROG CONTROLS V4] detected <Setting([feature:map choice] M585/M590:divert-keys=None)>
02:50:20,992     INFO [MainThread] logitech_receiver.settings_templates: check_feature fn-swap [NEW FN INVERSION] detected <Setting([feature:toggle] Keyboard K380:fn-swap=None)>
02:50:21,125     INFO [ReceiverListener:hidraw1] logitech_receiver.settings_templates: check_feature change-host [CHANGE HOST] detected <Setting([feature:choice] M585/M590:change-host=None)>
02:50:21,126     INFO [ReceiverListener:hidraw1] logitech_receiver.status: <Device(1,406B,Multi Device Silent Mouse M585/M590,FE035A84)> pushing device settings [<Setting([feature:toggle] M585/M590:lowres-smooth-scroll=None)>, <Setting([feature:range] M585/M590:pointer_speed=None)>, <Setting([feature:choice] M585/M590:mouse-gestures=None)>, <Setting([feature:map choice] M585/M590:reprogrammable-keys=None)>, <Setting([feature:map choice] M585/M590:divert-keys=None)>, <Setting([feature:choice] M585/M590:change-host=None)>]
02:50:21,225  WARNING [ReceiverListener:hidraw1] logitech_receiver.hidpp20: REPROG_CONTROLS_v4 setCidReporting on device <Device(1,406B,Multi Device Silent Mouse M585/M590,FE035A84)> didn't echo request packet.
02:50:21,245  WARNING [ReceiverListener:hidraw1] logitech_receiver.hidpp20: REPROG_CONTROLS_v4 setCidReporting on device <Device(1,406B,Multi Device Silent Mouse M585/M590,FE035A84)> didn't echo request packet.
02:50:21,251     INFO [MainThread] logitech_receiver.settings_templates: check_feature divert-keys [REPROG CONTROLS V4] detected <Setting([feature:map choice] Keyboard K380:divert-keys=None)>
02:50:21,265  WARNING [ReceiverListener:hidraw1] logitech_receiver.hidpp20: REPROG_CONTROLS_v4 setCidReporting on device <Device(1,406B,Multi Device Silent Mouse M585/M590,FE035A84)> didn't echo request packet.
02:50:21,273     INFO [MainThread] logitech_receiver.settings_templates: check_feature disable-keyboard-keys [KEYBOARD DISABLE KEYS] detected <Setting([feature:multiple toggle] Keyboard K380:disable-keyboard-keys=None)>
02:50:21,285  WARNING [ReceiverListener:hidraw1] logitech_receiver.hidpp20: REPROG_CONTROLS_v4 setCidReporting on device <Device(1,406B,Multi Device Silent Mouse M585/M590,FE035A84)> didn't echo request packet.
02:50:21,305  WARNING [ReceiverListener:hidraw1] logitech_receiver.hidpp20: REPROG_CONTROLS_v4 setCidReporting on device <Device(1,406B,Multi Device Silent Mouse M585/M590,FE035A84)> didn't echo request packet.
02:50:21,318     INFO [MainThread] logitech_receiver.settings_templates: check_feature multiplatform [MULTIPLATFORM] detected <Setting([feature:choice] Keyboard K380:multiplatform=None)>
02:50:21,325  WARNING [ReceiverListener:hidraw1] logitech_receiver.hidpp20: REPROG_CONTROLS_v4 setCidReporting on device <Device(1,406B,Multi Device Silent Mouse M585/M590,FE035A84)> didn't echo request packet.
02:50:21,345  WARNING [ReceiverListener:hidraw1] logitech_receiver.hidpp20: REPROG_CONTROLS_v4 setCidReporting on device <Device(1,406B,Multi Device Silent Mouse M585/M590,FE035A84)> didn't echo request packet.
02:50:21,365  WARNING [ReceiverListener:hidraw1] logitech_receiver.hidpp20: REPROG_CONTROLS_v4 setCidReporting on device <Device(1,406B,Multi Device Silent Mouse M585/M590,FE035A84)> didn't echo request packet.
02:50:21,387  WARNING [ReceiverListener:hidraw1] logitech_receiver.hidpp20: REPROG_CONTROLS_v4 setCidReporting on device <Device(1,406B,Multi Device Silent Mouse M585/M590,FE035A84)> didn't echo request packet.
02:50:21,407  WARNING [ReceiverListener:hidraw1] logitech_receiver.hidpp20: REPROG_CONTROLS_v4 setCidReporting on device <Device(1,406B,Multi Device Silent Mouse M585/M590,FE035A84)> didn't echo request packet.
02:50:21,427  WARNING [ReceiverListener:hidraw1] logitech_receiver.hidpp20: REPROG_CONTROLS_v4 setCidReporting on device <Device(1,406B,Multi Device Silent Mouse M585/M590,FE035A84)> didn't echo request packet.
02:50:21,432     INFO [MainThread] logitech_receiver.settings_templates: check_feature change-host [CHANGE HOST] detected <Setting([feature:choice] Keyboard K380:change-host=None)>
02:50:21,432     INFO [MainThread] logitech_receiver.status: <Device(255,B342,Bluetooth Multi-Device Keyboard K380,)> pushing device settings [<Setting([feature:toggle] Keyboard K380:fn-swap=None)>, <Setting([feature:map choice] Keyboard K380:divert-keys=None)>, <Setting([feature:multiple toggle] Keyboard K380:disable-keyboard-keys=None)>, <Setting([feature:choice] Keyboard K380:multiplatform=None)>, <Setting([feature:choice] Keyboard K380:change-host=None)>]
02:50:21,447  WARNING [ReceiverListener:hidraw1] logitech_receiver.hidpp20: REPROG_CONTROLS_v4 setCidReporting on device <Device(1,406B,Multi Device Silent Mouse M585/M590,FE035A84)> didn't echo request packet.
02:50:21,467     INFO [ReceiverListener:hidraw1] solaar.listener: status_changed <Device(1,406B,Multi Device Silent Mouse M585/M590,FE035A84)>: paired online, {'LINK ENCRYPTED': True, 'BATTERY LEVEL': 50, 'BATTERY STATUS': NamedInt(0, 'discharging'), 'BATTERY NEXT LEVEL': 20, 'BATTERY VOLTAGE': None, 'BATTERY CHARGING': False, 'ERROR': None} (0) 
02:50:21,472     INFO [ReceiverListener:hidraw1] logitech_receiver.notifications: <Device(1,406B,Multi Device Silent Mouse M585/M590,FE035A84)>: spurious BATTERY status Notification(11,1,08,10,0400C21C0A0000000000000000000000)
02:50:21,692     INFO [MainThread] solaar.listener: status_changed <Device(255,B342,Bluetooth Multi-Device Keyboard K380,)>: paired online, {'BATTERY LEVEL': 50, 'BATTERY STATUS': NamedInt(0, 'discharging'), 'BATTERY NEXT LEVEL': 20, 'BATTERY VOLTAGE': None, 'BATTERY CHARGING': False, 'ERROR': None} (0) initialization
02:50:21,703     INFO [ReceiverListener:hidraw3] logitech_receiver.listener: started with <Device(255,B342,Bluetooth Multi-Device Keyboard K380,)> (19)
02:50:21,704     INFO [ReceiverListener:hidraw3] solaar.listener: <Device(255,B342,Bluetooth Multi-Device Keyboard K380,)>: notifications listener has started (19)
02:50:21,704     INFO [ReceiverListener:hidraw3] logitech_receiver.base: New lock <_ThreadedHandle(/dev/hidraw3)>
02:50:21,723     INFO [ReceiverListener:hidraw3] solaar.listener: status_changed <Device(255,B342,Bluetooth Multi-Device Keyboard K380,)>: paired online, {'BATTERY LEVEL': 50, 'BATTERY STATUS': NamedInt(0, 'discharging'), 'BATTERY NEXT LEVEL': 20, 'BATTERY VOLTAGE': None, 'BATTERY CHARGING': False, 'ERROR': None, 'NOTIFICATION FLAGS': False} (0) 

(solaar:5930): Gdk-CRITICAL **: 02:50:22.988: gdk_window_thaw_toplevel_updates: assertion 'window->update_and_descendants_freeze_count > 0' failed
```
</details>
Does Solaar start consuming CPU immediately?  Does this state continue indefinitely?  Does the Solaar main window eventually show up and can you then change device settings?

It looks as if the debugging output you provided come very shortly after Solaar starts.
> Does Solaar start consuming CPU immediately?

Not aways. For now I didn't succeed to understand what is the trigger...

> Does this state continue indefinitely?

When it starts to go up, it doesn't stop. Usually that the restless activity of the fan which warn me.

> Does the Solaar main window eventually show up and can you then change device settings?

The window does not pop up but i can open it and I can change device settings.

I can say that the git version usually use 20% of CPU and works better than the apt repository version. Yesterday I hit 100% but I forgot to save the debug before killing the processes. I now always open solaar with `-dd` so, I'll give you another debug next time it goes awry.


OK.   I'll wait for the next run.  

By the way, please use `-ddd` to get even more debug information.
Seems to be the same as #1455 
@nguxx Please try the testing suggested in issue #1455
@nguxx Have you had a chance to test the PR?
Hi pfps,
In deed I have plenty of no-op operation and in deed I have a K380 keyboard.
Because I'm not enough familiar with git I'm not sure to have done the right thing 
I run the commands :
```
git fetch origin pull/1456/head:pull_1456
git checkout pull_1456
```
then
```
git checkout pull_1456
git fetch origin pull/1456/head
git reset --hard FETCH_HEAD
```
and eventually I run
`$HOME/Solaar/bin/solaar`
The amount of CPU is better than before but still around 10 and 15%

Did I get it right ?
You didn't have to do both of these, but there was no harm in doing the second group. 

10-15% CPU utilization seems rather high, but if Solaar is behaving normally, i.e., you can make whatever changes you need to make, then I guess that is what you can expect.  But let me see if detecting these no-ops earlier cuts down on the CPU utilization.




Resolving patch:
diff --git a/lib/logitech_receiver/base.py b/lib/logitech_receiver/base.py
--- a/lib/logitech_receiver/base.py
+++ b/lib/logitech_receiver/base.py
@@ -325,6 +325,10 @@ def make_notification(report_id, devnumber, data):
         return
 
     address = ord(data[1:2])
+    if sub_id == 0x00 and (address & 0x0F == 0x00):
+        # this is a no-op notification - don't do anything with it
+        return
+
     if (
         # standard HID++ 1.0 notification, SubId may be 0x40 - 0x7F
         (sub_id >= 0x40) or  # noqa: E131


Test patch: