Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ability to store and read values in rules #2417

Open
NXTler opened this issue Mar 28, 2024 · 2 comments
Open

Ability to store and read values in rules #2417

NXTler opened this issue Mar 28, 2024 · 2 comments

Comments

@NXTler
Copy link

NXTler commented Mar 28, 2024

Information

  • Solaar version (solaar --version and git describe --tags): solaar 1.1.11
  • Distribution: Manjaro
  • Kernel version (ex. uname -srmo): Linux 6.6.19-1-MANJARO x86_64 GNU/Linux
  • Output of solaar show for the target device (if applicable):
solaar version 1.1.11

Bolt Empfänger
  Device path  : /dev/hidraw2
  USB id       : 046d:C548
  Serial       : 36374345353645463342354637364134
  Has 1 paired device(s) out of a maximum of 6.
  Notifications: wireless, software present (0x000900)
  Device activity counters: 1=115

  1: MX Master 3S
     Device path  : None
     WPID         : B034
     Codename     : MX Master 3S
     Kind         : mouse
     Protocol     : HID++ 4.5
     Report Rate : 0ms
     Serial number: 3E8213B8
     Model ID:      B03400000000
     Unit ID:       3E8213B8
        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} V0     
         1: FEATURE SET            {0001} V0     
         2: DEVICE FW VERSION      {0003} V4     
            Firmware: Bootloader BL1 69.00.B0003 B03438FCA4E6
            Firmware: Firmware RBM 22.00.B0003 B03438FCA4E6
            Firmware: Other   
            Unit ID: 3E8213B8  Model ID: B03400000000  Transport IDs: {'btleid': 'B034'}
         3: DEVICE NAME            {0005} V0     
            Name: MX Master 3S
            Kind: mouse
         4: WIRELESS DEVICE STATUS {1D4B} V0     
         5: CONFIG CHANGE          {0020} V0     
         6: CRYPTO ID              {0021} V1     
         7: DEVICE FRIENDLY NAME   {0007} V0     
            Friendly Name: MX Master 3S
         8: UNIFIED BATTERY        {1004} V3     
            Battery: 95%, discharging.
         9: REPROG CONTROLS V4     {1B04} V5     
            Tasten-/Maustastenaktionen (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}
            Tasten-/Maustastenaktionen        : {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}
            Taste/Maustaste umleiten (saved): {Middle Button:Normal, Back Button:Umgeleitet, Forward Button:Umgeleitet, Mouse Gesture Button:Umgeleitet, Smart Shift:Umgeleitet}
            Taste/Maustaste umleiten        : {Middle Button:Normal, Back Button:Umgeleitet, Forward Button:Umgeleitet, Mouse Gesture Button:Umgeleitet, Smart Shift:Umgeleitet}
        10: CHANGE HOST            {1814} V1     
            Anderen Empfänger wählen        : 1:TMPotratz
        11: HOSTS INFO             {1815} V2     
            Host 0 (paired): TMPotratz
            Host 1 (paired): TMPotratz
            Host 2 (unpaired): 
        12: XY STATS               {2250} V1     
        13: ADJUSTABLE DPI         {2201} V2     
            Empfindlichkeit (DPI) (saved): 4500
            Empfindlichkeit (DPI)        : 4500
        14: SMART SHIFT            {2110} V0     
            Mausrad-Rastfunktion (saved): Einrastend
            Mausrad-Rastfunktion        : Einrastend
            Mausrad-Rastgeschwindigkeit (saved): 8
            Mausrad-Rastgeschwindigkeit        : 8
        15: HIRES WHEEL            {2121} V1     
            Multiplier: 15
            Has invert: Normal wheel motion
            Has ratchet switch: Normal wheel mode
            Low resolution mode
            HID notification
            Mausrad-Scroll-Richtung (saved): False
            Mausrad-Scroll-Richtung        : False
            Auflösung für Mausrad-Scrollen (saved): False
            Auflösung für Mausrad-Scrollen        : False
            Mausrad Umleitung (saved): False
            Mausrad Umleitung        : False
        16: THUMB WHEEL            {2150} V0     
            Daumenrad-Scroll-Richtung (saved): False
            Daumenrad-Scroll-Richtung        : False
            Daumenrad Umleitung (saved): True
            Daumenrad Umleitung        : True
        17: WHEEL STATS            {2251} V0     
        18: DFUCONTROL             {00C3} V0     
        19: DEVICE RESET           {1802} V0    internal, hidden, unknown:000010 
        20: unknown:1803           {1803} V0    internal, hidden, unknown:000010 
        21: CONFIG DEVICE PROPS    {1806} V8    internal, hidden, unknown:000010 
        22: unknown:1816           {1816} V0    internal, hidden, unknown:000010 
        23: OOBSTATE               {1805} V0    internal, hidden 
        24: unknown:1830           {1830} V0    internal, hidden, unknown:000010 
        25: unknown:1891           {1891} V7    internal, hidden, unknown:000008 
        26: unknown:18A1           {18A1} V0    internal, hidden, unknown:000010 
        27: unknown:1E00           {1E00} V0    hidden 
        28: unknown:1E02           {1E02} V0    internal, hidden 
        29: unknown:1602           {1602} V0     
        30: unknown:1EB0           {1EB0} V0    internal, hidden, unknown:000010 
        31: unknown:1861           {1861} V1    internal, hidden, unknown:000010 
        32: unknown:9300           {9300} V0    internal, hidden, unknown:000010 
        33: unknown:9001           {9001} V0    internal, hidden, unknown:000010 
        34: unknown:1E22           {1E22} V0    internal, hidden, unknown:000010 
        35: unknown:9205           {9205} V0    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: diverted
         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: diverted
         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
         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: diverted
         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: 95%, discharging.

Is your feature request related to a problem? Please describe.
I would like to have the ability to store and read some values in rules. This would allow for more complicated setups, like multiple profiles, toggle buttons and layers. Simple integer values would be more than enough to handle most cases.

Describe the solution you'd like
Here is an example how a simple toggle would look like with my proposal:
when x is pressed and y is 0, output action 1 | when z is pressed and y is 0, change y to 1 | when x is pressed and y is 1, output action 2 | when z is pressed and y is 1, change y to 0
x is some button for your actions
y is a variable to store some value
z is some button that acts like a toggle button through y

I already do something very similar with my dpi setting, switching through 3 levels with a single button.

Additional context
This would also solve #2145, at the cost of making the setup more complicated.

@pfps
Copy link
Collaborator

pfps commented Mar 28, 2024

This would be a major expansion to rules.

@MattHag
Copy link
Contributor

MattHag commented Mar 29, 2024

I see Profile switches as a possible feature in the future, and let it act similar to a DPI button switch. But the code and UI needs a cleanup to be ready for more complexity.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants