Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • S Solaar
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 10
    • Issues 10
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 2
    • Merge requests 2
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • pwr-Solaar
  • Solaar
  • Issues
  • #2014
Closed
Open
Issue created Mar 09, 2023 by Administrator@rootContributor

Provide a means to emulate horizontal wheel events

Created by: SlySven

Information

  • Solaar version (solaar --version and git describe --tags):
  • Distribution:
  • Kernel version (ex. uname -srmo):
  • Output of solaar show for the target device (if applicable):
1.1.8-48-g04f2adf

Devuan 4.0 "Chimaera"

Linux 5.10.0-21-amd64 x86_64 GNU/Linux

Unifying Receiver
  Device path  : /dev/hidraw3
  USB id       : 046d:C52B
  Serial       : B1B294D4
    Firmware   : 12.10.B0032
    Bootloader : 02.15
    Other      : AA.AA
  Has 2 paired device(s) out of a maximum of 6.
  Notifications: wireless, software present (0x000900)
  Device activity counters: 2=130

  1: {Device omitted}

  2: Wireless Mouse MX Master
     Device path  : /dev/hidraw5
     WPID         : 4071
     Codename     : MX Master
     Kind         : mouse
     Protocol     : HID++ 4.5
     Polling rate : 8 ms (125Hz)
     Serial number: D3596818
     Model ID:      B01E40710000
     Unit ID:       9803B76B
        Bootloader: BOT 56.10.B0005
          Firmware: MPM 12.10.B0005
          Firmware: MPM 12.10.B0005
             Other: 
     The power switch is located on the base.
     Supports 32 HID++ 2.0 features:
         0: ROOT                   {0000} V0     
         1: FEATURE SET            {0001} V0     
         2: DEVICE FW VERSION      {0003} V2     
            Firmware: Bootloader BOT 56.10.B0005 40717622661101
            Firmware: Firmware MPM 12.10.B0005 B01E7622661101
            Firmware: Firmware MPM 12.10.B0005 40717622661101
            Firmware: Other   
            Unit ID: 9803B76B  Model ID: B01E40710000  Transport IDs: {'btleid': 'B01E', 'wpid': '4071'}
         3: DEVICE NAME            {0005} V0     
            Name: Wireless Mouse MX Master
            Kind: mouse
         4: WIRELESS DEVICE STATUS {1D4B} V0     
         5: CONFIG CHANGE          {0020} V0     
         6: CRYPTO ID              {0021} V0     
         7: BATTERY STATUS         {1000} V0     
            B     attery: 50%, discharging, next level 20%.
         8: CONFIG DEVICE PROPS    {1806} V0    internal, hidden 
         9: CHANGE HOST            {1814} V1     
            Change Host        : 1:Ripley
        10: REPROG CONTROLS V4     {1B04} V3
            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}
            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:Mouse Gestures, Smart Shift:Regular}
            Key/Button Diversion        : {Middle Button:Regular, Back Button:Regular, Forward Button:Regular, Mouse Gesture Button:Diverted, Smart Shift:Regular}
        11: ADJUSTABLE DPI         {2201} V1     
            Sensitivity (DPI) (saved): 1200
            Sensitivity (DPI)        : 1200
        12: VERTICAL SCROLLING     {2100} V0     
            Roller type: 3G
            Ratchet per turn: 24
            Scroll lines: 0
        13: SMART SHIFT            {2110} V0     
            Scroll Wheel Ratcheted (saved): Ratcheted
            Scroll Wheel Ratcheted        : Ratcheted
            Scroll Wheel Ratchet Speed (saved): 5
            Scroll Wheel Ratchet Speed        : 5
        14: HIRES WHEEL            {2121} V0     
            Multiplier: 8
            Has invert: Normal wheel motion
            Has ratchet switch: Normal wheel mode
            High resolution mode
            HID notification
            Scroll Wheel Direction (saved): False
            Scroll Wheel Direction        : False
            Scroll Wheel Resolution (saved): True
            Scroll Wheel Resolution        : True
            Scroll Wheel Diversion (saved): False
            Scroll Wheel Diversion        : False
        15: GESTURE 2              {6501} V0     
            Gestures (saved): {45: False, 46: False}
            Gestures        : {46: False, 45: False}
            Gestures Diversion (saved): {46: True}
            Gestures Diversion        : {46: True}
        16: DFUCONTROL SIGNED      {00C2} V0
        17: unknown:1813           {1813} V0    internal, hidden 
        18: unknown:1830           {1830} V0    internal, hidden 
        19: unknown:1890           {1890} V0    internal, hidden 
        20: unknown:1891           {1891} V0    internal, hidden 
        21: unknown:18A1           {18A1} V0    internal, hidden 
        22: unknown:18C0           {18C0} V0    internal, hidden 
        23: unknown:1DF3           {1DF3} V0    internal, hidden 
        24: unknown:1E00           {1E00} V0    hidden 
        25: unknown:1EB0           {1EB0} V0    internal, hidden 
        26: unknown:1803           {1803} V0    internal, hidden 
        27: unknown:1861           {1861} V0    internal, hidden 
        28: unknown:9001           {9001} V0    internal, hidden 
        29: unknown:9200           {9200} V0    internal, hidden 
        30: unknown:9202           {9202} V0    internal, hidden 
        31: OOBSTATE               {1805} V0    internal, hidden 
     Has 8 reprogrammable keys:
         0: Left Button               , default: Left Click                  => Left Click                
             mse, pos:0, group:1, group mask:g1
             reporting: default
         1: Right Button              , default: Right Click                 => Right Click               
             mse, pos:0, group:1, group mask:g1
             reporting: default
         2: Middle Button             , default: Mouse Middle Button         => Mouse Middle Button       
             mse, reprogrammable, divertable, raw XY, pos:0, group:3, group mask:g1,g2,g3
             reporting: default
         3: Back Button               , default: Mouse Back Button           => Mouse Back Button         
             mse, reprogrammable, divertable, raw XY, pos:0, group:2, group mask:g1,g2
             reporting: default
         4: Forward Button            , default: Mouse Forward Button        => Mouse Forward Button      
             mse, reprogrammable, divertable, raw XY, 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, pos:0, group:3, group mask:g1,g2,g3
             reporting: diverted, raw XY diverted
         6: Smart Shift               , default: Smart Shift                 => Smart Shift               
             mse, reprogrammable, divertable, raw XY, pos:0, group:3, group mask:g1,g2,g3
             reporting: default
         7: Virtual Gesture Button    , default: Virtual Gesture Button      => Virtual Gesture Button    
             divertable, virtual, raw XY, force raw XY, pos:0, group:4, group mask:empty
             reporting: default
     Has 2 gesture(s), 0 param(s) and 4 spec(s):
        Thumbwheel                 Enabled(   0): False  Diverted:(   0) True
        NaturalScrolling           Enabled(   1): False  Diverted:(None) None
        period unit                Spec   (   3): 800
        DVI field width            Spec   (   1): 8
        field widths               Spec   (   2): 8
        resolution                 Spec   (   4): 2048
     Battery: 50%, discharging, next level 20%.

Is your feature request related to a problem? Please describe. I have a first generation Master MX mouse and the thumb-wheel seems useless.

Describe the solution you'd like To get the thumb-wheel on my Master (original) to generate second scroll-wheel events.

Describe alternatives you've considered I might be missing something blindingly obvious in the rules.

Additional context I have managed to craft some rules that manage to fake Forward and Backward button presses:

%YAML 1.3
---
- Feature: GESTURE 2
- TestBytes: [2, 3, 3, 3]
- Rule:
  - TestBytes: [3, 4, 1, 127]
  - MouseClick: [button8, 1]
- Rule:
  - TestBytes: [3, 4, -128, -1]
  - MouseClick: [button9, 1]
...

I am coding on a Qt 5.x project and that supports wheel-events in both the x and y direction nowadays. I notice that the corresponding output for this mouse from the (QPointF) QWheelEvent::angleDelta() method produces steps of 120 (corresponding to 15 degrees) from the vertical mouse wheel is moved by a single click. It is not diverted, but it is set to "High-sensitivity" mode. I would like to be able to get the same size steps from the thumb-wheel. The positive value range, of the first of the pair of the TestBytes in the (sub)-rule corresponds to the thumb-wheel being rotated upwards by the thumb.

I have to say though, that it was not immediately obvious that I would have to faff around with "Gestures" in order to get the data that that model of mouse sends out for the thumbwheel to be seen by anything.

Assignee
Assign to
Time tracking