Use Host Switch buttons to alternate between receivers for both Keyboard and Mouse
Created by: SoftExpert
Information
- Solaar version: 1.0.4+git1275-8fccd843-202102090518~ubuntu20.04.1
- Distribution: KUbuntu 20.04
- Kernel version: Linux 5.10.15-xanmod1 x86_64 GNU/Linux
- Output of
solaar show
for the target device (if applicable):
Unifying Receiver
Device path : /dev/hidraw0
USB id : 046d:C52B
Serial : E1F970EB
Firmware : 24.11.B0036
Bootloader : 02.09
Other : AA.AC
Has 2 paired device(s) out of a maximum of 6.
Notifications: wireless, software present (0x000900)
Device activity counters: 1=207, 2=99
1: MX Keys Keyboard
Device path : /dev/hidraw2
WPID : 408A
Codename : MX Keys
Kind : keyboard
Protocol : HID++ 4.5
Polling rate : 20 ms (50Hz)
Serial number: B95E6F62
Model ID: B35B408A0000
Unit ID: B95E6F62
Bootloader: BL1 08.00.B0011
Firmware: MPK 12.00.B0011
Other:
The power switch is located on the edge of top right corner.
Supports 33 HID++ 2.0 features:
0: ROOT {0000}
1: FEATURE SET {0001}
2: DEVICE FW VERSION {0003}
Firmware: Bootloader BL1 08.00.B0011 00008169E8BB
Firmware: Firmware MPK 12.00.B0011 408A8169E8BB
Firmware: Other
Unit ID: B95E6F62 Model ID: B35B408A0000 Transport IDs: {'btleid': 'B35B', 'wpid': '408A'}
3: DEVICE NAME {0005}
Name: MX Keys Wireless Keyboard
Kind: keyboard
4: WIRELESS DEVICE STATUS {1D4B}
5: RESET {0020}
6: DEVICE FRIENDLY NAME {0007}
7: BATTERY STATUS {1000}
Battery: 100%, discharging, next level 50%.
8: REPROG CONTROLS V4 {1B04}
Key/Button Diversion: {'209': 0, '210': 0, '211': 0, '199': 0, '200': 0, '224': 0, '225': 0, '110': 0, '226': 0, '227': 0, '228': 0, '229': 0, '230': 0, '231': 0, '232': 0, '233': 0, '10': 0, '191': 0, '234': 0, '111': 0, '236': 0, '235': 0}
9: CHANGE HOST {1814}
Change Host: 1:W10MASTER
10: HOSTS INFO {1815}
Host 0 (paired): W10MASTER
Host 1 (paired): W10MASTER
Host 2 (unpaired):
11: BACKLIGHT2 {1982}
Backlight: True
12: K375S FN INVERSION {40A3}
Swap Fx function: False
13: ENCRYPTION {4100}
14: LOCK KEY STATE {4220}
15: KEYBOARD DISABLE KEYS {4521}
Disable keys: {'1': False, '2': False, '4': False, '8': False, '16': False}
16: MULTIPLATFORM {4531}
Set OS: Android
17: DFUCONTROL SIGNED {00C2}
18: DEVICE RESET {1802} internal, hidden
19: unknown:1803 {1803} internal, hidden
20: CONFIG DEVICE PROPS {1806} internal, hidden
21: unknown:1813 {1813} internal, hidden
22: OOBSTATE {1805} internal, hidden
23: unknown:1830 {1830} 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:1861 {1861} internal, hidden
31: unknown:1A20 {1A20} internal, hidden
32: unknown:18B0 {18B0} internal, hidden
Has 24 reprogrammable keys:
0: Host Switch Channel 1 , default: HostSwitch Channel 1 => HostSwitch Channel 1
nonstandard, divertable, persistently divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
1: Host Switch Channel 2 , default: HostSwitch Channel 2 => HostSwitch Channel 2
nonstandard, divertable, persistently divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
2: Host Switch Channel 3 , default: HostSwitch Channel 3 => HostSwitch Channel 3
nonstandard, divertable, persistently divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
3: Brightness Down , default: Brightness Down => Brightness Down
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, analytics key events, pos:1, group:0, group mask:empty
reporting: default
4: Brightness Up , default: Brightness Up => Brightness Up
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, analytics key events, pos:2, group:0, group mask:empty
reporting: default
5: Mission Control/Task View , default: Mission Control/Task View => Mission Control/Task View
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, analytics key events, pos:3, group:0, group mask:empty
reporting: default
6: Dashboard Launchpad/Action Center, default: Dashboard Launchpad/Action Center => Dashboard Launchpad/Action Center
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, analytics key events, pos:4, group:0, group mask:empty
reporting: default
7: Show Desktop , default: Show Desktop => Show Desktop
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, analytics key events, pos:5, group:0, group mask:empty
reporting: default
8: Backlight Down , default: Backlight Down => Backlight Down
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, analytics key events, pos:6, group:0, group mask:empty
reporting: default
9: Backlight Up , default: Backlight Up => Backlight Up
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, analytics key events, pos:7, group:0, group mask:empty
reporting: default
10: Previous Fn , default: Previous => Previous
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, analytics key events, pos:8, group:0, group mask:empty
reporting: default
11: Play/Pause Fn , default: Play/Pause => Play/Pause
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, analytics key events, pos:9, group:0, group mask:empty
reporting: default
12: Next Fn , default: Next => Next
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, analytics key events, pos:10, group:0, group mask:empty
reporting: default
13: Mute Fn , default: Mute => Mute
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, analytics key events, pos:11, group:0, group mask:empty
reporting: default
14: Volume Down Fn , default: Volume Down => Volume Down
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, analytics key events, pos:12, group:0, group mask:empty
reporting: default
15: Volume Up Fn , default: Volume Up => Volume Up
nonstandard, reprogrammable, divertable, persistently divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
16: Calculator , default: Calculator => Calculator
nonstandard, reprogrammable, divertable, persistently divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
17: Screen Capture/Print Screen, default: Screen Capture => Screen Capture
nonstandard, reprogrammable, divertable, persistently divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
18: App Contextual Menu/Right Click, default: Right Click/App Contextual Menu => Right Click/App Contextual Menu
nonstandard, reprogrammable, divertable, persistently divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
19: Lock PC , default: WindowsLock => WindowsLock
nonstandard, reprogrammable, divertable, persistently divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
20: Left Arrow , default: Keyboard Left Arrow => Keyboard Left Arrow
nonstandard, divertable, persistently divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
21: Right Arrow , default: Keyboard Right Arrow => Keyboard Right Arrow
nonstandard, divertable, persistently divertable, analytics key events, pos:0, group:0, group mask:empty
reporting: default
22: F Lock , default: Do Nothing One => Do Nothing One
is FN, analytics key events, pos:0, group:0, group mask:empty
reporting: default
23: unknown:0034 , default: Do Nothing One => Do Nothing One
nonstandard, analytics key events, pos:0, group:0, group mask:empty
reporting: default
Battery: 100%, discharging, next level 50%.
2: Wireless Mouse MX Master 2S
Device path : /dev/hidraw3
WPID : 4069
Codename : MX Master 2S
Kind : mouse
Protocol : HID++ 4.5
Polling rate : 8 ms (125Hz)
Serial number: BA8626F9
Model ID: B01940690000
Unit ID: 93AD7592
Bootloader: BOT 56.01.B0006
Firmware: MPM 12.01.B0006
Firmware: MPM 12.01.B0006
Other:
The power switch is located on the base.
Supports 32 HID++ 2.0 features:
0: ROOT {0000}
1: FEATURE SET {0001}
2: DEVICE FW VERSION {0003}
Firmware: Bootloader BOT 56.01.B0006 406916A9FC5401
Firmware: Firmware MPM 12.01.B0006 B01916A9FC5401
Firmware: Firmware MPM 12.01.B0006 406916A9FC5401
Firmware: Other
Unit ID: 93AD7592 Model ID: B01940690000 Transport IDs: {'btleid': 'B019', 'wpid': '4069'}
3: DEVICE NAME {0005}
Name: Wireless Mouse MX Master 2S
Kind: mouse
4: WIRELESS DEVICE STATUS {1D4B}
5: RESET {0020}
6: CRYPTO ID {0021}
7: BATTERY STATUS {1000}
Battery: 90%, discharging, next level 50%.
8: CONFIG DEVICE PROPS {1806} internal, hidden
9: CHANGE HOST {1814}
Change Host: 1:hermes
10: REPROG CONTROLS V4 {1B04}
Key/Button Actions: {'80': 80, '81': 81, '82': 82, '83': 83, '86': 86, '195': 195, '196': 196}
Key/Button Diversion: {'82': 0, '83': 0, '86': 0, '195': 0, '196': 0, '215': 0}
11: ADJUSTABLE DPI {2201}
Sensitivity (DPI): 1000
12: VERTICAL SCROLLING {2100}
Roller type: 3G
Ratchet per turn: 24
Scroll lines: 0
13: SMART SHIFT {2110}
Scroll Wheel Rachet: 16
14: HIRES WHEEL {2121}
Multiplier: 8
Has invert: Normal wheel motion
Has ratchet switch: Normal wheel mode
High resolution mode
HID notification
Scroll Wheel Direction: False
Scroll Wheel Resolution: True
15: GESTURE 2 {6501}
Gestures: {'46': True, '45': True}
16: DFUCONTROL SIGNED {00C2}
17: unknown:1813 {1813} internal, hidden
18: unknown:1830 {1830} internal, hidden
19: unknown:1890 {1890} internal, hidden
20: unknown:1891 {1891} internal, hidden
21: unknown:18A1 {18A1} internal, hidden
22: unknown:18C0 {18C0} internal, hidden
23: unknown:1DF3 {1DF3} internal, hidden
24: unknown:1E00 {1E00} hidden
25: unknown:1EB0 {1EB0} internal, hidden
26: unknown:1803 {1803} internal, hidden
27: unknown:1861 {1861} internal, hidden
28: unknown:9001 {9001} internal, hidden
29: unknown:9200 {9200} internal, hidden
30: unknown:9202 {9202} internal, hidden
31: OOBSTATE {1805} 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: App Switch Gesture , default: Gesture Button Navigation => Gesture Button Navigation
mse, reprogrammable, divertable, raw XY, pos:0, group:3, group mask:g1,g2,g3
reporting: default
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): True
NaturalScrolling Enabled ( 1): True
period unit Spec ( 3): 800
DVI field width Spec ( 1): 8
field widths Spec ( 2): 8
resolution Spec ( 4): 2048
Battery: 90%, discharging, next level 50%.
Is your feature request related to a problem? Please describe. I would like to have the possibility to associate the Host Switch buttons on my MX Keys keyboard with the Change Host feature of the MX Master 2s, thus using the keyboard as some sort of KVM device. Usually both the keyboard and the mouse are paired with at least 2 receivers and it would be great to be able to go from one receiver to another by using the keyboard's Host Switch buttons.
Describe the solution you'd like Usually both the keyboard and the mouse are paired with at least 2 receivers and it would be great to be able to go from one receiver to another by using the keyboard's Host Switch buttons.
Describe alternatives you've considered None that I could find.
Additional context Nothing in particular, but I could provide extra information if needed.
It would be a great feature to be able to define a Custom Rule to trigger the Host switch of the mouse when the keyboard is being switched.
Thank you in advance!
Best regards, SoftExpert