Repository: pwr-Solaar/Solaar

Issue:
some devices, e.g., MX Master 3S send an initial movement report when going into rawXY mode, as for mouse gestures and sliding DPI
**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.  Upgrade to the latest version and see if your issue persists. -->
<!-- If you not running the current version of Solaar, strongly consider upgrading to the newest version. -->
- Solaar version (`solaar --version` or `git describe --tags` if cloned from this repository): 1.1.1
- Distribution: POP_OS! with KDE Plasma
- Kernel version (ex. `uname -srmo`): `Linux 5.17.15-76051715-generic x86_64 GNU/Linux`
- Output of `solaar show`:

<details>

```
Solaar version 1.1.1

Bolt Receiver
  Device path  : /dev/hidraw3
  USB id       : 046d:C548
  Serial       : 30423538383043393637353438324638
  Has 1 paired device(s) out of a maximum of 6.
  Notifications: wireless, software present (0x000900)
  Device activity counters: 2=163

  2: MX Master 3S
     Device path  : None
     WPID         : B034
     Codename     : MX Master 3S
     Kind         : mouse
     Protocol     : HID++ 4.5
     Serial number: 8DF9438F
     Model ID:      B03400000000
     Unit ID:       8DF9438F
        Bootloader: BL1 69.00.B0003
          Firmware: RBM 22.00.B0003
             Other: 
     The power switch is located on the (unknown).
     Supports 36 HID++ 2.0 features:
         0: ROOT                   {0000}   
         1: FEATURE SET            {0001}   
         2: DEVICE FW VERSION      {0003}   
            Firmware: Bootloader BL1 69.00.B0003 B03438FCA4E6
            Firmware: Firmware RBM 22.00.B0003 B03438FCA4E6
            Firmware: Other   
            Unit ID: 8DF9438F  Model ID: B03400000000  Transport IDs: {'btleid': 'B034'}
         3: DEVICE NAME            {0005}   
            Name: MX Master 3S
            Kind: mouse
         4: WIRELESS DEVICE STATUS {1D4B}   
         5: RESET                  {0020}   
         6: CRYPTO ID              {0021}   
         7: DEVICE FRIENDLY NAME   {0007}   
            Friendly Name: MX Master 3S
         8: UNIFIED BATTERY        {1004}   
         9: REPROG CONTROLS V4     {1B04}   
            Key/Button Actions (saved): {'195': 195, '196': 196, '80': 80, '81': 81, '82': 82, '83': 83, '86': 86}
            Key/Button Actions        : {'80': 80, '81': 81, '82': 82, '83': 83, '86': 86, '195': 195, '196': 196}
            Key/Button Diversion (saved): {'195': 1, '196': 0, '82': 0, '83': 0, '86': 0}
            Key/Button Diversion        : {'82': 0, '83': 0, '86': 0, '195': 1, '196': 0}
        10: CHANGE HOST            {1814}   
            Change Host        : 3:vicrog
        11: HOSTS INFO             {1815}   
            Host 0 (paired): LAPTOP-1B0L9ABC
            Host 1 (paired): vicrog
            Host 2 (paired): vicrog
        12: XY STATS               {2250}   
        13: ADJUSTABLE DPI         {2201}   
            Sensitivity (DPI) (saved): 1000
            Sensitivity (DPI)        : 1000
        14: SMART SHIFT            {2110}   
            Scroll Wheel Rachet (saved): 10
            Scroll Wheel Rachet        : 10
        15: HIRES WHEEL            {2121}   
            Multiplier: 15
            Has invert: Normal wheel motion
            Has ratchet switch: Normal wheel mode
            Low resolution mode
            HID notification
            Scroll Wheel Direction (saved): False
            Scroll Wheel Direction        : False
            Scroll Wheel Resolution (saved): False
            Scroll Wheel Resolution        : False
        16: THUMB WHEEL            {2150}   
            Thumb Wheel Diversion (saved): False
            Thumb Wheel Diversion        : False
            Thumb Wheel Direction (saved): True
            Thumb Wheel Direction        : True
        17: WHEEL STATS            {2251}   
        18: unknown:00C3           {00C3}   
        19: DEVICE RESET           {1802}   internal, hidden, unknown:000010
        20: unknown:1803           {1803}   internal, hidden, unknown:000010
        21: CONFIG DEVICE PROPS    {1806}   internal, hidden, unknown:000010
        22: unknown:1816           {1816}   internal, hidden, unknown:000010
        23: OOBSTATE               {1805}   internal, hidden
        24: unknown:1830           {1830}   internal, hidden, unknown:000010
        25: unknown:1891           {1891}   internal, hidden, unknown:000008
        26: unknown:18A1           {18A1}   internal, hidden, unknown:000010
        27: unknown:1E00           {1E00}   hidden
        28: unknown:1E02           {1E02}   internal, hidden
        29: unknown:1602           {1602}   
        30: unknown:1EB0           {1EB0}   internal, hidden, unknown:000010
        31: unknown:1861           {1861}   internal, hidden, unknown:000010
        32: unknown:9300           {9300}   internal, hidden, unknown:000010
        33: unknown:9001           {9001}   internal, hidden, unknown:000010
        34: unknown:1E22           {1E22}   internal, hidden, unknown:000010
        35: unknown:9205           {9205}   internal, hidden, unknown:000010
     Has 8 reprogrammable keys:
         0: Left Button               , default: Left Click                  => Left Click                
             mse, analytics key events, pos:0, group:1, group mask:g1
             reporting: default
         1: Right Button              , default: Right Click                 => Right Click               
             mse, analytics key events, pos:0, group:1, group mask:g1
             reporting: default
         2: Middle Button             , default: Mouse Middle Button         => Mouse Middle Button       
             mse, reprogrammable, divertable, raw XY, analytics key events, pos:0, group:2, group mask:g1,g2
             reporting: default
         3: Back Button               , default: Mouse Back Button           => Mouse Back Button         
             mse, reprogrammable, divertable, raw XY, analytics key events, pos:0, group:2, group mask:g1,g2
             reporting: default
         4: Forward Button            , default: Mouse Forward Button        => Mouse Forward Button      
             mse, reprogrammable, divertable, raw XY, analytics key events, pos:0, group:2, group mask:g1,g2
             reporting: default
         5: Mouse Gesture Button      , default: Gesture Button Navigation   => Gesture Button Navigation 
             mse, reprogrammable, divertable, raw XY, analytics key events, pos:0, group:2, group mask:g1,g2
             reporting: diverted, raw XY diverted
         6: Smart Shift               , default: Smart Shift                 => Smart Shift               
             mse, reprogrammable, divertable, raw XY, analytics key events, 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: 35%, discharging.
```
</details>

- Contents of `~/.config/solaar/config.yaml` (or `~/.config/solaar/config.json` if `~/.config/solaar/config.yaml` not present):

<details>

```
{
  "B034:8DF9438F": {
    "_dpi-sliding": 18,
    "_modelId": "B03400000000",
    "_name": "MX Master 3S",
    "_sensitive": {
      "change-host": false,
      "divert-keys": false,
      "dpi-sliding": false,
      "hires-smooth-invert": false,
      "mouse-gestures": true,
      "thumb-scroll-invert": false
    },
    "_serial": "8DF9438F",
    "_unitId": "8DF9438F",
    "divert-keys": {
      "195": 1,
      "196": 0,
      "82": 0,
      "83": 0,
      "86": 0
    },
    "dpi": 1000,
    "dpi-sliding": "0",
    "hires-smooth-invert": false,
    "hires-smooth-resolution": false,
    "mouse-gestures": "195",
    "reprogrammable-keys": {
      "195": 195,
      "196": 196,
      "80": 80,
      "81": 81,
      "82": 82,
      "83": 83,
      "86": 86
    },
    "smart-shift": 10,
    "thumb-scroll-invert": true,
    "thumb-scroll-mode": false
  },
  "_version": "1.1.1"
}
```
</details>


- Errors or warrnings from Solaar: None
<!-- Run Solaar as `solaar -dd`, after killing any running Solaar processes.  If any warnings or errors show up, include the output here. -->



**Describe the bug**
As per my rules config, I've setup gestures for each direction and a no-op gesture. I'm getting strange behaviour when doing gestures.

Scenario 1:
- move mouse to the right
- stop the mouse
- <here I've tried waiting from 0 to 10 seconds to see if behaviour changes, it does not>
- hit the gesture button
Expected: No-op Gesture action
Actual: Right gesture

Scenario 2:
- move mouse to the right
- stop the mouse
- push and hold the gesture button
- move mouse to the left
- release gesture button
Expected: Left Gesture action
Actual: Right gesture

**To Reproduce**
Steps to reproduce the behavior:
1. Create gesture actions as per my rules config above
2. Follow the steps in the bug description



Discussion:
If you run solaar as `solaar -dd` you will see the gesture notifications as they are created by Solaar including the gesture data.  The gesture data is a list whose first element is the number of events followed by event data.  Mouse movement data consists of a 0 followed by x (positive is right) and y (positive is down) movement  Diverted key data consists of a 1 followed by the Logitech key code.

So please try `solaar -dd` and see whether the notifications make sense.  If not provide the output and describe what was happening for each notification.

You could also try `solaar -ddd`, which outputs the actual message received by Solaar from the mouse showing when the key that initiates mouse gesture processing is pressed, the messages that the mouse sends during mouse gesture processing, and the message that the mouse sends when the gesture key is released.  However, because of the amount of processing required the mouse movements are often broken up when running `solaar -ddd` resulting in many small movements.
I'm not 100% sure where those numbers are located in the logs. I see the Master 3S is not in the list of supported mice yet, so maybe it's that?

I ran `solaar -dd` and did the following:
- start from neutral
- move mouse to right
- stop
- wait a little
- tap gesture key (should be noop but did right gesture)
- move mouse left
- stop
- wait
- tap gesture key (should be noop but did left gesture)

Below are the relevant logs:
```
08:24:34,473    DEBUG [ReceiverListener:hidraw2] logitech_receiver.base: (19) => r[11 FF 0900 00C30000000000000000000000000000]
08:24:34,473    DEBUG [ReceiverListener:hidraw2] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,?)>: notification for feature REPROG CONTROLS V4, report 0, data 00C30000000000000000000000000000
08:24:34,473    DEBUG [ReceiverListener:hidraw2] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,?)>: diverted controls pressed: 0xc3, 0x0, 0x0, 0x0
08:24:34,474    DEBUG [ReceiverListener:hidraw2] logitech_receiver.base: (19) => r[11 FF 0910 017CFFE8000000000000000000000000]
08:24:34,474    DEBUG [ReceiverListener:hidraw2] logitech_receiver.settings: dpi: settings read 1000 from <Device(255,B034,MX Master 3S,?)>
08:24:34,474    DEBUG [ReceiverListener:hidraw2] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,?)>: notification for feature REPROG CONTROLS V4, report 0, data 017CFFE8000000000000000000000000
08:24:34,474    DEBUG [ReceiverListener:hidraw2] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,?)>: rawXY dx=380 dy=-24
08:24:34,593    DEBUG [ReceiverListener:hidraw2] logitech_receiver.base: (19) => r[11 FF 0900 00000000000000000000000000000000]
08:24:34,593    DEBUG [ReceiverListener:hidraw2] logitech_receiver.settings_templates: mouse gesture move event 5 0 [1, 0, 5, 0]
08:24:34,593     INFO [ReceiverListener:hidraw2] logitech_receiver.settings_templates: mouse gesture notification [1, 0, 5, 0]
08:24:34,593     INFO [ReceiverListener:hidraw2] logitech_receiver.diversion: KeyPress action: ['Control_L', 'Super_L', 'Right'], modifiers 0 ['0x25', '0x85', '0x72']
08:24:34,595    DEBUG [ReceiverListener:hidraw2] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,?)>: notification for feature REPROG CONTROLS V4, report 0, data 00000000000000000000000000000000
08:24:34,595    DEBUG [ReceiverListener:hidraw2] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,?)>: diverted controls pressed: 0x0, 0x0, 0x0, 0x0
08:24:35,928    DEBUG [ReceiverListener:hidraw2] logitech_receiver.base: (19) => r[11 FF 0900 00C30000000000000000000000000000]
08:24:35,928    DEBUG [ReceiverListener:hidraw2] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,?)>: notification for feature REPROG CONTROLS V4, report 0, data 00C30000000000000000000000000000
08:24:35,928    DEBUG [ReceiverListener:hidraw2] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,?)>: diverted controls pressed: 0xc3, 0x0, 0x0, 0x0
08:24:35,930    DEBUG [ReceiverListener:hidraw2] logitech_receiver.base: (19) => r[11 FF 0910 FE580009000000000000000000000000]
08:24:35,930    DEBUG [ReceiverListener:hidraw2] logitech_receiver.settings: dpi: settings read 1000 from <Device(255,B034,MX Master 3S,?)>
08:24:35,931    DEBUG [ReceiverListener:hidraw2] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,?)>: notification for feature REPROG CONTROLS V4, report 0, data FE580009000000000000000000000000
08:24:35,931    DEBUG [ReceiverListener:hidraw2] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,?)>: rawXY dx=-424 dy=9
08:24:36,055    DEBUG [ReceiverListener:hidraw2] logitech_receiver.base: (19) => r[11 FF 0900 00000000000000000000000000000000]
08:24:36,055    DEBUG [ReceiverListener:hidraw2] logitech_receiver.settings_templates: mouse gesture move event -6 0 [1, 0, -6, 0]
08:24:36,055     INFO [ReceiverListener:hidraw2] logitech_receiver.settings_templates: mouse gesture notification [1, 0, -6, 0]
08:24:36,056     INFO [ReceiverListener:hidraw2] logitech_receiver.diversion: KeyPress action: ['Control_L', 'Super_L', 'Left'], modifiers 0 ['0x25', '0x85', '0x71']
08:24:36,058    DEBUG [ReceiverListener:hidraw2] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,?)>: notification for feature REPROG CONTROLS V4, report 0, data 00000000000000000000000000000000
08:24:36,058    DEBUG [ReceiverListener:hidraw2] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,?)>: diverted controls pressed: 0x0, 0x0, 0x0, 0x0
```
The log appears to show that Solaar is acting correctly given the information it receives from the mouse.
Solaar is reporting seeing six messages (lines from logitech_receiver.base), all related to the REPROG CONTROLS V4 feature, which is used for mouse gestures.   First, the Mouse Gesture Button (00C3) goes down.  Then the mouse immediately (or almost immediately) moves to the right (and up a little), which is turned into a gesture movement of 5,0.  Then the Button goes up ( and the gesture triggers a rule that simulates Control_L+Super_L+Right.  Then the Button goes down again, there is an immediate move left (down a bit), and the Button goes up.

So it appears that the mouse is somehow sending these extra movement reports and Solaar is just reporting on what it sees.

The question is what these extra movement reports represent.  Try running with `solaar -dd` and do large and small  movements in different directions before pressing the gesture button.  Also try moving the mouse while the button is down.
Oops, I meant to run with `solaar -ddd` so that the messages from the device show up.

Also, you appear to be running version 1.1.1 of Solaar.  You should upgrade to 1.1.4.
Before I continue, just want to say thanks for the great support :smile: The logs also make a lot more sense now after your description.

Ok, so I upgrade to 1.1.4, but same issue. I then tried something I should've tried from the start, and connected my 2S with the same settings. The 2S seems to work as expected.

It looks like this is a 3S thing. I'm guessing they changed the way that it publishes event messages and that's why it requires Logitech Options Plus in windows, which the older mice aren't compatible with (not even the MX Master 3). I'll see if I can figure out what it's doing this weekend and maybe report it back to you or see if I can make a PR.

Thanks again for the help.
I did some preliminary testing and it looks like there is a slight difference in how the 2S and 3S send messages. Possibly a new feature of the 3S or it's an upcoming feature that they haven't revealed yet and will enable with a new version of Logitech options Plus.

For the 2S we get this:
```
08:55:48,148    DEBUG [ReceiverListener:hidraw2] logitech_receiver.base: (17) => r[11 FF 0A00 00C30000000000000000000000000000]
08:55:48,148    DEBUG [ReceiverListener:hidraw2] logitech_receiver.notifications: <Device(255,B019,Wireless Mouse MX Master 2S,)>: notification for feature REPROG CONTROLS V4, report 0, data 00C30000000000000000000000000000
08:55:48,149    DEBUG [ReceiverListener:hidraw2] logitech_receiver.notifications: <Device(255,B019,Wireless Mouse MX Master 2S,)>: diverted controls pressed: 0xc3, 0x0, 0x0, 0x0
08:55:49,169    DEBUG [ReceiverListener:hidraw2] logitech_receiver.base: (17) => r[11 FF 0A10 FFFF0000000000000000000000000000]
08:55:49,169    DEBUG [ReceiverListener:hidraw2] logitech_receiver.settings: dpi: settings read 1000 from <Device(255,B019,Wireless Mouse MX Master 2S,)>
08:55:49,169    DEBUG [ReceiverListener:hidraw2] logitech_receiver.notifications: <Device(255,B019,Wireless Mouse MX Master 2S,)>: notification for feature REPROG CONTROLS V4, report 0, data FFFF0000000000000000000000000000
08:55:49,170    DEBUG [ReceiverListener:hidraw2] logitech_receiver.notifications: <Device(255,B019,Wireless Mouse MX Master 2S,)>: rawXY dx=-1 dy=0
08:55:49,170    DEBUG [ReceiverListener:hidraw2] logitech_receiver.base: (17) => r[11 FF 0A10 0000FFFF000000000000000000000000]
08:55:49,170    DEBUG [ReceiverListener:hidraw2] logitech_receiver.settings: dpi: settings read 1000 from <Device(255,B019,Wireless Mouse MX Master 2S,)>
08:55:49,170    DEBUG [ReceiverListener:hidraw2] logitech_receiver.notifications: <Device(255,B019,Wireless Mouse MX Master 2S,)>: notification for feature REPROG CONTROLS V4, report 0, data 0000FFFF000000000000000000000000
08:55:49,170    DEBUG [ReceiverListener:hidraw2] logitech_receiver.notifications: <Device(255,B019,Wireless Mouse MX Master 2S,)>: rawXY dx=0 dy=-1
08:55:49,176    DEBUG [ReceiverListener:hidraw2] logitech_receiver.base: (17) => r[11 FF 0A10 FFFF0000000000000000000000000000]
08:55:49,176    DEBUG [ReceiverListener:hidraw2] logitech_receiver.settings: dpi: settings read 1000 from <Device(255,B019,Wireless Mouse MX Master 2S,)>
08:55:49,176    DEBUG [ReceiverListener:hidraw2] logitech_receiver.notifications: <Device(255,B019,Wireless Mouse MX Master 2S,)>: notification for feature REPROG CONTROLS V4, report 0, data FFFF0000000000000000000000000000
08:55:49,176    DEBUG [ReceiverListener:hidraw2] logitech_receiver.notifications: <Device(255,B019,Wireless Mouse MX Master 2S,)>: rawXY dx=-1 dy=0
...
...
08:55:49,394    DEBUG [ReceiverListener:hidraw2] logitech_receiver.base: (17) => r[11 FF 0A10 FFFF0000000000000000000000000000]
08:55:49,394    DEBUG [ReceiverListener:hidraw2] logitech_receiver.settings: dpi: settings read 1000 from <Device(255,B019,Wireless Mouse MX Master 2S,)>
08:55:49,394    DEBUG [ReceiverListener:hidraw2] logitech_receiver.notifications: <Device(255,B019,Wireless Mouse MX Master 2S,)>: notification for feature REPROG CONTROLS V4, report 0, data FFFF0000000000000000000000000000
08:55:49,394    DEBUG [ReceiverListener:hidraw2] logitech_receiver.notifications: <Device(255,B019,Wireless Mouse MX Master 2S,)>: rawXY dx=-1 dy=0
08:55:49,619    DEBUG [ReceiverListener:hidraw2] logitech_receiver.base: (17) => r[11 FF 0A00 00000000000000000000000000000000]
08:55:49,620    DEBUG [ReceiverListener:hidraw2] logitech_receiver.settings_templates: mouse gesture move event -1 0 [1, 0, -1, 0]
08:55:49,620     INFO [ReceiverListener:hidraw2] logitech_receiver.settings_templates: mouse gesture notification [1, 0, -1, 0]
08:55:49,620    DEBUG [ReceiverListener:hidraw2] logitech_receiver.notifications: <Device(255,B019,Wireless Mouse MX Master 2S,)>: notification for feature REPROG CONTROLS V4, report 0, data 00000000000000000000000000000000
08:55:49,620    DEBUG [ReceiverListener:hidraw2] logitech_receiver.notifications: <Device(255,B019,Wireless Mouse MX Master 2S,)>: diverted controls pressed: 0x0, 0x0, 0x0, 0x0
```

For the 3S, it sends this:
```
08:58:01,121    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (13) => r[11 FF 0900 00C30000000000000000000000000000]
08:58:01,122    DEBUG [ReceiverListener:hidraw1] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data 00C30000000000000000000000000000
08:58:01,122    DEBUG [ReceiverListener:hidraw1] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: diverted controls pressed: 0xc3, 0x0, 0x0, 0x0
08:58:01,122    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (13) => r[11 FF 0910 01C30016000000000000000000000000]
08:58:01,122    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: dpi: settings read 1000 from <Device(255,B034,MX Master 3S,)>
08:58:01,122    DEBUG [ReceiverListener:hidraw1] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data 01C30016000000000000000000000000
08:58:01,122    DEBUG [ReceiverListener:hidraw1] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=451 dy=22
08:58:01,586    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (13) => r[11 FF 0910 0000FFFF000000000000000000000000]
08:58:01,586    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings_templates: mouse gesture move event 6 0 [1, 0, 6, 0]
08:58:01,586    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: dpi: settings read 1000 from <Device(255,B034,MX Master 3S,)>
08:58:01,586    DEBUG [ReceiverListener:hidraw1] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data 0000FFFF000000000000000000000000
08:58:01,587    DEBUG [ReceiverListener:hidraw1] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=0 dy=-1
08:58:01,608    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (13) => r[11 FF 0910 FFFF0000000000000000000000000000]
08:58:01,608    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: dpi: settings read 1000 from <Device(255,B034,MX Master 3S,)>
08:58:01,609    DEBUG [ReceiverListener:hidraw1] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data FFFF0000000000000000000000000000
08:58:01,609    DEBUG [ReceiverListener:hidraw1] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=-1 dy=0
...
...
08:58:01,886    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (13) => r[11 FF 0910 FFFF0000000000000000000000000000]
08:58:01,886    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: dpi: settings read 1000 from <Device(255,B034,MX Master 3S,)>
08:58:01,886    DEBUG [ReceiverListener:hidraw1] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data FFFF0000000000000000000000000000
08:58:01,886    DEBUG [ReceiverListener:hidraw1] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=-1 dy=0
08:58:01,998    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (13) => r[11 FF 0900 00000000000000000000000000000000]
08:58:01,998    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings_templates: mouse gesture move event -2 0 [2, 0, 6, 0, 0, -2, 0]
08:58:01,999     INFO [ReceiverListener:hidraw1] logitech_receiver.settings_templates: mouse gesture notification [2, 0, 6, 0, 0, -2, 0]
08:58:01,999    DEBUG [ReceiverListener:hidraw1] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data 00000000000000000000000000000000
08:58:01,999    DEBUG [ReceiverListener:hidraw1] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: diverted controls pressed: 0x0, 0x0, 0x0, 0x0
```

So it looks like the 3S sends a message with the last movement done before the gesture button was pushed and then acts like the 2S thereafter.

A possible solution would be to ignore the first movement command from all mice until it becomes clear what Logitech were going for and then maybe implement that feature once it's released. Skipping a single movement message shouldn't make much of a difference with the amount of movement messages coming in.
Skipping the first message is possible.  If the movement is small it won't matter and if the movement is large then the mouse is moving fast so it won't matter anyway because there will be other large movement messages anyway and if there isn't the user won't be able to tell whether the sole large movement was before or after pressing the button.  But it would be better to see if there is some new aspect of the feature that can be used to ignore this first movement event. 

I did get my MX Master 3 to produce a regular movement message with over 100 displacement by moving the mouse very fast.
Take a look at PR #1664, which ignores the first movement event.  I probably won't merge this PR in for a while in the hopes that some information about the 3S is forthcoming from Logitech.

To clone and use Solar from its GitHub repository
```
git clone https://github.com/pwr-Solaar/Solaar.git
cd Solaar
```
Run Solaar as bin/solaar from this directory.


To run PR #1664, first clone Solaar if you have not already done so and cd to the clone directory.  The first time you download the pull request, fetch it into a new branch and checkout that branch, as in:
```
git fetch origin pull/1664/head:pull_1664
git checkout pull_1664
```
To download a new version of the pull request, fetch it and then set your pull branch to the new fetch, as in:
```
git checkout pull_1664
git fetch origin pull/1664/head
git reset --hard FETCH_HEAD
```

Thank you so much! The hack seems to be working perfectly :tada: 
I'm waiting to see whether I can get information from Logitech on this issue.  In the meantime, can you run `solaar -ddd show` while the 3S is active and post the output?
Sure, here it is:

<details>

```
20:25:19,579    DEBUG [MainThread] hidapi.udev: Found device BID 0005 VID 0000046D PID 0000B034 INTERFACE None FILTER None
20:25:19,579    DEBUG [MainThread] solaar.cli: [/dev/hidraw9] => <Device(255,B034,Unknown device B034,)>
Solaar version 1.1.4

USB and Bluetooth Devices

20:25:19,580    DEBUG [MainThread] logitech_receiver.base: (3) pinging device 255
20:25:19,580     INFO [MainThread] logitech_receiver.base: New lock 3
20:25:19,580    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 001C 00003C00000000000000000000000000]
20:25:19,712    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 001C 04053C00000000000000000000000000]
20:25:19,712    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 000E 00010000000000000000000000000000]
20:25:19,727    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 000E 01000200000000000000000000000000]
20:25:19,727    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 010B 00000000000000000000000000000000]
20:25:19,742    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 010B 23000000000000000000000000000000]
20:25:19,742    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 0009 00050000000000000000000000000000]
20:25:19,757    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 0009 03000000000000000000000000000000]
20:25:19,757    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 0309 00000000000000000000000000000000]
20:25:19,772    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 0309 0C000000000000000000000000000000]
20:25:19,772    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 031E 00000000000000000000000000000000]
20:25:19,787    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 031E 4D58204D617374657220335300000000]
  1: MX Master 3S
     Device path  : /dev/hidraw9
     USB id       : 046d:B034
20:25:19,787    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 000D 00070000000000000000000000000000]
20:25:19,802    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 000D 07000000000000000000000000000000]
20:25:19,802    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 070B 00000000000000000000000000000000]
20:25:19,824    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 070B 0C120C00000000000000000000000000]
20:25:19,824    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 071B 00000000000000000000000000000000]
20:25:19,839    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 071B 004D58204D6173746572203353000000]
     Codename     : MX Master 3S
20:25:19,840    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 0329 00000000000000000000000000000000]
20:25:19,855    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 0329 03000000000000000000000000000000]
     Kind         : mouse
     Protocol     : HID++ 4.5
20:25:19,855    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 000A 80600000000000000000000000000000]
20:25:19,870    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 000A 00000000000000000000000000000000]
     Serial number: 
20:25:19,870    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 000A 00030000000000000000000000000000]
20:25:19,884    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 000A 02000400000000000000000000000000]
20:25:19,885    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 020A 00000000000000000000000000000000]
20:25:19,906    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 020A 038DF9438F0002B03400000000000100]
     Model ID:      B03400000000
     Unit ID:       8DF9438F
20:25:19,907    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 0209 00000000000000000000000000000000]
20:25:19,922    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 0209 038DF9438F0002B03400000000000100]
20:25:19,922    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 021E 00000000000000000000000000000000]
20:25:19,937    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 021E 01424C316900000300B03438FCA4E600]
20:25:19,937    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 021E 01000000000000000000000000000000]
20:25:19,952    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 021E 0052424D2200000301B03438FCA4E600]
20:25:19,952    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 021B 02000000000000000000000000000000]
20:25:19,967    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 021B 05000000000001260000000000000000]
        Bootloader: BL1 69.00.B0003
          Firmware: RBM 22.00.B0003
             Other: 
     Supports 35 HID++ 2.0 features:
20:25:19,980    DEBUG [MainThread] solaar.configuration: load => ['1.1.4', {'_NAME': 'MX Master 3S', '_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', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 4100, '_dpi-sliding': 18, '_modelId': 'B03400000000', '_sensitive': {'change-host': False, 'divert-keys': False, 'dpi-sliding': False, 'hires-smooth-invert': False, 'mouse-gestures': True, 'thumb-scroll-invert': False}, '_serial': '8DF9438F', '_unitId': '8DF9438F', '_wpid': 'B034', 'change-host': None, 'divert-keys': {82: 0, 83: 0, 86: 0, 195: 1, 196: 0}, 'dpi': 1000, 'dpi-sliding': '0', 'hires-scroll-mode': False, 'hires-smooth-invert': False, 'hires-smooth-resolution': False, 'mouse-gestures': '195', 'reprogrammable-keys': {80: 80, 81: 81, 82: 82, 83: 83, 86: 86, 195: 195, 196: 196}, 'smart-shift': 10, 'thumb-scroll-invert': True, 'thumb-scroll-mode': False}, {'_NAME': 'Wireless Mouse MX Master 2S', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'speed-change', 'backlight', 'backlight-timed', 'fn-swap', 'persistent-remappable-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'gesture2-params', 'sidetone', 'equalizer'], '_modelId': 'B01940690000', '_sensitive': {'mouse-gestures': True}, '_unitId': '65F9E2AC', 'change-host': None, 'divert-keys': {82: 0, 83: 0, 86: 0, 195: 1, 196: 0}, 'dpi': 1000, 'dpi-sliding': 0, 'gesture2-divert': {46: False}, 'gesture2-gestures': {45: True, 46: True}, 'hires-scroll-mode': False, 'hires-smooth-invert': False, 'hires-smooth-resolution': False, 'mouse-gestures': 195, 'reprogrammable-keys': {80: 80, 81: 81, 82: 82, 83: 83, 86: 86, 195: 195, 196: 196}, 'smart-shift': 20}]
20:25:19,980    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 000A 21210000000000000000000000000000]
20:25:19,997    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 000A 0F000100000000000000000000000000]
20:25:19,997    DEBUG [MainThread] logitech_receiver.settings_templates: check_feature hires-smooth-invert [HIRES WHEEL] detected <Setting([feature:toggle] MX Master 3S:hires-smooth-invert=None)>
20:25:19,997    DEBUG [MainThread] logitech_receiver.settings_templates: check_feature hires-smooth-resolution [HIRES WHEEL] detected <Setting([feature:toggle] MX Master 3S:hires-smooth-resolution=None)>
20:25:19,997    DEBUG [MainThread] logitech_receiver.settings_templates: check_feature hires-scroll-mode [HIRES WHEEL] detected <Setting([feature:toggle] MX Master 3S:hires-scroll-mode=None)>
20:25:19,997    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 000F 21100000000000000000000000000000]
20:25:20,012    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 000F 0E000000000000000000000000000000]
20:25:20,012    DEBUG [MainThread] logitech_receiver.settings_templates: check_feature smart-shift [SMART SHIFT] detected <Setting([feature:range] MX Master 3S:smart-shift=None)>
20:25:20,012    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 000C 21500000000000000000000000000000]
20:25:20,027    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 000C 10000000000000000000000000000000]
20:25:20,027    DEBUG [MainThread] logitech_receiver.settings_templates: check_feature thumb-scroll-invert [THUMB WHEEL] detected <Setting([feature:toggle] MX Master 3S:thumb-scroll-invert=None)>
20:25:20,027    DEBUG [MainThread] logitech_receiver.settings_templates: check_feature thumb-scroll-mode [THUMB WHEEL] detected <Setting([feature:toggle] MX Master 3S:thumb-scroll-mode=None)>
20:25:20,027    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 000B 22010000000000000000000000000000]
20:25:20,042    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 000B 0D000200000000000000000000000000]
20:25:20,042    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 0D1D 00000000000000000000000000000000]
20:25:20,057    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 0D1D 0000C8E0321F40000000000000000000]
20:25:20,057    DEBUG [MainThread] logitech_receiver.settings_templates: check_feature dpi [ADJUSTABLE DPI] detected <Setting([feature:choice] MX Master 3S:dpi=None)>
20:25:20,058    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 000F 1B040000000000000000000000000000]
20:25:20,072    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 000F 09000500000000000000000000000000]
20:25:20,072    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 0009 1B010000000000000000000000000000]
20:25:20,087    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 0009 00000000000000000000000000000000]
20:25:20,087    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 0908 00000000000000000000000000000000]
20:25:20,102    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 0908 08000000000000000000000000000000]
20:25:20,102    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 091B 00000000000000000000000000000000]
20:25:20,117    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 091B 00500038010001010400000000000000]
20:25:20,117    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 0918 01000000000000000000000000000000]
20:25:20,139    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 0918 00510039010001010400000000000000]
20:25:20,139    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 091C 02000000000000000000000000000000]
20:25:20,154    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 091C 0052003A310002030500000000000000]
20:25:20,155    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 091A 03000000000000000000000000000000]
20:25:20,169    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 091A 0053003C310002030500000000000000]
20:25:20,170    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 091D 04000000000000000000000000000000]
20:25:20,184    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 091D 0056003E310002030500000000000000]
20:25:20,185    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 091A 05000000000000000000000000000000]
20:25:20,199    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 091A 00C300A9310002030500000000000000]
20:25:20,200    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 0918 06000000000000000000000000000000]
20:25:20,214    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 0918 00C4009D310002030500000000000000]
20:25:20,215    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 091C 07000000000000000000000000000000]
20:25:20,230    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 091C 00D700B4A00003000300000000000000]
20:25:20,230    DEBUG [MainThread] logitech_receiver.settings_templates: check_feature dpi-sliding [REPROG CONTROLS V4] detected <Setting([feature:choice] MX Master 3S:dpi-sliding=None)>
20:25:20,230    DEBUG [MainThread] logitech_receiver.settings_templates: check_feature mouse-gestures [REPROG CONTROLS V4] detected <Setting([feature:choice] MX Master 3S:mouse-gestures=None)>
20:25:20,230    DEBUG [MainThread] logitech_receiver.settings_templates: check_feature reprogrammable-keys [REPROG CONTROLS V4] detected <Setting([feature:map choice] MX Master 3S:reprogrammable-keys=None)>
20:25:20,230    DEBUG [MainThread] logitech_receiver.settings_templates: check_feature divert-keys [REPROG CONTROLS V4] detected <Setting([feature:map choice] MX Master 3S:divert-keys=None)>
20:25:20,231    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 0009 18140000000000000000000000000000]
20:25:20,244    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 0009 0A000100000000000000000000000000]
20:25:20,245    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 0A0A 00000000000000000000000000000000]
20:25:20,259    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 0A0A 03010000000000000000000000000000]
20:25:20,260    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 000C 18150000000000000000000000000000]
20:25:20,275    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 000C 0B000200000000000000000000000000]
20:25:20,275    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 0B0D 00000000000000000000000000000000]
20:25:20,289    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 0B0D 13080301000000000000000000000000]
20:25:20,290    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 0B1B 00000000000000000000000000000000]
20:25:20,311    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 0B1B 000104010F1800000000000000000000]
20:25:20,312    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 0B3B 00000000000000000000000000000000]
20:25:20,327    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 0B3B 00004C4150544F502D3142304C394142]
20:25:20,327    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 0B3E 000E0000000000000000000000000000]
20:25:20,342    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 0B3E 000E4300000000000000000000000000]
20:25:20,342    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 0B1D 01000000000000000000000000000000]
20:25:20,364    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 0B1D 01010401061800000000000000000000]
20:25:20,364    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 0B3B 01000000000000000000000000000000]
20:25:20,379    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 0B3B 0100766963726F670000000000000000]
20:25:20,380    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 0B1E 02000000000000000000000000000000]
20:25:20,394    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 0B1E 02010501061800000000000000000000]
20:25:20,395    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 0B3C 02000000000000000000000000000000]
20:25:20,410    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 0B3C 0200766963726F670000000000000000]
20:25:20,412    DEBUG [MainThread] logitech_receiver.settings_templates: check_feature change-host [CHANGE HOST] detected <Setting([feature:choice] MX Master 3S:change-host=None)>
20:25:20,412    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 000D 00000000000000000000000000000000]
20:25:20,424    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 000D 00000200000000000000000000000000]
         0: ROOT                   {0000}   
20:25:20,425    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 0009 00010000000000000000000000000000]
20:25:20,439    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 0009 01000200000000000000000000000000]
         1: FEATURE SET            {0001}   
20:25:20,440    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 000D 00030000000000000000000000000000]
20:25:20,454    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 000D 02000400000000000000000000000000]
         2: DEVICE FW VERSION      {0003}   
20:25:20,455    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 0208 00000000000000000000000000000000]
20:25:20,476    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 0208 038DF9438F0002B03400000000000100]
20:25:20,477    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 0219 00000000000000000000000000000000]
20:25:20,492    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 0219 01424C316900000300B03438FCA4E600]
20:25:20,492    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 0219 01000000000000000000000000000000]
20:25:20,507    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 0219 0052424D2200000301B03438FCA4E600]
20:25:20,507    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 021F 02000000000000000000000000000000]
20:25:20,522    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 021F 05000000000001260000000000000000]
            Firmware: Bootloader BL1 69.00.B0003 B03438FCA4E6
            Firmware: Firmware RBM 22.00.B0003 B03438FCA4E6
            Firmware: Other   
20:25:20,522    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 020D 00000000000000000000000000000000]
20:25:20,544    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 020D 038DF9438F0002B03400000000000100]
            Unit ID: 8DF9438F  Model ID: B03400000000  Transport IDs: {'btleid': 'B034'}
20:25:20,544    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 000E 00050000000000000000000000000000]
20:25:20,559    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 000E 03000000000000000000000000000000]
         3: DEVICE NAME            {0005}   
20:25:20,560    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 030A 00000000000000000000000000000000]
20:25:20,574    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 030A 0C000000000000000000000000000000]
20:25:20,575    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 031D 00000000000000000000000000000000]
20:25:20,589    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 031D 4D58204D617374657220335300000000]
            Name: MX Master 3S
20:25:20,590    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 0328 00000000000000000000000000000000]
20:25:20,604    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 0328 03000000000000000000000000000000]
            Kind: mouse
20:25:20,605    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 011A 04000000000000000000000000000000]
20:25:20,619    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 011A 1D4B0000000000000000000000000000]
20:25:20,620    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 000F 1D4B0000000000000000000000000000]
20:25:20,634    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 000F 04000000000000000000000000000000]
         4: WIRELESS DEVICE STATUS {1D4B}   
20:25:20,635    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 011F 05000000000000000000000000000000]
20:25:20,649    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 011F 00200000000000000000000000000000]
20:25:20,650    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 000F 00200000000000000000000000000000]
20:25:20,664    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 000F 05000000000000000000000000000000]
         5: RESET                  {0020}   
20:25:20,665    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 011A 06000000000000000000000000000000]
20:25:20,680    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 011A 00210001000000000000000000000000]
20:25:20,680    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 000C 00210000000000000000000000000000]
20:25:20,694    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 000C 06000100000000000000000000000000]
         6: CRYPTO ID              {0021}   
20:25:20,695    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 000F 00070000000000000000000000000000]
20:25:20,709    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 000F 07000000000000000000000000000000]
         7: DEVICE FRIENDLY NAME   {0007}   
20:25:20,710    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 070D 00000000000000000000000000000000]
20:25:20,731    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 070D 0C120C00000000000000000000000000]
20:25:20,731    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 071A 00000000000000000000000000000000]
20:25:20,747    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 071A 004D58204D6173746572203353000000]
            Friendly Name: MX Master 3S
20:25:20,747    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 0119 08000000000000000000000000000000]
20:25:20,762    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 0119 10040003000000000000000000000000]
20:25:20,762    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 000E 10040000000000000000000000000000]
20:25:20,777    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 000E 08000300000000000000000000000000]
         8: UNIFIED BATTERY        {1004}   
20:25:20,777    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 000B 1B040000000000000000000000000000]
20:25:20,792    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 000B 09000500000000000000000000000000]
         9: REPROG CONTROLS V4     {1B04}   
            DPI Sliding Adjustment (saved): 0
20:25:20,792    DEBUG [MainThread] logitech_receiver.settings: dpi-sliding: settings read None from <Device(255,B034,MX Master 3S,)>
            DPI Sliding Adjustment        : Off
            Mouse Gestures (saved): 195
20:25:20,792    DEBUG [MainThread] logitech_receiver.settings: mouse-gestures: settings read None from <Device(255,B034,MX Master 3S,)>
            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, Mouse Gesture Button:Gesture Button Navigation, Smart Shift:Smart Shift}
20:25:20,792    DEBUG [MainThread] logitech_receiver.settings: reprogrammable-keys: settings read None from <Device(255,B034,MX Master 3S,)>
20:25:20,792    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 092F 00500000000000000000000000000000]
20:25:20,807    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 092F 00500000500000000000000000000000]
20:25:20,807    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 092B 00510000000000000000000000000000]
20:25:20,822    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 092B 00510000510000000000000000000000]
20:25:20,822    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 092B 00520000000000000000000000000000]
20:25:20,844    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 092B 00520000520000000000000000000000]
20:25:20,844    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 092D 00530000000000000000000000000000]
20:25:20,867    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 092D 00530000530000000000000000000000]
20:25:20,867    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 092F 00560000000000000000000000000000]
20:25:20,882    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 092F 00560000560000000000000000000000]
20:25:20,882    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 092C 00C30000000000000000000000000000]
20:25:20,897    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 092C 00C31100C30000000000000000000000]
20:25:20,897    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 092C 00C40000000000000000000000000000]
20:25:20,912    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 092C 00C40000C40000000000000000000000]
            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, Mouse Gesture Button:Gesture Button Navigation, Smart Shift:Smart Shift}
            Key/Button Diversion (saved): {Middle Button:Regular, Back Button:Regular, Forward Button:Regular, Mouse Gesture Button:Diverted, Smart Shift:Regular}
20:25:20,912    DEBUG [MainThread] logitech_receiver.settings: divert-keys: settings read None from <Device(255,B034,MX Master 3S,)>
            Key/Button Diversion        : {Middle Button:Regular, Back Button:Regular, Forward Button:Regular, Mouse Gesture Button:Diverted, Smart Shift:Regular}
20:25:20,912    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 000B 18140000000000000000000000000000]
20:25:20,927    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 000B 0A000100000000000000000000000000]
        10: CHANGE HOST            {1814}   
20:25:20,927    DEBUG [MainThread] logitech_receiver.settings: change-host: settings read None from <Device(255,B034,MX Master 3S,)>
20:25:20,927    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 0A0A 00000000000000000000000000000000]
20:25:20,942    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 0A0A 03010000000000000000000000000000]
            Change Host        : 2:vicrog
20:25:20,942    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 0008 18150000000000000000000000000000]
20:25:20,957    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 0008 0B000200000000000000000000000000]
        11: HOSTS INFO             {1815}   
20:25:20,957    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 0B0F 00000000000000000000000000000000]
20:25:20,972    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 0B0F 13080301000000000000000000000000]
20:25:20,972    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 0B1E 00000000000000000000000000000000]
20:25:20,987    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 0B1E 000104010F1800000000000000000000]
20:25:20,987    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 0B3B 00000000000000000000000000000000]
20:25:21,002    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 0B3B 00004C4150544F502D3142304C394142]
20:25:21,002    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 0B3F 000E0000000000000000000000000000]
20:25:21,017    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 0B3F 000E4300000000000000000000000000]
20:25:21,017    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 0B1D 01000000000000000000000000000000]
20:25:21,032    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 0B1D 01010401061800000000000000000000]
20:25:21,032    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 0B3A 01000000000000000000000000000000]
20:25:21,047    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 0B3A 0100766963726F670000000000000000]
20:25:21,047    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 0B1F 02000000000000000000000000000000]
20:25:21,069    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 0B1F 02010501061800000000000000000000]
20:25:21,069    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 0B3C 02000000000000000000000000000000]
20:25:21,085    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 0B3C 0200766963726F670000000000000000]
            Host 0 (paired): LAPTOP-1B0L9ABC
            Host 1 (paired): vicrog
            Host 2 (paired): vicrog
20:25:21,085    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 011B 0C000000000000000000000000000000]
20:25:21,099    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 011B 22500001000000000000000000000000]
20:25:21,100    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 0008 22500000000000000000000000000000]
20:25:21,114    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 0008 0C000100000000000000000000000000]
        12: XY STATS               {2250}   
20:25:21,115    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 0009 22010000000000000000000000000000]
20:25:21,129    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 0009 0D000200000000000000000000000000]
        13: ADJUSTABLE DPI         {2201}   
            Sensitivity (DPI) (saved): 1000
20:25:21,130    DEBUG [MainThread] logitech_receiver.settings: dpi: settings read None from <Device(255,B034,MX Master 3S,)>
20:25:21,130    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 0D28 00000000000000000000000000000000]
20:25:21,144    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 0D28 0003E803E80000000000000000000000]
            Sensitivity (DPI)        : 1000
20:25:21,145    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 000B 21100000000000000000000000000000]
20:25:21,160    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 000B 0E000000000000000000000000000000]
        14: SMART SHIFT            {2110}   
            Scroll Wheel Rachet (saved): 10
20:25:21,160    DEBUG [MainThread] logitech_receiver.settings: smart-shift: settings read None from <Device(255,B034,MX Master 3S,)>
20:25:21,160    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 0E0A 00000000000000000000000000000000]
20:25:21,181    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 0E0A 020A0A00000000000000000000000000]
            Scroll Wheel Rachet        : 10
20:25:21,182    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 000F 21210000000000000000000000000000]
20:25:21,197    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 000F 0F000100000000000000000000000000]
        15: HIRES WHEEL            {2121}   
20:25:21,197    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 0F0A 00000000000000000000000000000000]
20:25:21,212    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 0F0A 0F1C1818000000000000000000000000]
20:25:21,212    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 0F19 00000000000000000000000000000000]
20:25:21,227    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 0F19 00000000000000000000000000000000]
20:25:21,227    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 0F3A 00000000000000000000000000000000]
20:25:21,242    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 0F3A 01000000000000000000000000000000]
            Multiplier: 15
            Has invert: Normal wheel motion
            Has ratchet switch: Normal wheel mode
            Low resolution mode
            HID notification
            Scroll Wheel Direction (saved): False
20:25:21,242    DEBUG [MainThread] logitech_receiver.settings: hires-smooth-invert: settings read None from <Device(255,B034,MX Master 3S,)>
20:25:21,242    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 0F18 00000000000000000000000000000000]
20:25:21,257    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 0F18 00000000000000000000000000000000]
20:25:21,257    DEBUG [MainThread] logitech_receiver.settings: BooleanValidator: validate read b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' => 00
            Scroll Wheel Direction        : False
            Scroll Wheel Resolution (saved): False
20:25:21,257    DEBUG [MainThread] logitech_receiver.settings: hires-smooth-resolution: settings read None from <Device(255,B034,MX Master 3S,)>
20:25:21,257    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 0F18 00000000000000000000000000000000]
20:25:21,272    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 0F18 00000000000000000000000000000000]
20:25:21,272    DEBUG [MainThread] logitech_receiver.settings: BooleanValidator: validate read b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' => 00
            Scroll Wheel Resolution        : False
            Scroll Wheel Diversion (saved): False
20:25:21,272    DEBUG [MainThread] logitech_receiver.settings: hires-scroll-mode: settings read None from <Device(255,B034,MX Master 3S,)>
20:25:21,272    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 0F19 00000000000000000000000000000000]
20:25:21,287    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 0F19 00000000000000000000000000000000]
20:25:21,287    DEBUG [MainThread] logitech_receiver.settings: BooleanValidator: validate read b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' => 00
            Scroll Wheel Diversion        : False
20:25:21,287    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 000C 21500000000000000000000000000000]
20:25:21,302    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 000C 10000000000000000000000000000000]
        16: THUMB WHEEL            {2150}   
            Thumb Wheel Direction (saved): True
20:25:21,302    DEBUG [MainThread] logitech_receiver.settings: thumb-scroll-invert: settings read None from <Device(255,B034,MX Master 3S,)>
20:25:21,302    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 1019 00000000000000000000000000000000]
20:25:21,317    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 1019 00010000000000000000000000000000]
            Thumb Wheel Direction        : True
            Thumb Wheel Diversion (saved): False
20:25:21,317    DEBUG [MainThread] logitech_receiver.settings: thumb-scroll-mode: settings read None from <Device(255,B034,MX Master 3S,)>
20:25:21,317    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 101E 00000000000000000000000000000000]
20:25:21,332    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 101E 00010000000000000000000000000000]
            Thumb Wheel Diversion        : False
20:25:21,332    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 011A 11000000000000000000000000000000]
20:25:21,347    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 011A 22510000000000000000000000000000]
20:25:21,347    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 000F 22510000000000000000000000000000]
20:25:21,362    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 000F 11000000000000000000000000000000]
        17: WHEEL STATS            {2251}   
20:25:21,362    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 011E 12000000000000000000000000000000]
20:25:21,377    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 011E 00C30000000000000000000000000000]
20:25:21,377    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 000D 00C30000000000000000000000000000]
20:25:21,392    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 000D 12000000000000000000000000000000]
        18: DFUCONTROL             {00C3}   
20:25:21,392    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 011A 13000000000000000000000000000000]
20:25:21,407    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 011A 18027000000000000000000000000000]
20:25:21,407    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 0008 18020000000000000000000000000000]
20:25:21,422    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 0008 13700000000000000000000000000000]
        19: DEVICE RESET           {1802}   internal, hidden, unknown:000010
20:25:21,422    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 011D 14000000000000000000000000000000]
20:25:21,437    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 011D 18037000000000000000000000000000]
20:25:21,437    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 000F 18030000000000000000000000000000]
20:25:21,452    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 000F 14700000000000000000000000000000]
        20: unknown:1803           {1803}   internal, hidden, unknown:000010
20:25:21,452    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 011C 15000000000000000000000000000000]
20:25:21,467    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 011C 18067008000000000000000000000000]
20:25:21,467    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 000C 18060000000000000000000000000000]
20:25:21,482    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 000C 15700800000000000000000000000000]
        21: CONFIG DEVICE PROPS    {1806}   internal, hidden, unknown:000010
20:25:21,482    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 011D 16000000000000000000000000000000]
20:25:21,497    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 011D 18167000000000000000000000000000]
20:25:21,497    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 000F 18160000000000000000000000000000]
20:25:21,512    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 000F 16700000000000000000000000000000]
        22: unknown:1816           {1816}   internal, hidden, unknown:000010
20:25:21,512    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 011E 17000000000000000000000000000000]
20:25:21,527    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 011E 18056000000000000000000000000000]
20:25:21,527    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 000D 18050000000000000000000000000000]
20:25:21,549    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 000D 17600000000000000000000000000000]
        23: OOBSTATE               {1805}   internal, hidden
20:25:21,549    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 0119 18000000000000000000000000000000]
20:25:21,564    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 0119 18307000000000000000000000000000]
20:25:21,565    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 000A 18300000000000000000000000000000]
20:25:21,579    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 000A 18700000000000000000000000000000]
        24: unknown:1830           {1830}   internal, hidden, unknown:000010
20:25:21,580    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 0119 19000000000000000000000000000000]
20:25:21,594    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 0119 18916807000000000000000000000000]
20:25:21,595    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 000A 18910000000000000000000000000000]
20:25:21,616    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 000A 19680700000000000000000000000000]
        25: unknown:1891           {1891}   internal, hidden, unknown:000008
20:25:21,617    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 0118 1A000000000000000000000000000000]
20:25:21,632    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 0118 18A17000000000000000000000000000]
20:25:21,632    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 0009 18A10000000000000000000000000000]
20:25:21,647    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 0009 1A700000000000000000000000000000]
        26: unknown:18A1           {18A1}   internal, hidden, unknown:000010
20:25:21,647    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 011B 1B000000000000000000000000000000]
20:25:21,662    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 011B 1E004000000000000000000000000000]
20:25:21,662    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 000F 1E000000000000000000000000000000]
20:25:21,677    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 000F 1B400000000000000000000000000000]
        27: unknown:1E00           {1E00}   hidden
20:25:21,677    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 011E 1C000000000000000000000000000000]
20:25:21,692    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 011E 1E026000000000000000000000000000]
20:25:21,692    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 0009 1E020000000000000000000000000000]
20:25:21,707    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 0009 1C600000000000000000000000000000]
        28: unknown:1E02           {1E02}   internal, hidden
20:25:21,707    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 0118 1D000000000000000000000000000000]
20:25:21,722    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 0118 16020000000000000000000000000000]
20:25:21,722    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 000C 16020000000000000000000000000000]
20:25:21,737    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 000C 1D000000000000000000000000000000]
        29: unknown:1602           {1602}   
20:25:21,737    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 011F 1E000000000000000000000000000000]
20:25:21,752    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 011F 1EB07000000000000000000000000000]
20:25:21,752    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 000C 1EB00000000000000000000000000000]
20:25:21,767    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 000C 1E700000000000000000000000000000]
        30: unknown:1EB0           {1EB0}   internal, hidden, unknown:000010
20:25:21,767    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 011B 1F000000000000000000000000000000]
20:25:21,782    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 011B 18617001000000000000000000000000]
20:25:21,782    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 000F 18610000000000000000000000000000]
20:25:21,797    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 000F 1F700100000000000000000000000000]
        31: unknown:1861           {1861}   internal, hidden, unknown:000010
20:25:21,797    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 0119 20000000000000000000000000000000]
20:25:21,812    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 0119 93007000000000000000000000000000]
20:25:21,812    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 000F 93000000000000000000000000000000]
20:25:21,827    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 000F 20700000000000000000000000000000]
        32: unknown:9300           {9300}   internal, hidden, unknown:000010
20:25:21,827    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 011A 21000000000000000000000000000000]
20:25:21,842    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 011A 90017000000000000000000000000000]
20:25:21,842    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 0009 90010000000000000000000000000000]
20:25:21,857    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 0009 21700000000000000000000000000000]
        33: unknown:9001           {9001}   internal, hidden, unknown:000010
20:25:21,857    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 011A 22000000000000000000000000000000]
20:25:21,872    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 011A 1E227000000000000000000000000000]
20:25:21,872    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 0008 1E220000000000000000000000000000]
20:25:21,887    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 0008 22700000000000000000000000000000]
        34: unknown:1E22           {1E22}   internal, hidden, unknown:000010
     Has 8 reprogrammable keys:
         0: Left Button               , default: Left Click                  => Left Click                
             mse, analytics key events, pos:0, group:1, group mask:g1
             reporting: default
         1: Right Button              , default: Right Click                 => Right Click               
             mse, analytics key events, pos:0, group:1, group mask:g1
             reporting: default
         2: Middle Button             , default: Mouse Middle Button         => Mouse Middle Button       
             mse, reprogrammable, divertable, raw XY, analytics key events, pos:0, group:2, group mask:g1,g2
             reporting: default
         3: Back Button               , default: Mouse Back Button           => Mouse Back Button         
             mse, reprogrammable, divertable, raw XY, analytics key events, pos:0, group:2, group mask:g1,g2
             reporting: default
         4: Forward Button            , default: Mouse Forward Button        => Mouse Forward Button      
             mse, reprogrammable, divertable, raw XY, analytics key events, pos:0, group:2, group mask:g1,g2
             reporting: default
         5: Mouse Gesture Button      , default: Gesture Button Navigation   => Gesture Button Navigation 
             mse, reprogrammable, divertable, raw XY, analytics key events, pos:0, group:2, group mask:g1,g2
             reporting: diverted, raw XY diverted
         6: Smart Shift               , default: Smart Shift                 => Smart Shift               
             mse, reprogrammable, divertable, raw XY, analytics key events, pos:0, group:2, group mask:g1,g2
             reporting: default
20:25:21,888    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 0928 00D70000000000000000000000000000]
20:25:21,902    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 0928 00D70000000000000000000000000000]
         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
20:25:21,903    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 0009 1C000000000000000000000000000000]
20:25:21,917    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 0009 00000000000000000000000000000000]
20:25:21,917    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 0009 65010000000000000000000000000000]
20:25:21,932    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 0009 00000000000000000000000000000000]
20:25:21,932    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 000E 10000000000000000000000000000000]
20:25:21,947    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 000E 00000000000000000000000000000000]
20:25:21,947    DEBUG [MainThread] logitech_receiver.base: (3) <= w[11 FF 081C 00000000000000000000000000000000]
20:25:21,969    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 081C 5F080000000000000000000000000000]
20:25:21,969    DEBUG [MainThread] logitech_receiver.hidpp20: battery 95% charged, level 8, charging discharging
     Battery: 95%, discharging.
```

</details>
Thanks.  That shows that the version of the feature is newer than the documentation I have.
There is a new version of the PR that uses a more principled way of determining when to ignore the first movement.  Please try it out.
It's still working well with the new changes.
There is one weird thing that happens but I'm not sure how to reproduce it. After using the mouse for a bit without doing a gesture, the first gesture I try is ignored. I'll try and figure out a reliable way to reproduce and let you know. It might be a 3S issue again.
You will probably have to run with `bin/solaar -ddd` to capture the messages that the mouse produces.

But I don't see anything that can distinguish the unusual movement message from other messages.


It seems to have fixed itself after a reboot. All working well now :smile: Thank you!
I can confirm that the PR really improves the MX Master 3S mouse gesture behaviour.
The fix is still a hack.  I've reported the bad behaviour to Logitech and there may be a better solution.  I'll wait for a while longer before merging the PR.
I'm still experiencing this with my MX Master 3S, even with the fix. Exactly the same as scenario 1 described in this issue. I've attached a sample of `solaar -ddd` but I can open another more detailed issue if needed

<details>
<summary>Details</summary>
<br>

```
2022-08-28 23:58:21,814,814    DEBUG [AsyncUI] logitech_receiver.settings: hires-smooth-invert: settings read False from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:21,815,815    DEBUG [AsyncUI] logitech_receiver.settings: hires-smooth-resolution: settings read False from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:21,815,815    DEBUG [AsyncUI] logitech_receiver.settings: hires-scroll-mode: settings read False from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:21,817,817    DEBUG [AsyncUI] logitech_receiver.settings: smart-shift: settings read 10 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:21,818,818    DEBUG [AsyncUI] logitech_receiver.settings: thumb-scroll-invert: settings read True from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:21,819,819    DEBUG [AsyncUI] logitech_receiver.settings: thumb-scroll-mode: settings read False from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:21,829,829    DEBUG [AsyncUI] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:21,832,832    DEBUG [AsyncUI] logitech_receiver.settings: reprogrammable-keys: settings read {80: 80, 81: 81, 82: 82, 83: 83, 86: 86, 195: 196, 196: 195} from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:21,834,834    DEBUG [AsyncUI] logitech_receiver.settings: divert-keys: settings read {82: 0, 83: 0, 86: 0, 195: 2, 196: 2} from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:21,835,835    DEBUG [AsyncUI] logitech_receiver.settings: change-host: settings read NamedInt(1, '2:G14Linux') from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:21,840,840    DEBUG [MainThread] solaar.ui: status changed: <Device(255,B034,MX Master 3S,)> (NONE) initialization
2022-08-28 23:58:21,840,840    DEBUG [MainThread] solaar.ui.icons: battery icon for 70:False = battery-good
2022-08-28 23:58:21,840,840    DEBUG [MainThread] solaar.ui.tray: picked device with lowest battery: ('/dev/hidraw0', 255, 'MX Master 3S', {'BATTERY LEVEL': 70, 'BATTERY STATUS': NamedInt(0, 'discharging'), 'BATTERY NEXT LEVEL': None, 'BATTERY VOLTAGE': None, 'BATTERY CHARGING': False, 'ERROR': None, 'NOTIFICATION FLAGS': False})
2022-08-28 23:58:21,840,840    DEBUG [MainThread] solaar.ui.icons: battery icon for 70:False = battery-good
2022-08-28 23:58:21,841,841    DEBUG [MainThread] solaar.ui.icons: battery icon for 70:False = battery-good
2022-08-28 23:58:21,841,841    DEBUG [MainThread] solaar.ui.icons: battery icon for 70:False = battery-good
2022-08-28 23:58:21,841,841    DEBUG [MainThread] solaar.ui: status changed: <Device(255,B034,MX Master 3S,)> (NONE) None
2022-08-28 23:58:21,841,841    DEBUG [MainThread] solaar.ui.icons: battery icon for 70:False = battery-good
2022-08-28 23:58:21,841,841    DEBUG [MainThread] solaar.ui.tray: picked device with lowest battery: ('/dev/hidraw0', 255, 'MX Master 3S', {'BATTERY LEVEL': 70, 'BATTERY STATUS': NamedInt(0, 'discharging'), 'BATTERY NEXT LEVEL': None, 'BATTERY VOLTAGE': None, 'BATTERY CHARGING': False, 'ERROR': None, 'NOTIFICATION FLAGS': False})
2022-08-28 23:58:21,842,842    DEBUG [MainThread] solaar.ui.icons: battery icon for 70:False = battery-good
2022-08-28 23:58:21,842,842    DEBUG [MainThread] solaar.ui.icons: battery icon for 70:False = battery-good
2022-08-28 23:58:21,842,842    DEBUG [MainThread] solaar.ui.icons: battery icon for 70:False = battery-good
2022-08-28 23:58:28,653,653    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0900 00C40000000000000000000000000000]
2022-08-28 23:58:28,653,653    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data 00C40000000000000000000000000000
2022-08-28 23:58:28,653,653    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: diverted controls pressed: 0xc4, 0x0, 0x0, 0x0
2022-08-28 23:58:28,654,654    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 FEC8FFC4000000000000000000000000]
2022-08-28 23:58:28,654,654    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:28,654,654    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data FEC8FFC4000000000000000000000000
2022-08-28 23:58:28,654,654    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=-312 dy=-60
2022-08-28 23:58:28,714,714    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 FFFF0000000000000000000000000000]
2022-08-28 23:58:28,715,715    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings_templates: mouse gesture move event -5 -1 [NamedInt(196, 'Smart Shift'), 0, -5, -1]
2022-08-28 23:58:28,715,715    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:28,715,715    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data FFFF0000000000000000000000000000
2022-08-28 23:58:28,715,715    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=-1 dy=0
2022-08-28 23:58:28,723,723    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 FFFC0001000000000000000000000000]
2022-08-28 23:58:28,723,723    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:28,723,723    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data FFFC0001000000000000000000000000
2022-08-28 23:58:28,723,723    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=-4 dy=1
2022-08-28 23:58:28,732,732    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 FFF70001000000000000000000000000]
2022-08-28 23:58:28,732,732    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:28,732,732    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data FFF70001000000000000000000000000
2022-08-28 23:58:28,732,732    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=-9 dy=1
2022-08-28 23:58:28,741,741    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 FFF30002000000000000000000000000]
2022-08-28 23:58:28,741,741    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:28,741,741    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data FFF30002000000000000000000000000
2022-08-28 23:58:28,741,741    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=-13 dy=2
2022-08-28 23:58:28,749,749    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 FFF10000000000000000000000000000]
2022-08-28 23:58:28,750,750    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:28,750,750    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data FFF10000000000000000000000000000
2022-08-28 23:58:28,750,750    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=-15 dy=0
2022-08-28 23:58:28,758,758    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 FFEA0001000000000000000000000000]
2022-08-28 23:58:28,758,758    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:28,758,758    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data FFEA0001000000000000000000000000
2022-08-28 23:58:28,758,758    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=-22 dy=1
2022-08-28 23:58:28,767,767    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 FFE70001000000000000000000000000]
2022-08-28 23:58:28,767,767    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:28,767,767    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data FFE70001000000000000000000000000
2022-08-28 23:58:28,767,767    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=-25 dy=1
2022-08-28 23:58:28,776,776    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 FFE00001000000000000000000000000]
2022-08-28 23:58:28,776,776    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:28,776,776    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data FFE00001000000000000000000000000
2022-08-28 23:58:28,776,776    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=-32 dy=1
2022-08-28 23:58:28,784,784    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 FFE20000000000000000000000000000]
2022-08-28 23:58:28,785,785    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:28,785,785    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data FFE20000000000000000000000000000
2022-08-28 23:58:28,785,785    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=-30 dy=0
2022-08-28 23:58:28,793,793    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 FFE20001000000000000000000000000]
2022-08-28 23:58:28,793,793    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:28,793,793    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data FFE20001000000000000000000000000
2022-08-28 23:58:28,793,793    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=-30 dy=1
2022-08-28 23:58:28,802,802    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 FFE20002000000000000000000000000]
2022-08-28 23:58:28,802,802    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:28,802,802    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data FFE20002000000000000000000000000
2022-08-28 23:58:28,802,802    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=-30 dy=2
2022-08-28 23:58:28,810,810    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 FFDB0001000000000000000000000000]
2022-08-28 23:58:28,811,811    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:28,811,811    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data FFDB0001000000000000000000000000
2022-08-28 23:58:28,811,811    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=-37 dy=1
2022-08-28 23:58:28,819,819    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 FFE10001000000000000000000000000]
2022-08-28 23:58:28,820,820    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:28,820,820    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data FFE10001000000000000000000000000
2022-08-28 23:58:28,820,820    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=-31 dy=1
2022-08-28 23:58:28,828,828    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 FFE10000000000000000000000000000]
2022-08-28 23:58:28,828,828    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:28,828,828    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data FFE10000000000000000000000000000
2022-08-28 23:58:28,828,828    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=-31 dy=0
2022-08-28 23:58:28,837,837    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 FFD60000000000000000000000000000]
2022-08-28 23:58:28,837,837    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:28,837,837    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data FFD60000000000000000000000000000
2022-08-28 23:58:28,837,837    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=-42 dy=0
2022-08-28 23:58:28,845,845    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 FFDDFFFF000000000000000000000000]
2022-08-28 23:58:28,846,846    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:28,846,846    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data FFDDFFFF000000000000000000000000
2022-08-28 23:58:28,846,846    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=-35 dy=-1
2022-08-28 23:58:28,854,854    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 FFDDFFFF000000000000000000000000]
2022-08-28 23:58:28,854,854    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:28,854,854    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data FFDDFFFF000000000000000000000000
2022-08-28 23:58:28,855,855    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=-35 dy=-1
2022-08-28 23:58:28,863,863    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 FFDDFFFF000000000000000000000000]
2022-08-28 23:58:28,863,863    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:28,863,863    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data FFDDFFFF000000000000000000000000
2022-08-28 23:58:28,863,863    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=-35 dy=-1
2022-08-28 23:58:28,872,872    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 FFDFFFFE000000000000000000000000]
2022-08-28 23:58:28,872,872    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:28,872,872    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data FFDFFFFE000000000000000000000000
2022-08-28 23:58:28,872,872    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=-33 dy=-2
2022-08-28 23:58:28,880,880    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 FFE4FFFF000000000000000000000000]
2022-08-28 23:58:28,881,881    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:28,881,881    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data FFE4FFFF000000000000000000000000
2022-08-28 23:58:28,881,881    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=-28 dy=-1
2022-08-28 23:58:28,889,889    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 FFE5FFFE000000000000000000000000]
2022-08-28 23:58:28,890,890    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:28,890,890    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data FFE5FFFE000000000000000000000000
2022-08-28 23:58:28,890,890    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=-27 dy=-2
2022-08-28 23:58:28,898,898    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 FFE5FFFF000000000000000000000000]
2022-08-28 23:58:28,898,898    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:28,898,898    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data FFE5FFFF000000000000000000000000
2022-08-28 23:58:28,898,898    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=-27 dy=-1
2022-08-28 23:58:28,907,907    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 FFE7FFFF000000000000000000000000]
2022-08-28 23:58:28,907,907    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:28,907,907    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data FFE7FFFF000000000000000000000000
2022-08-28 23:58:28,907,907    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=-25 dy=-1
2022-08-28 23:58:28,915,915    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 FFF0FFFF000000000000000000000000]
2022-08-28 23:58:28,916,916    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:28,916,916    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data FFF0FFFF000000000000000000000000
2022-08-28 23:58:28,916,916    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=-16 dy=-1
2022-08-28 23:58:28,933,933    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0900 00000000000000000000000000000000]
2022-08-28 23:58:28,933,933    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings_templates: mouse gesture move event -11 0 [NamedInt(196, 'Smart Shift'), 0, -5, -1, 0, -11, 0]
2022-08-28 23:58:28,933,933     INFO [ReceiverListener:hidraw0] logitech_receiver.settings_templates: mouse gesture notification [NamedInt(196, 'Smart Shift'), 0, -5, -1, 0, -11, 0]
2022-08-28 23:58:28,933,933    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data 00000000000000000000000000000000
2022-08-28 23:58:28,933,933    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: diverted controls pressed: 0x0, 0x0, 0x0, 0x0
2022-08-28 23:58:29,528,528    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0900 00C40000000000000000000000000000]
2022-08-28 23:58:29,529,529    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data 00C40000000000000000000000000000
2022-08-28 23:58:29,529,529    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: diverted controls pressed: 0xc4, 0x0, 0x0, 0x0
2022-08-28 23:58:29,537,537    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 0033FFE2000000000000000000000000]
2022-08-28 23:58:29,537,537    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:29,537,537    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data 0033FFE2000000000000000000000000
2022-08-28 23:58:29,537,537    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=51 dy=-30
2022-08-28 23:58:29,546,546    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 FFFE0000000000000000000000000000]
2022-08-28 23:58:29,546,546    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:29,546,546    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data FFFE0000000000000000000000000000
2022-08-28 23:58:29,546,546    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=-2 dy=0
2022-08-28 23:58:29,554,554    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 FFFD0001000000000000000000000000]
2022-08-28 23:58:29,555,555    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:29,555,555    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data FFFD0001000000000000000000000000
2022-08-28 23:58:29,555,555    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=-3 dy=1
2022-08-28 23:58:29,563,563    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 FFFA0001000000000000000000000000]
2022-08-28 23:58:29,563,563    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:29,564,564    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data FFFA0001000000000000000000000000
2022-08-28 23:58:29,564,564    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=-6 dy=1
2022-08-28 23:58:29,571,571    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 FFF80002000000000000000000000000]
2022-08-28 23:58:29,572,572    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:29,572,572    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data FFF80002000000000000000000000000
2022-08-28 23:58:29,572,572    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=-8 dy=2
2022-08-28 23:58:29,580,580    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 FFF30001000000000000000000000000]
2022-08-28 23:58:29,580,580    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:29,580,580    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data FFF30001000000000000000000000000
2022-08-28 23:58:29,580,580    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=-13 dy=1
2022-08-28 23:58:29,589,589    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 FFF40002000000000000000000000000]
2022-08-28 23:58:29,589,589    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:29,590,590    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data FFF40002000000000000000000000000
2022-08-28 23:58:29,590,590    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=-12 dy=2
2022-08-28 23:58:29,598,598    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 FFEB0002000000000000000000000000]
2022-08-28 23:58:29,598,598    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:29,598,598    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data FFEB0002000000000000000000000000
2022-08-28 23:58:29,598,598    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=-21 dy=2
2022-08-28 23:58:29,607,607    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 FFE30002000000000000000000000000]
2022-08-28 23:58:29,607,607    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:29,607,607    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data FFE30002000000000000000000000000
2022-08-28 23:58:29,607,607    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=-29 dy=2
2022-08-28 23:58:29,616,616    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 FFE30001000000000000000000000000]
2022-08-28 23:58:29,616,616    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:29,616,616    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data FFE30001000000000000000000000000
2022-08-28 23:58:29,616,616    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=-29 dy=1
2022-08-28 23:58:29,624,624    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 FFDF0001000000000000000000000000]
2022-08-28 23:58:29,625,625    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:29,625,625    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data FFDF0001000000000000000000000000
2022-08-28 23:58:29,625,625    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=-33 dy=1
2022-08-28 23:58:29,633,633    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 FFD40000000000000000000000000000]
2022-08-28 23:58:29,633,633    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:29,633,633    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data FFD40000000000000000000000000000
2022-08-28 23:58:29,634,634    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=-44 dy=0
2022-08-28 23:58:29,642,642    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 FFD60001000000000000000000000000]
2022-08-28 23:58:29,642,642    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:29,642,642    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data FFD60001000000000000000000000000
2022-08-28 23:58:29,642,642    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=-42 dy=1
2022-08-28 23:58:29,651,651    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 FFD20000000000000000000000000000]
2022-08-28 23:58:29,651,651    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:29,651,651    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data FFD20000000000000000000000000000
2022-08-28 23:58:29,651,651    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=-46 dy=0
2022-08-28 23:58:29,659,659    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 FFD40001000000000000000000000000]
2022-08-28 23:58:29,660,660    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:29,660,660    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data FFD40001000000000000000000000000
2022-08-28 23:58:29,660,660    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=-44 dy=1
2022-08-28 23:58:29,668,668    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 FFCA0000000000000000000000000000]
2022-08-28 23:58:29,668,668    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:29,668,668    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data FFCA0000000000000000000000000000
2022-08-28 23:58:29,668,668    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=-54 dy=0
2022-08-28 23:58:29,677,677    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 FFD20000000000000000000000000000]
2022-08-28 23:58:29,677,677    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:29,677,677    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data FFD20000000000000000000000000000
2022-08-28 23:58:29,677,677    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=-46 dy=0
2022-08-28 23:58:29,686,686    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 FFD0FFFF000000000000000000000000]
2022-08-28 23:58:29,686,686    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:29,686,686    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data FFD0FFFF000000000000000000000000
2022-08-28 23:58:29,686,686    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=-48 dy=-1
2022-08-28 23:58:29,694,694    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 FFCAFFFE000000000000000000000000]
2022-08-28 23:58:29,695,695    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:29,695,695    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data FFCAFFFE000000000000000000000000
2022-08-28 23:58:29,695,695    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=-54 dy=-2
2022-08-28 23:58:29,703,703    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 FFD2FFFE000000000000000000000000]
2022-08-28 23:58:29,703,703    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:29,703,703    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data FFD2FFFE000000000000000000000000
2022-08-28 23:58:29,703,703    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=-46 dy=-2
2022-08-28 23:58:29,712,712    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 FFCEFFFE000000000000000000000000]
2022-08-28 23:58:29,712,712    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:29,712,712    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data FFCEFFFE000000000000000000000000
2022-08-28 23:58:29,712,712    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=-50 dy=-2
2022-08-28 23:58:29,721,721    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 FFD7FFFE000000000000000000000000]
2022-08-28 23:58:29,721,721    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:29,721,721    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data FFD7FFFE000000000000000000000000
2022-08-28 23:58:29,721,721    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=-41 dy=-2
2022-08-28 23:58:29,729,729    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 FFDAFFFE000000000000000000000000]
2022-08-28 23:58:29,729,729    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:29,729,729    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data FFDAFFFE000000000000000000000000
2022-08-28 23:58:29,729,729    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=-38 dy=-2
2022-08-28 23:58:29,738,738    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 FFE2FFFE000000000000000000000000]
2022-08-28 23:58:29,738,738    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:29,738,738    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data FFE2FFFE000000000000000000000000
2022-08-28 23:58:29,738,738    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=-30 dy=-2
2022-08-28 23:58:29,747,747    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 FFDBFFFD000000000000000000000000]
2022-08-28 23:58:29,747,747    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:29,747,747    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data FFDBFFFD000000000000000000000000
2022-08-28 23:58:29,747,747    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=-37 dy=-3
2022-08-28 23:58:29,755,755    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 FFE6FFFD000000000000000000000000]
2022-08-28 23:58:29,756,756    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:29,756,756    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data FFE6FFFD000000000000000000000000
2022-08-28 23:58:29,756,756    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=-26 dy=-3
2022-08-28 23:58:29,764,764    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 FFEDFFFE000000000000000000000000]
2022-08-28 23:58:29,765,765    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:29,765,765    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data FFEDFFFE000000000000000000000000
2022-08-28 23:58:29,765,765    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=-19 dy=-2
2022-08-28 23:58:29,773,773    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 FFE8FFFD000000000000000000000000]
2022-08-28 23:58:29,773,773    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:29,773,773    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data FFE8FFFD000000000000000000000000
2022-08-28 23:58:29,773,773    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=-24 dy=-3
2022-08-28 23:58:29,782,782    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 FFF1FFFF000000000000000000000000]
2022-08-28 23:58:29,782,782    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:29,782,782    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data FFF1FFFF000000000000000000000000
2022-08-28 23:58:29,782,782    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=-15 dy=-1
2022-08-28 23:58:29,791,791    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 FFF4FFFE000000000000000000000000]
2022-08-28 23:58:29,791,791    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:29,791,791    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data FFF4FFFE000000000000000000000000
2022-08-28 23:58:29,791,791    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=-12 dy=-2
2022-08-28 23:58:29,808,808    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0900 00000000000000000000000000000000]
2022-08-28 23:58:29,808,808    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings_templates: mouse gesture move event -15 0 [NamedInt(196, 'Smart Shift'), 0, -15, 0]
2022-08-28 23:58:29,808,808     INFO [ReceiverListener:hidraw0] logitech_receiver.settings_templates: mouse gesture notification [NamedInt(196, 'Smart Shift'), 0, -15, 0]
2022-08-28 23:58:29,808,808    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data 00000000000000000000000000000000
2022-08-28 23:58:29,808,808    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: diverted controls pressed: 0x0, 0x0, 0x0, 0x0
2022-08-28 23:58:29,809,809     INFO [MainThread] logitech_receiver.diversion: XKB display set up
2022-08-28 23:58:29,810,810     INFO [MainThread] logitech_receiver.diversion: KeyPress action: ['Control_L', 'Alt_L', 'Right'] click, group 0, modifiers 0
2022-08-28 23:58:29,835,835     INFO [MainThread] logitech_receiver.diversion: X11 library loaded and display set up
2022-08-28 23:58:29,836,836    DEBUG [MainThread] logitech_receiver.diversion: xtest simulated input <Xlib.display.Display object at 0x7f2a7c2de380> 2 37
2022-08-28 23:58:29,838,838    DEBUG [MainThread] logitech_receiver.diversion: xtest simulated input <Xlib.display.Display object at 0x7f2a7c2de380> 2 64
2022-08-28 23:58:29,838,838    DEBUG [MainThread] logitech_receiver.diversion: xtest simulated input <Xlib.display.Display object at 0x7f2a7c2de380> 2 114
2022-08-28 23:58:29,839,839    DEBUG [MainThread] logitech_receiver.diversion: xtest simulated input <Xlib.display.Display object at 0x7f2a7c2de380> 3 114
2022-08-28 23:58:29,839,839    DEBUG [MainThread] logitech_receiver.diversion: xtest simulated input <Xlib.display.Display object at 0x7f2a7c2de380> 3 64
2022-08-28 23:58:29,862,862    DEBUG [MainThread] logitech_receiver.diversion: xtest simulated input <Xlib.display.Display object at 0x7f2a7c2de380> 3 37
2022-08-28 23:58:30,578,578    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0900 00C40000000000000000000000000000]
2022-08-28 23:58:30,578,578    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data 00C40000000000000000000000000000
2022-08-28 23:58:30,578,578    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: diverted controls pressed: 0xc4, 0x0, 0x0, 0x0
2022-08-28 23:58:30,578,578    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 FE970007000000000000000000000000]
2022-08-28 23:58:30,578,578    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:30,578,578    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data FE970007000000000000000000000000
2022-08-28 23:58:30,579,579    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=-361 dy=7
2022-08-28 23:58:30,587,587    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 00000001000000000000000000000000]
2022-08-28 23:58:30,587,587    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:30,587,587    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data 00000001000000000000000000000000
2022-08-28 23:58:30,587,587    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=0 dy=1
2022-08-28 23:58:30,595,595    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 00020000000000000000000000000000]
2022-08-28 23:58:30,596,596    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:30,596,596    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data 00020000000000000000000000000000
2022-08-28 23:58:30,596,596    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=2 dy=0
2022-08-28 23:58:30,604,604    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 00070002000000000000000000000000]
2022-08-28 23:58:30,605,605    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:30,605,605    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data 00070002000000000000000000000000
2022-08-28 23:58:30,605,605    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=7 dy=2
2022-08-28 23:58:30,613,613    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 000C0001000000000000000000000000]
2022-08-28 23:58:30,613,613    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:30,613,613    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data 000C0001000000000000000000000000
2022-08-28 23:58:30,613,613    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=12 dy=1
2022-08-28 23:58:30,622,622    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 00100001000000000000000000000000]
2022-08-28 23:58:30,622,622    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:30,622,622    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data 00100001000000000000000000000000
2022-08-28 23:58:30,622,622    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=16 dy=1
2022-08-28 23:58:30,630,630    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 00160000000000000000000000000000]
2022-08-28 23:58:30,631,631    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:30,631,631    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data 00160000000000000000000000000000
2022-08-28 23:58:30,631,631    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=22 dy=0
2022-08-28 23:58:30,639,639    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 00190001000000000000000000000000]
2022-08-28 23:58:30,639,639    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:30,639,639    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data 00190001000000000000000000000000
2022-08-28 23:58:30,639,639    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=25 dy=1
2022-08-28 23:58:30,648,648    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 001D0001000000000000000000000000]
2022-08-28 23:58:30,648,648    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:30,648,648    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data 001D0001000000000000000000000000
2022-08-28 23:58:30,648,648    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=29 dy=1
2022-08-28 23:58:30,656,656    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 00210000000000000000000000000000]
2022-08-28 23:58:30,656,656    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:30,656,656    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data 00210000000000000000000000000000
2022-08-28 23:58:30,657,657    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=33 dy=0
2022-08-28 23:58:30,666,666    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 002D0001000000000000000000000000]
2022-08-28 23:58:30,666,666    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:30,666,666    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data 002D0001000000000000000000000000
2022-08-28 23:58:30,666,666    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=45 dy=1
2022-08-28 23:58:30,674,674    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 002C0001000000000000000000000000]
2022-08-28 23:58:30,674,674    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:30,674,674    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data 002C0001000000000000000000000000
2022-08-28 23:58:30,674,674    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=44 dy=1
2022-08-28 23:58:30,683,683    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 002D0000000000000000000000000000]
2022-08-28 23:58:30,683,683    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:30,683,683    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data 002D0000000000000000000000000000
2022-08-28 23:58:30,683,683    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=45 dy=0
2022-08-28 23:58:30,692,692    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 00360001000000000000000000000000]
2022-08-28 23:58:30,692,692    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:30,692,692    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data 00360001000000000000000000000000
2022-08-28 23:58:30,692,692    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=54 dy=1
2022-08-28 23:58:30,700,700    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 00320001000000000000000000000000]
2022-08-28 23:58:30,701,701    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:30,701,701    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data 00320001000000000000000000000000
2022-08-28 23:58:30,701,701    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=50 dy=1
2022-08-28 23:58:30,709,709    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 00330001000000000000000000000000]
2022-08-28 23:58:30,709,709    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:30,709,709    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data 00330001000000000000000000000000
2022-08-28 23:58:30,710,710    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=51 dy=1
2022-08-28 23:58:30,718,718    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 00330001000000000000000000000000]
2022-08-28 23:58:30,718,718    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:30,718,718    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data 00330001000000000000000000000000
2022-08-28 23:58:30,718,718    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=51 dy=1
2022-08-28 23:58:30,726,726    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 00320002000000000000000000000000]
2022-08-28 23:58:30,726,726    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:30,726,726    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data 00320002000000000000000000000000
2022-08-28 23:58:30,727,727    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=50 dy=2
2022-08-28 23:58:30,735,735    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 002D0001000000000000000000000000]
2022-08-28 23:58:30,736,736    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:30,736,736    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data 002D0001000000000000000000000000
2022-08-28 23:58:30,736,736    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=45 dy=1
2022-08-28 23:58:30,744,744    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 00320002000000000000000000000000]
2022-08-28 23:58:30,745,745    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:30,745,745    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data 00320002000000000000000000000000
2022-08-28 23:58:30,745,745    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=50 dy=2
2022-08-28 23:58:30,753,753    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 00230001000000000000000000000000]
2022-08-28 23:58:30,753,753    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:30,753,753    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data 00230001000000000000000000000000
2022-08-28 23:58:30,754,754    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=35 dy=1
2022-08-28 23:58:30,762,762    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 00270001000000000000000000000000]
2022-08-28 23:58:30,762,762    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:30,762,762    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data 00270001000000000000000000000000
2022-08-28 23:58:30,762,762    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=39 dy=1
2022-08-28 23:58:30,771,771    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 00250001000000000000000000000000]
2022-08-28 23:58:30,771,771    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:30,771,771    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data 00250001000000000000000000000000
2022-08-28 23:58:30,771,771    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=37 dy=1
2022-08-28 23:58:30,779,779    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 001C0001000000000000000000000000]
2022-08-28 23:58:30,780,780    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:30,780,780    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data 001C0001000000000000000000000000
2022-08-28 23:58:30,780,780    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=28 dy=1
2022-08-28 23:58:30,788,788    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 001A0001000000000000000000000000]
2022-08-28 23:58:30,788,788    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:30,789,789    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data 001A0001000000000000000000000000
2022-08-28 23:58:30,789,789    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=26 dy=1
2022-08-28 23:58:30,797,797    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 00180001000000000000000000000000]
2022-08-28 23:58:30,797,797    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:30,798,798    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data 00180001000000000000000000000000
2022-08-28 23:58:30,798,798    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=24 dy=1
2022-08-28 23:58:30,805,805    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 000E0000000000000000000000000000]
2022-08-28 23:58:30,806,806    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:30,806,806    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data 000E0000000000000000000000000000
2022-08-28 23:58:30,806,806    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=14 dy=0
2022-08-28 23:58:30,814,814    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 00100000000000000000000000000000]
2022-08-28 23:58:30,815,815    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:30,815,815    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data 00100000000000000000000000000000
2022-08-28 23:58:30,815,815    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=16 dy=0
2022-08-28 23:58:30,823,823    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 00080000000000000000000000000000]
2022-08-28 23:58:30,824,824    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:30,824,824    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data 00080000000000000000000000000000
2022-08-28 23:58:30,824,824    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=8 dy=0
2022-08-28 23:58:30,832,832    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 00060000000000000000000000000000]
2022-08-28 23:58:30,832,832    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:30,833,833    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data 00060000000000000000000000000000
2022-08-28 23:58:30,833,833    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=6 dy=0
2022-08-28 23:58:30,849,849    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0900 00000000000000000000000000000000]
2022-08-28 23:58:30,849,849    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings_templates: mouse gesture move event 9 0 [NamedInt(196, 'Smart Shift'), 0, 9, 0]
2022-08-28 23:58:30,849,849     INFO [ReceiverListener:hidraw0] logitech_receiver.settings_templates: mouse gesture notification [NamedInt(196, 'Smart Shift'), 0, 9, 0]
2022-08-28 23:58:30,849,849    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data 00000000000000000000000000000000
2022-08-28 23:58:30,849,849    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: diverted controls pressed: 0x0, 0x0, 0x0, 0x0
2022-08-28 23:58:30,850,850     INFO [MainThread] logitech_receiver.diversion: KeyPress action: ['Control_L', 'Alt_L', 'Left'] click, group 0, modifiers 0
2022-08-28 23:58:30,851,851    DEBUG [MainThread] logitech_receiver.diversion: xtest simulated input <Xlib.display.Display object at 0x7f2a7c2de380> 2 37
2022-08-28 23:58:30,852,852    DEBUG [MainThread] logitech_receiver.diversion: xtest simulated input <Xlib.display.Display object at 0x7f2a7c2de380> 2 64
2022-08-28 23:58:30,852,852    DEBUG [MainThread] logitech_receiver.diversion: xtest simulated input <Xlib.display.Display object at 0x7f2a7c2de380> 2 113
2022-08-28 23:58:30,853,853    DEBUG [MainThread] logitech_receiver.diversion: xtest simulated input <Xlib.display.Display object at 0x7f2a7c2de380> 3 113
2022-08-28 23:58:30,854,854    DEBUG [MainThread] logitech_receiver.diversion: xtest simulated input <Xlib.display.Display object at 0x7f2a7c2de380> 3 64
2022-08-28 23:58:30,855,855    DEBUG [MainThread] logitech_receiver.diversion: xtest simulated input <Xlib.display.Display object at 0x7f2a7c2de380> 3 37
2022-08-28 23:58:33,527,527    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0900 00C40000000000000000000000000000]
2022-08-28 23:58:33,527,527    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data 00C40000000000000000000000000000
2022-08-28 23:58:33,527,527    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: diverted controls pressed: 0xc4, 0x0, 0x0, 0x0
2022-08-28 23:58:33,527,527    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0910 00B401AF000000000000000000000000]
2022-08-28 23:58:33,527,527    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings: dpi: settings read 800 from <Device(255,B034,MX Master 3S,)>
2022-08-28 23:58:33,528,528    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data 00B401AF000000000000000000000000
2022-08-28 23:58:33,528,528    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: rawXY dx=180 dy=431
2022-08-28 23:58:33,623,623    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (14) => r[11 FF 0900 00000000000000000000000000000000]
2022-08-28 23:58:33,623,623    DEBUG [ReceiverListener:hidraw0] logitech_receiver.settings_templates: mouse gesture move event 3 8 [NamedInt(196, 'Smart Shift'), 0, 3, 8]
2022-08-28 23:58:33,623,623     INFO [ReceiverListener:hidraw0] logitech_receiver.settings_templates: mouse gesture notification [NamedInt(196, 'Smart Shift'), 0, 3, 8]
2022-08-28 23:58:33,624,624    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: notification for feature REPROG CONTROLS V4, report 0, data 00000000000000000000000000000000
2022-08-28 23:58:33,624,624    DEBUG [ReceiverListener:hidraw0] logitech_receiver.notifications: <Device(255,B034,MX Master 3S,)>: diverted controls pressed: 0x0, 0x0, 0x0, 0x0
2022-08-28 23:58:33,624,624     INFO [MainThread] logitech_receiver.diversion: KeyPress action: ['F5'] click, group 0, modifiers 0
2022-08-28 23:58:33,625,625    DEBUG [MainThread] logitech_receiver.diversion: xtest simulated input <Xlib.display.Display object at 0x7f2a7c2de380> 2 71
2022-08-28 23:58:33,626,626    DEBUG [MainThread] logitech_receiver.diversion: xtest simulated input <Xlib.display.Display object at 0x7f2a7c2de380> 3 71
```
</details>
Please provide the output of `solaar show` for your 3S.
The reason that the fix didn't work is that the fix was only in mouse gestures.  A fix will be added to sliding dpi shortly. 
I'll post the output once I get in my computer but I just wanted to point
out I was using mouse gestures, not sliding dpi.

I'll post my entire conf as soon as I can.

On Mon, Aug 29, 2022, 1:55 AM Peter F. Patel-Schneider <
***@***.***> wrote:

> The reason that the fix didn't work is that the fix was only in mouse
> gestures. A fix will be added to sliding dpi shortly.
>
> —
> Reply to this email directly, view it on GitHub
> <https://github.com/pwr-Solaar/Solaar/issues/1662#issuecomment-1229585928>,
> or unsubscribe
> <https://github.com/notifications/unsubscribe-auth/ABSCUWUQFGPI3B2E663W2Q3V3P365ANCNFSM53K5SW6A>
> .
> You are receiving this because you commented.Message ID:
> ***@***.***>
>

Oops.  The actual problem is that a more-recent change changed how both sliding dpi and mouse gestures worked and the fix was only in the older code.  But a new fix should be in soon. 

Resolving patch:
diff --git a/lib/logitech_receiver/settings_templates.py b/lib/logitech_receiver/settings_templates.py
--- a/lib/logitech_receiver/settings_templates.py
+++ b/lib/logitech_receiver/settings_templates.py
@@ -511,6 +511,7 @@ def displayNewDpi(self, newDpiIdx):
             _notify.show(self.device, reason=reason)
 
     def press_action(self, key):  # start tracking
+        self.starting = True
         if self.fsmState == 'idle':
             self.fsmState = 'pressed'
             self.dx = 0.
@@ -530,6 +531,9 @@ def release_action(self):  # adjust DPI and stop tracking
         self.fsmState = 'idle'
 
     def move_action(self, dx, dy):
+        if self.device.features.get_feature_version(_F.REPROG_CONTROLS_V4) >= 5 and self.starting:
+            self.starting = False  # hack to ignore strange first movement report from MX Master 3S
+            return
         currDpi = self.dpiSetting.read()
         self.dx += float(dx) / float(currDpi) * 15.  # yields a more-or-less DPI-independent dx of about 5/cm
         if self.fsmState == 'pressed':
@@ -557,6 +561,7 @@ def initialize_data(self):
         self.data = []
 
     def press_action(self, key):
+        self.starting = True
         if self.fsmState == 'idle':
             self.fsmState = 'pressed'
             self.initialize_data()
@@ -578,6 +583,9 @@ def release_action(self):
     def move_action(self, dx, dy):
         if self.fsmState == 'pressed':
             now = _time() * 1000  # _time_ns() / 1e6
+            if self.device.features.get_feature_version(_F.REPROG_CONTROLS_V4) >= 5 and self.starting:
+                self.starting = False  # hack to ignore strange first movement report from MX Master 3S
+                return
             if self.lastEv is not None and now - self.lastEv > 50.:
                 self.push_mouse_event()
             dpi = self.dpiSetting.read() if self.dpiSetting else 1000
@@ -758,111 +766,6 @@ def build(cls, setting_class, device):
                 return cls(choices=_NamedInts.list(keys), byte_count=2)
 
 
-class DpiSliding(_Setting):
-    """ Implements the ability to smoothly modify the DPI by sliding a mouse horizontally while holding the DPI button.
-        Abides by the following FSM:
-        When the button is pressed, go into `pressed` state and begin accumulating displacement.
-        If the button is released in this state swap DPI slots.
-        If the state is `pressed` and the mouse moves enough to switch DPI go into the `moved` state.
-        When the button is released in this state the DPI is set according to the total displacement.
-    """
-    name = 'dpi-sliding'
-    label = _('DPI Sliding Adjustment')
-    description = _('Adjust the DPI by sliding the mouse horizontally while holding the button down.')
-    choices_universe = _special_keys.CONTROL
-    choices_extra = _NamedInt(0, _('Off'))
-    feature = _F.REPROG_CONTROLS_V4
-    rw_options = {'name': 'dpi sliding'}
-
-    class rw_class(_ActionSettingRW):
-        def activate_action(self):
-            self.key.set_rawXY_reporting(True)
-            self.dpiSetting = next(filter(lambda s: s.name == 'dpi', self.device.settings), None)
-            self.dpiChoices = list(self.dpiSetting.choices)
-            self.otherDpiIdx = self.device.persister.get('_dpi-sliding', -1) if self.device.persister else -1
-            if not isinstance(self.otherDpiIdx, int) or self.otherDpiIdx < 0 or self.otherDpiIdx >= len(self.dpiChoices):
-                self.otherDpiIdx = self.dpiChoices.index(self.dpiSetting.read())
-            self.fsmState = 'idle'
-            self.dx = 0.
-            self.movingDpiIdx = None
-
-        def deactivate_action(self):
-            self.key.set_rawXY_reporting(False)
-
-        def setNewDpi(self, newDpiIdx):
-            newDpi = self.dpiChoices[newDpiIdx]
-            self.dpiSetting.write(newDpi)
-            from solaar.ui import status_changed as _status_changed
-            _status_changed(self.device, refresh=True)  # update main window
-
-        def displayNewDpi(self, newDpiIdx):
-            from solaar.ui import notify as _notify
-            # import here to avoid circular import when running `solaar show`,
-            # which does not require this method
-
-            if _notify.available:
-                reason = 'DPI %d [min %d, max %d]' % (self.dpiChoices[newDpiIdx], self.dpiChoices[0], self.dpiChoices[-1])
-                # if there is a progress percentage then the reason isn't shown
-                # asPercentage = int(float(newDpiIdx) / float(len(self.dpiChoices) - 1) * 100.)
-                # _notify.show(self.device, reason=reason, progress=asPercentage)
-                _notify.show(self.device, reason=reason)
-
-        def press_action(self):  # start tracking
-            if self.fsmState == 'idle':
-                self.fsmState = 'pressed'
-                self.dx = 0.
-                # While in 'moved' state, the index into 'dpiChoices' of the currently selected DPI setting
-                self.movingDpiIdx = None
-
-        def release_action(self):  # adjust DPI and stop tracking
-            if self.fsmState == 'pressed':  # Swap with other DPI
-                thisIdx = self.dpiChoices.index(self.dpiSetting.read())
-                newDpiIdx, self.otherDpiIdx = self.otherDpiIdx, thisIdx
-                if self.device.persister:
-                    self.device.persister['_dpi-sliding'] = self.otherDpiIdx
-                self.setNewDpi(newDpiIdx)
-                self.displayNewDpi(newDpiIdx)
-            elif self.fsmState == 'moved':  # Set DPI according to displacement
-                self.setNewDpi(self.movingDpiIdx)
-            self.fsmState = 'idle'
-
-        def move_action(self, dx, dy):
-            currDpi = self.dpiSetting.read()
-            self.dx += float(dx) / float(currDpi) * 15.  # yields a more-or-less DPI-independent dx of about 5/cm
-            if self.fsmState == 'pressed':
-                if abs(self.dx) >= 1.:
-                    self.fsmState = 'moved'
-                    self.movingDpiIdx = self.dpiChoices.index(currDpi)
-            elif self.fsmState == 'moved':
-                currIdx = self.dpiChoices.index(self.dpiSetting.read())
-                newMovingDpiIdx = min(max(currIdx + int(self.dx), 0), len(self.dpiChoices) - 1)
-                if newMovingDpiIdx != self.movingDpiIdx:
-                    self.movingDpiIdx = newMovingDpiIdx
-                    self.displayNewDpi(newMovingDpiIdx)
-
-    class validator_class(_ChoicesV):
-        sliding_keys = [_special_keys.CONTROL.DPI_Switch]
-
-        @classmethod
-        def build(cls, setting_class, device):
-            # need _F.REPROG_CONTROLS_V4 feature and a DPI Switch that can send raw XY
-            # and _F.ADJUSTABLE_DPI so that the DPI can be adjusted
-            if _F.ADJUSTABLE_DPI in device.features:
-                keys = []
-                for key in cls.sliding_keys:
-                    key_index = device.keys.index(key)
-                    dkey = device.keys[key_index] if key_index is not None else None
-                    if dkey is not None and 'raw XY' in dkey.flags and 'divertable' in dkey.flags:
-                        keys.append(dkey.key)
-                if not keys:  # none of the keys designed for this, so look for any key with correct flags
-                    for key in device.keys:
-                        if 'raw XY' in key.flags and 'divertable' in key.flags and 'virtual' not in key.flags:
-                            keys.append(key.key)
-                if keys:
-                    keys.insert(0, setting_class.choices_extra)
-                    return cls(choices=_NamedInts.list(keys), byte_count=2)
-
-
 class DisableKeyboardKeys(_BitFieldSetting):
     name = 'disable-keyboard-keys'
     label = _('Disable keys')
@@ -880,110 +783,6 @@ def build(cls, setting_class, device):
             return cls(options) if options else None
 
 
-class MouseGesture(_Setting):
-    """Implements the ability to send mouse gestures
-    by sliding a mouse horizontally or vertically while holding the App Switch button."""
-    name = 'mouse-gestures'
-    label = _('Mouse Gestures')
-    description = _('Send a gesture by sliding the mouse while holding the button down.')
-    feature = _F.REPROG_CONTROLS_V4
-    rw_options = {'name': 'mouse gesture'}
-    choices_universe = _special_keys.CONTROL
-    choices_extra = _NamedInt(0, _('Off'))
-
-    class rw_class(_ActionSettingRW):
-        def activate_action(self):
-            self.key.set_rawXY_reporting(True)
-            self.dpiSetting = next(filter(lambda s: s.name == 'dpi', self.device.settings), None)
-            self.fsmState = 'idle'
-            self.initialize_data()
-
-        def deactivate_action(self):
-            self.key.set_rawXY_reporting(False)
-
-        def initialize_data(self):
-            self.dx = 0.
-            self.dy = 0.
-            self.lastEv = None
-            self.data = [0]
-
-        def press_action(self):
-            if self.fsmState == 'idle':
-                self.fsmState = 'pressed'
-                self.initialize_data()
-
-        def release_action(self):
-            if self.fsmState == 'pressed':
-                # emit mouse gesture notification
-                from .base import _HIDPP_Notification as _HIDPP_Notification
-                from .diversion import process_notification as _process_notification
-                self.push_mouse_event()
-                if _log.isEnabledFor(_INFO):
-                    _log.info('mouse gesture notification %s', self.data)
-                payload = _pack('!' + (len(self.data) * 'h'), *self.data)
-                notification = _HIDPP_Notification(0, 0, 0, 0, payload)
-                _process_notification(self.device, self.device.status, notification, _hidpp20.FEATURE.MOUSE_GESTURE)
-                self.fsmState = 'idle'
-
-        def move_action(self, dx, dy):
-            if self.fsmState == 'pressed':
-                now = _time() * 1000  # _time_ns() / 1e6
-                if self.device.features.get_feature_version(_F.REPROG_CONTROLS_V4) >= 5 and self.lastEv is None:
-                    self.lastEv = now  # hack to ignore strange first movement report from MX Master 3S
-                    return
-                if self.lastEv is not None and now - self.lastEv > 50.:
-                    self.push_mouse_event()
-                dpi = self.dpiSetting.read() if self.dpiSetting else 1000
-                dx = float(dx) / float(dpi) * 15.  # This multiplier yields a more-or-less DPI-independent dx of about 5/cm
-                self.dx += dx
-                dy = float(dy) / float(dpi) * 15.  # This multiplier yields a more-or-less DPI-independent dx of about 5/cm
-                self.dy += dy
-                self.lastEv = now
-
-        def key_action(self, key):
-            self.push_mouse_event()
-            self.data.append(1)
-            self.data.append(key)
-            self.data[0] += 1
-            self.lastEv = _time() * 1000  # _time_ns() / 1e6
-            if _log.isEnabledFor(_DEBUG):
-                _log.debug('mouse gesture key event %d %s', key, self.data)
-
-        def push_mouse_event(self):
-            x = int(self.dx)
-            y = int(self.dy)
-            if x == 0 and y == 0:
-                return
-            self.data.append(0)
-            self.data.append(x)
-            self.data.append(y)
-            self.data[0] += 1
-            self.dx = 0.
-            self.dy = 0.
-            if _log.isEnabledFor(_DEBUG):
-                _log.debug('mouse gesture move event %d %d %s', x, y, self.data)
-
-    class validator_class(_ChoicesV):
-        MouseGestureKeys = [_special_keys.CONTROL.Mouse_Gesture_Button, _special_keys.CONTROL.MultiPlatform_Gesture_Button]
-
-        @classmethod
-        def build(cls, setting_class, device):
-            if device.keys:  # ensure that the device has a keys array
-                keys = []
-                #                for key in cls.MouseGestureKeys:
-                #                    key_index = device.keys.index(key)
-                #                    dkey = device.keys[key_index] if key_index is not None else None
-                #                    if dkey is not None and 'raw XY' in dkey.flags and 'divertable' in dkey.flags:
-                #                        keys.append(dkey.key)
-                if not keys:  # none of the keys designed for this, so look for any key with correct flags
-                    for key in device.keys:
-                        if 'raw XY' in key.flags and 'divertable' in key.flags and 'virtual' not in key.flags:
-                            keys.append(key.key)
-                if keys:
-                    keys.insert(0, setting_class.choices_extra)
-                    return cls(choices=_NamedInts.list(keys), byte_count=2)
-
-
 class Multiplatform(_Setting):
     name = 'multiplatform'
     label = _('Set OS')
@@ -1378,9 +1177,7 @@ def build(cls, setting_class, device):
     ReportRate,  # working
     PointerSpeed,  # simple
     AdjustableDpi,  # working
-    #    DpiSliding,  # working
     SpeedChange,
-    #    MouseGesture,  # working
     #    Backlight,  # not working - disabled temporarily
     Backlight2,  # working
     Backlight3,


Test patch: