pwr-Solaar / Solaar

Linux device manager for Logitech devices
https://pwr-solaar.github.io/Solaar
GNU General Public License v2.0
5.54k stars 409 forks source link

Press switch on one devices will switch multiple device at the same time #1466

Closed flamecopper closed 2 years ago

flamecopper commented 2 years ago

Is there any of such?

pfps commented 2 years ago

This has to be done in software. Solaar rules can do this. A Solaar rule like the following switches two devices between hosts. The Host Switch Channel 2 button has to be diverted for the rule to activate.

---
- Key: [Host Switch Channel 2, pressed]
- Set: [null, change-host, 1]
- Set: [198E3EB8, change-host, 1]
...

Note that if you create this rule using the GUI, the setting values show up as 2 as the devices use 0-origin numbering internally.

flamecopper commented 2 years ago

This has to be done in software. Solaar rules can do this. A Solaar rule like the following switches two devices between hosts. The Host Switch Channel 2 button has to be diverted for the rule to activate.

---
- Key: [Host Switch Channel 2, pressed]
- Set: [null, change-host, 1]
- Set: [198E3EB8, change-host, 1]
...

Note that if you create this rule using the GUI, the setting values show up as 2 as the devices use 0-origin numbering internally.

So once set on software, can be used on any devices? Solaar must be on all the time?

pfps commented 2 years ago

This rule is rather tied to a particular pair of devices, as it switches the keyboard where the key was pressed and another device (my MX Master 3 mouse in this case). But, yes, this rule would trigger on a diverted Host Switch Channel 2 keypress from any device.

Solaar has to be running for it to process the notification created and perform the actions. This is the only way to do something like this from most Logitech devices. (Some gaming keyboards might be able to do things like this internally, but Solaar can't program them.)

pfps commented 2 years ago

Closing due to no response from submitter.

flamecopper commented 2 years ago

hi reopen again

I was at the rule editor. Then I tried to add arguement I don't see any host switch channel option. Do advise.

On Tue, 8 Mar 2022, 7:08 am Peter F. Patel-Schneider, < @.***> wrote:

Closing due to no response from submitter.

— Reply to this email directly, view it on GitHub https://github.com/pwr-Solaar/Solaar/issues/1466#issuecomment-1061233191, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAJLG3ZNEEKQB5ZFDFXAQIDU62D6LANCNFSM5PQ4QSYQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you authored the thread.Message ID: @.***>

pfps commented 2 years ago

What devices do you have? Please provide output of solaar show with all your devices active.

pfps commented 2 years ago

Also provide screen shot of rule editor window.

flamecopper commented 2 years ago

I am using solaar 1.1.1

Please find the below logs: TLDR: I am using M590 and K580

Unifying Receiver
  Device path  : /dev/hidraw0
  USB id       : 046d:C52B
  Serial       : 12D39D5C
    Firmware   : 12.10.B0032
    Bootloader : 02.14
    Other      : AA.AA
  Has 3 paired device(s) out of a maximum of 6.
  Notifications: wireless, software present (0x000900)
  Device activity counters: 3=213, 5=89

  3: Multi Device Silent Mouse M585/M590
     Device path  : None
     WPID         : 406B
     Codename     : M585/M590
     Kind         : mouse
     Protocol     : HID++ 4.5
     Polling rate : 8 ms (125Hz)
     Serial number: 37AD1B1D
     Model ID:      B01B406B0000
     Unit ID:       AD4236E9
        Bootloader: BOT 48.01.B0002
          Firmware: MPM 05.10.B0011
             Other:
     The power switch is located on the base.
     Supports 35 HID++ 2.0 features:
         0: ROOT                   {0000}
         1: FEATURE SET            {0001}
         2: DEVICE FW VERSION      {0003}
            Firmware: Bootloader BOT 48.01.B0002 0000AE5E7277
            Firmware: Firmware MPM 05.10.B0011 406BAE5E7277
            Firmware: Other
            Unit ID: AD4236E9  Model ID: B01B406B0000  Transport IDs:
{'btleid': 'B01B', 'wpid': '406B'}
         3: DEVICE NAME            {0005}
            Name: M585/M590 Multi-Device Mouse
            Kind: mouse
         4: WIRELESS DEVICE STATUS {1D4B}
         5: RESET                  {0020}
         6: CRYPTO ID              {0021}
         7: DEVICE FRIENDLY NAME   {0007}
            Friendly Name: M585/M590
         8: BATTERY STATUS         {1000}
            Battery: 50%, discharging, next level 20%.
         9: CHANGE HOST            {1814}
            Change Host        : 2:kali
        10: HOSTS INFO             {1815}
            Host 0 (paired): LAPTOP-8KE1J9RI
            Host 1 (paired): kali
        11: REPROG CONTROLS V4     {1B04}
            Key/Button Actions (saved): {'80': 80, '81': 81, '82': 82,
'83': 83, '86': 86, '91': 91, '93': 93}
            Key/Button Actions        : {'80': 80, '81': 81, '82': 82,
'83': 83, '86': 86, '91': 91, '93': 93}
            Key/Button Diversion (saved): {'82': 0, '83': 0, '86': 0, '91':
0, '93': 0}
            Key/Button Diversion        : {'82': 0, '83': 0, '86': 0, '91':
0, '93': 0}
        12: PERSISTENT REMAPPABLE ACTION {1C00}
        13: POINTER SPEED          {2205}
            Pointer Speed: 1.0
            Sensitivity (Pointer Speed) (saved): 256
            Sensitivity (Pointer Speed)        : 256
        14: VERTICAL SCROLLING     {2100}
            Roller type: standard
            Ratchet per turn: 18
            Scroll lines: 0
        15: DFUCONTROL SIGNED      {00C2}
        16: DEVICE RESET           {1802}   internal, hidden
        17: unknown:1803           {1803}   internal, hidden
        18: CONFIG DEVICE PROPS    {1806}   internal, hidden
        19: OOBSTATE               {1805}   internal, hidden
        20: unknown:1813           {1813}   internal, hidden
        21: unknown:1830           {1830}   internal, hidden
        22: unknown:1861           {1861}   internal, hidden
        23: unknown:1890           {1890}   internal, hidden
        24: unknown:1891           {1891}   internal, hidden
        25: unknown:18A1           {18A1}   internal, hidden
        26: unknown:1DF3           {1DF3}   internal, hidden
        27: unknown:1E00           {1E00}   hidden
        28: unknown:1EB0           {1EB0}   internal, hidden
        29: unknown:18B1           {18B1}   internal, hidden
        30: unknown:1850           {1850}   internal, hidden
        31: unknown:1E22           {1E22}
        32: unknown:1F03           {1F03}   internal, hidden
        33: unknown:18C0           {18C0}   internal, hidden
        34: LOWRES WHEEL           {2130}
            Wheel Reports: HID
            Scroll Wheel Diversion (saved): False
            Scroll Wheel Diversion        : False
     Has 8 reprogrammable keys:
         0: Left Button               , default: Left Click
 => Left Click
             mse, reprogrammable, pos:0, group:1, group mask:g1
             reporting: default
         1: Right Button              , default: Right Click
  => Right Click
             mse, reprogrammable, pos:0, group:1, group mask:g1
             reporting: default
         2: Middle Button             , default: Mouse Middle Button
  => Mouse Middle Button
             mse, reprogrammable, divertable, persistently divertable, raw
XY, pos:0, group:2, group mask:g1,g2
             reporting: default
         3: Back Button               , default: Mouse Back Button
  => Mouse Back Button
             mse, reprogrammable, divertable, persistently 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, persistently divertable, raw
XY, pos:0, group:2, group mask:g1,g2
             reporting: default
         5: Left Tilt                 , default: Mouse Scroll Left Button
 => Mouse Scroll Left Button
             mse, reprogrammable, divertable, persistently divertable, raw
XY, pos:0, group:2, group mask:g1,g2
             reporting: default
         6: Right Tilt                , default: Mouse Scroll Right Button
  => Mouse Scroll Right Button
             mse, reprogrammable, divertable, persistently divertable, raw
XY, 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: 50%, discharging, next level 20%.

  5: K580 Slim Multi-Device Wireless Keyboard
     Device path  : None
     WPID         : 4089
     Codename     : K580
     Kind         : keyboard
     Protocol     : HID++ 4.5
     Polling rate : 20 ms (50Hz)
     Serial number: A428544F
     Model ID:      B35A40890000
     Unit ID:       9CBC6BF5
        Bootloader: BL1 07.01.B0002
          Firmware: MPK 11.00.B0011
             Other:
     The power switch is located on the base.
     Supports 31 HID++ 2.0 features:
         0: ROOT                   {0000}
         1: FEATURE SET            {0001}
         2: DEVICE FW VERSION      {0003}
            Firmware: Bootloader BL1 07.01.B0002 000019ACE829
            Firmware: Firmware MPK 11.00.B0011 408919ACE829
            Firmware: Other
            Unit ID: 9CBC6BF5  Model ID: B35A40890000  Transport IDs:
{'btleid': 'B35A', 'wpid': '4089'}
         3: DEVICE NAME            {0005}
            Name: K580 Slim Multi-Device Wireless Keyboard
            Kind: keyboard
         4: WIRELESS DEVICE STATUS {1D4B}
         5: RESET                  {0020}
         6: DEVICE FRIENDLY NAME   {0007}
            Friendly Name: Logi K580 Keyboar
         7: BATTERY STATUS         {1000}
            Battery: 90%, discharging, next level 50%.
         8: CHANGE HOST            {1814}
            Change Host     [198E3EB8, change-host, 1]   : 2:kali
         9: HOSTS INFO             {1815}
            Host 0 (paired): LAPTOP-8KE1J9RI
            Host 1 (paired): kali
        10: REPROG CONTROLS V4     {1B04}
            Key/Button Diversion (saved): {'189': 0, '209': 0, '210': 0,
'212': 0, '224': 0, '228': 0, '229': 0, '230': 0, '231': 0, '232': 0,
'233': 0, '254': 0}
            Key/Button Diversion        : {'254': 0, '224': 0, '189': 0,
'212': 0, '228': 0, '229': 0, '230': 0, '231': 0, '232': 0, '233': 0,
'209': 0, '210': 0}
        11: K375S FN INVERSION     {40A3}
            Swap Fx function (saved): False
            Swap Fx function        : False
        12: ENCRYPTION             {4100}
        13: LOCK KEY STATE         {4220}
        14: KEYBOARD DISABLE KEYS  {4521}
            Disable keys (saved): {'1': False, '16': False, '2': False,
'4': False, '8': False}
            Disable keys        : {'1': False, '2': False, '4': False, '8':
False, '16': False}
        15: MULTIPLATFORM          {4531}
            Set OS (saved): 0
            Set OS        : Windows
        16: DFUCONTROL SIGNED      {00C2}
        17: DEVICE RESET           {1802}   internal, hidden
        18: unknown:1803           {1803}   internal, hidden
        19: CONFIG DEVICE PROPS    {1806}   internal, hidden
        20: OOBSTATE               {1805}   internal, hidden
        21: unknown:1813           {1813}   internal, hidden
        22: unknown:1830           {1830}   internal, hidden
        23: unknown:1861           {1861}   internal, hidden
        24: unknown:1890           {1890}   internal, hidden
        25: unknown:1891           {1891}   internal, hidden
        26: unknown:18A1           {18A1}   internal, hidden
        27: unknown:1DF3           {1DF3}   internal, hidden
        28: unknown:1E00           {1E00}   hidden
        29: unknown:1EB0           {1EB0}   internal, hidden
        30: unknown:18B0           {18B0}   internal, hidden
     Has 14 reprogrammable keys:
         0: Multiplatform Home/Show Desktop, default: Home/Show Desktop
      => Home/Show Desktop
             is FN, FN sensitive, reprogrammable, divertable, persistently
divertable, pos:1, group:0, group mask:empty
             reporting: default
         1: Mission Control/Task View , default: Mission Control/Task View
  => Mission Control/Task View
             is FN, FN sensitive, reprogrammable, divertable, persistently
divertable, pos:2, group:0, group mask:empty
             reporting: default
         2: Multiplatform Back        , default: MultiPlatform Back
 => MultiPlatform Back
             is FN, FN sensitive, reprogrammable, divertable, persistently
divertable, pos:3, group:0, group mask:empty
             reporting: default
         3: MultiPlatform Search      , default: Multiplatform Search
 => Multiplatform Search
             is FN, FN sensitive, reprogrammable, divertable, persistently
divertable, pos:4, group:0, group mask:empty
             reporting: default
         4: Previous Fn               , default: Previous
 => Previous
             is FN, FN sensitive, reprogrammable, divertable, persistently
divertable, pos:5, group:0, group mask:empty
             reporting: default
         5: Play/Pause Fn             , default: Play/Pause
 => Play/Pause
             is FN, FN sensitive, reprogrammable, divertable, persistently
divertable, pos:6, group:0, group mask:empty
             reporting: default
         6: Next Fn                   , default: Next
 => Next
             is FN, FN sensitive, reprogrammable, divertable, persistently
divertable, pos:7, group:0, group mask:empty
             reporting: default
         7: Mute Fn                   , default: Mute
 => Mute
             is FN, FN sensitive, reprogrammable, divertable, persistently
divertable, pos:8, group:0, group mask:empty
             reporting: default
         8: Volume Down Fn            , default: Volume Down
  => Volume Down
             is FN, FN sensitive, reprogrammable, divertable, persistently
divertable, pos:9, group:0, group mask:empty
             reporting: default
         9: Volume Up Fn              , default: Volume Up
  => Volume Up
             is FN, FN sensitive, reprogrammable, divertable, persistently
divertable, pos:10, group:0, group mask:empty
             reporting: default
        10: Host Switch Channel 1     , default: HostSwitch Channel 1
 => HostSwitch Channel 1
             is FN, FN sensitive, divertable, persistently divertable,
pos:11, group:0, group mask:empty
             reporting: default
        11: Host Switch Channel 2     , default: HostSwitch Channel 2
 => HostSwitch Channel 2
             is FN, FN sensitive, divertable, persistently divertable,
pos:12, group:0, group mask:empty
             reporting: default
        12: F Lock                    , default: Do Nothing One
 => Do Nothing One
             is FN, pos:0, group:0, group mask:empty
             reporting: default
        13: unknown:0034              , default: Do Nothing One
 => Do Nothing One
             nonstandard, pos:0, group:0, group mask:empty
             reporting: default
     Battery: 90%, discharging, next level 50%.

Attached is the screenshots. I can find the key function but I cannot find the set function. [image: image.png]

Message ID: @.***>

pfps commented 2 years ago

You should respond in github, as your images were stripped out of your reply.

pfps commented 2 years ago

You need Solaar 1.1.2 to do what you want to do.