victorkirov Github contribution chart
victorkirov Github Stats
victorkirov Most Used Languages

Activity

20 Jul 2022

Issue Comment

Victorkirov

MX Master 3S sends an initial movement report when a gesture button is pushed

Information

  • 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:
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. 
  • Contents of ~/.config/solaar/config.yaml (or ~/.config/solaar/config.json if ~/.config/solaar/config.yaml not present):
{
  "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"
} 
  • Errors or warrnings from Solaar: None

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

Forked On 20 Jul 2022 at 01:21:52

Victorkirov

It seems to have fixed itself after a reboot. All working well now :smile: Thank you!

Commented On 20 Jul 2022 at 01:21:52
Issue Comment

Victorkirov

MX Master 3S sends an initial movement report when a gesture button is pushed

Information

  • 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:
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. 
  • Contents of ~/.config/solaar/config.yaml (or ~/.config/solaar/config.json if ~/.config/solaar/config.yaml not present):
{
  "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"
} 
  • Errors or warrnings from Solaar: None

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

Forked On 20 Jul 2022 at 06:26:37

Victorkirov

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.

Commented On 20 Jul 2022 at 06:26:37
Issue Comment

Victorkirov

MX Master 3S sends an initial movement report when a gesture button is pushed

Information

  • 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:
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. 
  • Contents of ~/.config/solaar/config.yaml (or ~/.config/solaar/config.json if ~/.config/solaar/config.yaml not present):
{
  "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"
} 
  • Errors or warrnings from Solaar: None

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

Forked On 20 Jul 2022 at 06:21:35

Victorkirov

It's still working well with the new changes.

Commented On 20 Jul 2022 at 06:21:35
Issue Comment

Victorkirov

MX Master 3S sends an initial movement report when a gesture button is pushed

Information

  • 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:
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. 
  • Contents of ~/.config/solaar/config.yaml (or ~/.config/solaar/config.json if ~/.config/solaar/config.yaml not present):
{
  "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"
} 
  • Errors or warrnings from Solaar: None

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

Forked On 14 Jul 2022 at 06:25:44

Victorkirov

Sure, here it is:

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. 

Commented On 14 Jul 2022 at 06:25:44
Issue Comment

Victorkirov

MX Master 3S sends an initial movement report when a gesture button is pushed

Information

  • 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:
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. 
  • Contents of ~/.config/solaar/config.yaml (or ~/.config/solaar/config.json if ~/.config/solaar/config.yaml not present):
{
  "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"
} 
  • Errors or warrnings from Solaar: None

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

Forked On 14 Jul 2022 at 11:31:20

Victorkirov

Thank you so much! The hack seems to be working perfectly :tada:

Commented On 14 Jul 2022 at 11:31:20
Issue Comment

Victorkirov

Gestures use direction of mouse before pushing the gesture button

Information

  • 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:
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. 
  • Contents of ~/.config/solaar/config.yaml (or ~/.config/solaar/config.json if ~/.config/solaar/config.yaml not present):
{
  "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"
} 
  • Errors or warrnings from Solaar: None

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

Forked On 14 Jul 2022 at 07:06:08

Victorkirov

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.

Commented On 14 Jul 2022 at 07:06:08
Issue Comment

Victorkirov

Gestures use direction of mouse before pushing the gesture button

Information

  • 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:
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. 
  • Contents of ~/.config/solaar/config.yaml (or ~/.config/solaar/config.json if ~/.config/solaar/config.yaml not present):
{
  "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"
} 
  • Errors or warrnings from Solaar: None

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

Forked On 14 Jul 2022 at 06:36:58

Victorkirov

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. 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.

Commented On 14 Jul 2022 at 06:36:58
Issue Comment

Victorkirov

Gestures use direction of mouse before pushing the gesture button

Information

  • 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:
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. 
  • Contents of ~/.config/solaar/config.yaml (or ~/.config/solaar/config.json if ~/.config/solaar/config.yaml not present):
{
  "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"
} 
  • Errors or warrnings from Solaar: None

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

Forked On 13 Jul 2022 at 06:53:31

Victorkirov

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 

Commented On 13 Jul 2022 at 06:53:31