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.

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
@@ -928,6 +928,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.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


Test patch: