device: reformat descriptors.py
This commit is contained in:
parent
49e9240be9
commit
85b4495443
|
@ -191,115 +191,19 @@ _PERFORMANCE_MX_DPIS = _NamedInts.range(0x81, 0x8F, lambda x: str((x - 0x80) * 1
|
||||||
# devices may only have register-based settings; HID++ 2.0 devices may only have
|
# devices may only have register-based settings; HID++ 2.0 devices may only have
|
||||||
# feature-based settings.
|
# feature-based settings.
|
||||||
|
|
||||||
|
# Devices are organized by kind
|
||||||
|
# Within kind devices are sorted by wpid, then by usbid, then by btid, with missing values sorted later
|
||||||
|
|
||||||
# Keyboards
|
# Keyboards
|
||||||
|
|
||||||
_D('Wireless Keyboard K230', protocol=2.0, wpid='400D')
|
_D('Wireless Keyboard S510', codename='S510', protocol=1.0, wpid='0056', registers=(_R.battery_status, ))
|
||||||
_D('Wireless Keyboard K270(unifying)', protocol=2.0, wpid='4003')
|
_D('Wireless Keyboard EX100', codename='EX100', protocol=1.0, wpid='0065', registers=(_R.battery_status, ))
|
||||||
_D(
|
_D('Wireless Keyboard MK300', protocol=1.0, wpid='0068', registers=(_R.battery_status, ))
|
||||||
'Wireless Keyboard MK270',
|
_D('Number Pad N545', protocol=1.0, wpid='2006', registers=(_R.battery_status, ))
|
||||||
protocol=2.0,
|
_D('Wireless Compact Keyboard K340', protocol=1.0, wpid='2007', registers=(_R.battery_status, ))
|
||||||
wpid='4023',
|
_D('Wireless Keyboard MK700', protocol=1.0, wpid='2008', registers=(_R.battery_status, ), settings=[_RS.fn_swap()])
|
||||||
settings=[_FS.fn_swap()],
|
_D('Wireless Wave Keyboard K350', protocol=1.0, wpid='200A', registers=(_R.battery_status, ))
|
||||||
)
|
_D('Wireless Keyboard MK320', protocol=1.0, wpid='200F', registers=(_R.battery_status, ))
|
||||||
_D(
|
|
||||||
'Wireless Keyboard K270',
|
|
||||||
protocol=1.0,
|
|
||||||
registers=(_R.battery_status, ),
|
|
||||||
)
|
|
||||||
_D(
|
|
||||||
'Wireless Keyboard MK300',
|
|
||||||
protocol=1.0,
|
|
||||||
wpid='0068',
|
|
||||||
registers=(_R.battery_status, ),
|
|
||||||
)
|
|
||||||
|
|
||||||
_D(
|
|
||||||
'Wireless Keyboard MK320',
|
|
||||||
protocol=1.0,
|
|
||||||
wpid='200F',
|
|
||||||
registers=(_R.battery_status, ),
|
|
||||||
)
|
|
||||||
_D('Wireless Keyboard MK330')
|
|
||||||
_D(
|
|
||||||
'Wireless Compact Keyboard K340',
|
|
||||||
protocol=1.0,
|
|
||||||
wpid='2007',
|
|
||||||
registers=(_R.battery_status, ),
|
|
||||||
)
|
|
||||||
_D(
|
|
||||||
'Wireless Wave Keyboard K350',
|
|
||||||
protocol=1.0,
|
|
||||||
wpid='200A',
|
|
||||||
registers=(_R.battery_status, ),
|
|
||||||
)
|
|
||||||
_D(
|
|
||||||
'Wireless Keyboard K360',
|
|
||||||
protocol=2.0,
|
|
||||||
wpid='4004',
|
|
||||||
settings=[_FS.fn_swap()],
|
|
||||||
)
|
|
||||||
_D(
|
|
||||||
'Wireless Keyboard K375s',
|
|
||||||
protocol=2.0,
|
|
||||||
wpid='4061',
|
|
||||||
settings=[_FS.k375s_fn_swap()],
|
|
||||||
)
|
|
||||||
_D(
|
|
||||||
'Wireless Touch Keyboard K400',
|
|
||||||
protocol=2.0,
|
|
||||||
wpid=('400E', '4024'),
|
|
||||||
settings=[_FS.fn_swap()],
|
|
||||||
)
|
|
||||||
_D(
|
|
||||||
'Wireless Touch Keyboard K400 Plus',
|
|
||||||
codename='K400 Plus',
|
|
||||||
protocol=2.0,
|
|
||||||
wpid='404D',
|
|
||||||
settings=[
|
|
||||||
_FS.new_fn_swap(),
|
|
||||||
_FS.reprogrammable_keys(),
|
|
||||||
_FS.disable_keyboard_keys(),
|
|
||||||
_FS.gesture2_gestures(),
|
|
||||||
_FS.gesture2_params(),
|
|
||||||
],
|
|
||||||
)
|
|
||||||
_D(
|
|
||||||
'Wireless Keyboard K520',
|
|
||||||
protocol=1.0,
|
|
||||||
wpid='2011',
|
|
||||||
registers=(_R.battery_status, ),
|
|
||||||
settings=[
|
|
||||||
_RS.fn_swap(),
|
|
||||||
],
|
|
||||||
)
|
|
||||||
_D(
|
|
||||||
'Number Pad N545',
|
|
||||||
protocol=1.0,
|
|
||||||
wpid='2006',
|
|
||||||
registers=(_R.battery_status, ),
|
|
||||||
)
|
|
||||||
_D('Wireless Keyboard MK550')
|
|
||||||
_D(
|
|
||||||
'Wireless Keyboard MK700',
|
|
||||||
protocol=1.0,
|
|
||||||
wpid='2008',
|
|
||||||
registers=(_R.battery_status, ),
|
|
||||||
settings=[
|
|
||||||
_RS.fn_swap(),
|
|
||||||
],
|
|
||||||
)
|
|
||||||
_D(
|
|
||||||
'Wireless Solar Keyboard K750',
|
|
||||||
protocol=2.0,
|
|
||||||
wpid='4002',
|
|
||||||
settings=[_FS.fn_swap()],
|
|
||||||
)
|
|
||||||
_D(
|
|
||||||
'Wireless Multi-Device Keyboard K780',
|
|
||||||
protocol=4.5,
|
|
||||||
wpid='405B',
|
|
||||||
settings=[_FS.new_fn_swap()],
|
|
||||||
)
|
|
||||||
_D(
|
_D(
|
||||||
'Wireless Illuminated Keyboard K800',
|
'Wireless Illuminated Keyboard K800',
|
||||||
protocol=1.0,
|
protocol=1.0,
|
||||||
|
@ -313,105 +217,64 @@ _D(
|
||||||
_RS.hand_detection(),
|
_RS.hand_detection(),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
_D(
|
_D('Wireless Keyboard K520', protocol=1.0, wpid='2011', registers=(_R.battery_status, ), settings=[_RS.fn_swap()])
|
||||||
'Wireless Illuminated Keyboard K800 new',
|
_D('Wireless Solar Keyboard K750', protocol=2.0, wpid='4002', settings=[_FS.fn_swap()])
|
||||||
codename='K800 new',
|
_D('Wireless Keyboard K270 (unifying)', protocol=2.0, wpid='4003')
|
||||||
protocol=4.5,
|
_D('Wireless Keyboard K360', protocol=2.0, wpid='4004', settings=[_FS.fn_swap()])
|
||||||
wpid='406E',
|
_D('Wireless Keyboard K230', protocol=2.0, wpid='400D')
|
||||||
settings=[_FS.fn_swap()],
|
_D('Wireless Touch Keyboard K400', protocol=2.0, wpid=('400E', '4024'), settings=[_FS.fn_swap()])
|
||||||
)
|
_D('Wireless Keyboard MK270', protocol=2.0, wpid='4023', settings=[_FS.fn_swap()])
|
||||||
_D(
|
_D('Illuminated Living-Room Keyboard K830', protocol=2.0, wpid='4032', settings=[_FS.new_fn_swap()])
|
||||||
'Illuminated Living-Room Keyboard K830',
|
_D('Wireless Touch Keyboard K400 Plus', codename='K400 Plus', protocol=2.0, wpid='404D')
|
||||||
protocol=2.0,
|
_D('Wireless Multi-Device Keyboard K780', protocol=4.5, wpid='405B', settings=[_FS.new_fn_swap()])
|
||||||
wpid='4032',
|
_D('Wireless Keyboard K375s', protocol=2.0, wpid='4061', settings=[_FS.k375s_fn_swap()])
|
||||||
settings=[_FS.new_fn_swap()],
|
|
||||||
)
|
|
||||||
_D('Craft Advanced Keyboard', codename='Craft', protocol=4.5, wpid='4066', btid=0xB350)
|
_D('Craft Advanced Keyboard', codename='Craft', protocol=4.5, wpid='4066', btid=0xB350)
|
||||||
|
_D('Wireless Illuminated Keyboard K800 new', codename='K800 new', protocol=4.5, wpid='406E', settings=[_FS.fn_swap()])
|
||||||
_D('MX Keys Keyboard', codename='MX Keys', protocol=4.5, wpid='408A', btid=0xB35B)
|
_D('MX Keys Keyboard', codename='MX Keys', protocol=4.5, wpid='408A', btid=0xB35B)
|
||||||
_D(
|
_D('G915 TKL LIGHTSPEED Wireless RGB Mechanical Gaming Keyboard', codename='G915 TKL', protocol=4.2, wpid='408E', usbid=0xC343)
|
||||||
'Wireless Keyboard S510',
|
|
||||||
codename='S510',
|
|
||||||
protocol=1.0,
|
|
||||||
wpid='0056',
|
|
||||||
registers=(_R.battery_status, ),
|
|
||||||
)
|
|
||||||
_D(
|
|
||||||
'Wireless Keyboard EX100',
|
|
||||||
codename='EX100',
|
|
||||||
protocol=1.0,
|
|
||||||
wpid='0065',
|
|
||||||
registers=(_R.battery_status, ),
|
|
||||||
)
|
|
||||||
_D(
|
|
||||||
'G915 TKL LIGHTSPEED Wireless RGB Mechanical Gaming Keyboard',
|
|
||||||
codename='G915 TKL',
|
|
||||||
protocol=4.2,
|
|
||||||
wpid='408E',
|
|
||||||
usbid=0xC343,
|
|
||||||
)
|
|
||||||
|
|
||||||
# Mice
|
# Mice
|
||||||
|
|
||||||
_D('Wireless Mouse M150', protocol=2.0, wpid='4022')
|
_D('LX5 Cordless Mouse', codename='LX5', protocol=1.0, wpid='0036', registers=(_R.battery_status, ))
|
||||||
_D('Wireless Mouse M175', protocol=2.0, wpid='4008')
|
_D('Wireless Mouse EX100', codename='EX100m', protocol=1.0, wpid='003F', registers=(_R.battery_status, ))
|
||||||
|
_D('Wireless Mouse M30', codename='M30', protocol=1.0, wpid='0085', registers=(_R.battery_status, ))
|
||||||
|
_D('MX610 Laser Cordless Mouse', codename='MX610', protocol=1.0, wpid='1001', registers=(_R.battery_status, ))
|
||||||
|
_D('G7 Cordless Laser Mouse', codename='G7', protocol=1.0, wpid='1002', registers=(_R.battery_status, ))
|
||||||
|
_D('V400 Laser Cordless Mouse', codename='V400', protocol=1.0, wpid='1003', registers=(_R.battery_status, ))
|
||||||
|
_D('MX610 Left-Handled Mouse', codename='MX610L', protocol=1.0, wpid='1004', registers=(_R.battery_status, ))
|
||||||
|
_D('V450 Laser Cordless Mouse', codename='V450', protocol=1.0, wpid='1005', registers=(_R.battery_status, ))
|
||||||
_D(
|
_D(
|
||||||
'Wireless Mouse M185 new',
|
'VX Revolution',
|
||||||
codename='M185n',
|
codename='VX Revolution',
|
||||||
protocol=4.5,
|
kind=_DK.mouse,
|
||||||
wpid='4054',
|
|
||||||
settings=[
|
|
||||||
_FS.lowres_smooth_scroll(),
|
|
||||||
_FS.pointer_speed(),
|
|
||||||
]
|
|
||||||
)
|
|
||||||
# Apparently Logitech uses wpid 4055 for three different mice
|
|
||||||
# That's not so strange, as M185 is used on both Unifying-ready and non-Unifying-ready mice
|
|
||||||
_D(
|
|
||||||
'Wireless Mouse M185/M235/M310',
|
|
||||||
codename='M185/M235/M310',
|
|
||||||
protocol=4.5,
|
|
||||||
wpid='4055',
|
|
||||||
settings=[
|
|
||||||
_FS.lowres_smooth_scroll(),
|
|
||||||
_FS.pointer_speed(),
|
|
||||||
]
|
|
||||||
)
|
|
||||||
_D('Wireless Mouse M185', protocol=2.0, wpid='4038')
|
|
||||||
_D('Wireless Mouse M187', protocol=2.0, wpid='4019')
|
|
||||||
_D('Wireless Mouse M215', protocol=1.0, wpid='1020')
|
|
||||||
_D(
|
|
||||||
'Wireless Mouse M305',
|
|
||||||
protocol=1.0,
|
protocol=1.0,
|
||||||
wpid='101F',
|
wpid=('1006', '100D', '0612'),
|
||||||
registers=(_R.battery_status, ),
|
registers=(_R.battery_charge, )
|
||||||
settings=[
|
|
||||||
_RS.side_scroll(),
|
|
||||||
],
|
|
||||||
)
|
)
|
||||||
|
_D('MX Air', codename='MX Air', protocol=1.0, kind=_DK.mouse, wpid=('1007', '100E'), registers=(_R.battery_charge, ))
|
||||||
_D(
|
_D(
|
||||||
'Wireless Mouse M310',
|
'MX Revolution',
|
||||||
|
codename='MX Revolution',
|
||||||
protocol=1.0,
|
protocol=1.0,
|
||||||
wpid='1024',
|
kind=_DK.mouse,
|
||||||
registers=(_R.battery_status, ),
|
wpid=('1008', '100C'),
|
||||||
|
registers=(_R.battery_charge, )
|
||||||
)
|
)
|
||||||
_D('Wireless Mouse M315')
|
_D('MX620 Laser Cordless Mouse', codename='MX620', protocol=1.0, wpid=('100A', '1016'), registers=(_R.battery_charge, ))
|
||||||
_D('Wireless Mouse M317')
|
|
||||||
_D('Wireless Mouse M325', protocol=2.0, wpid='400A', settings=[
|
|
||||||
_FS.hi_res_scroll(),
|
|
||||||
])
|
|
||||||
_D('Wireless Mouse M345', protocol=2.0, wpid='4017')
|
|
||||||
_D(
|
_D(
|
||||||
'Wireless Mouse M350',
|
'VX Nano Cordless Laser Mouse',
|
||||||
|
codename='VX Nano',
|
||||||
protocol=1.0,
|
protocol=1.0,
|
||||||
wpid='101C',
|
wpid=('100B', '100F'),
|
||||||
registers=(_R.battery_charge, ),
|
registers=(_R.battery_charge, ),
|
||||||
|
settings=[_RS.smooth_scroll(), _RS.side_scroll()]
|
||||||
)
|
)
|
||||||
_D('Wireless Mouse Pebble M350', codename='Pebble', protocol=2.0, wpid='4080')
|
_D('V450 Nano Cordless Laser Mouse', codename='V450 Nano', protocol=1.0, wpid='1011', registers=(_R.battery_charge, ))
|
||||||
_D(
|
_D(
|
||||||
'Wireless Mouse M505',
|
'V550 Nano Cordless Laser Mouse',
|
||||||
codename='M505/B605',
|
codename='V550 Nano',
|
||||||
protocol=1.0,
|
protocol=1.0,
|
||||||
wpid='101D',
|
wpid='1013',
|
||||||
registers=(_R.battery_charge, ),
|
registers=(_R.battery_charge, ),
|
||||||
settings=[
|
settings=[
|
||||||
_RS.smooth_scroll(),
|
_RS.smooth_scroll(),
|
||||||
|
@ -419,56 +282,17 @@ _D(
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
_D(
|
_D(
|
||||||
'Wireless Mouse M510',
|
'MX 1100 Cordless Laser Mouse',
|
||||||
|
codename='MX 1100',
|
||||||
protocol=1.0,
|
protocol=1.0,
|
||||||
wpid='1025',
|
kind=_DK.mouse,
|
||||||
registers=(_R.battery_status, ),
|
wpid='1014',
|
||||||
settings=[
|
|
||||||
# _RS.smooth_scroll(), # writing the bit to the register doesn't cause an error, but the bit doesn't turn on
|
|
||||||
_RS.side_scroll(),
|
|
||||||
],
|
|
||||||
)
|
|
||||||
_D('Wireless Mouse M510', codename='M510v2', protocol=2.0, wpid='4051', settings=[
|
|
||||||
_FS.lowres_smooth_scroll(),
|
|
||||||
])
|
|
||||||
_D('Couch Mouse M515', protocol=2.0, wpid='4007')
|
|
||||||
_D('Wireless Mouse M525', protocol=2.0, wpid='4013')
|
|
||||||
_D(
|
|
||||||
'Multi Device Silent Mouse M585/M590',
|
|
||||||
codename='M585/M590',
|
|
||||||
protocol=4.5,
|
|
||||||
wpid='406B',
|
|
||||||
settings=[
|
|
||||||
_FS.lowres_smooth_scroll(),
|
|
||||||
_FS.pointer_speed(),
|
|
||||||
],
|
|
||||||
)
|
|
||||||
_D('Touch Mouse M600', protocol=2.0, wpid='401A')
|
|
||||||
_D(
|
|
||||||
'Marathon Mouse M705 (M-R0009)',
|
|
||||||
codename='M705 (M-R0009)',
|
|
||||||
protocol=1.0,
|
|
||||||
wpid='101B',
|
|
||||||
registers=(_R.battery_charge, ),
|
registers=(_R.battery_charge, ),
|
||||||
settings=[
|
settings=[
|
||||||
_RS.smooth_scroll(),
|
_RS.smooth_scroll(),
|
||||||
_RS.side_scroll(),
|
_RS.side_scroll(),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
_D(
|
|
||||||
'Marathon Mouse M705 (M-R0073)',
|
|
||||||
codename='M705 (M-R0073)',
|
|
||||||
protocol=4.5,
|
|
||||||
wpid='406D',
|
|
||||||
settings=[
|
|
||||||
_FS.hires_smooth_invert(),
|
|
||||||
# _FS.hires_smooth_resolution(),
|
|
||||||
_FS.pointer_speed(),
|
|
||||||
]
|
|
||||||
)
|
|
||||||
_D('Zone Touch Mouse T400')
|
|
||||||
_D('Touch Mouse T620', protocol=2.0)
|
|
||||||
_D('Logitech Cube', kind=_DK.mouse, protocol=2.0)
|
|
||||||
_D(
|
_D(
|
||||||
'Anywhere Mouse MX',
|
'Anywhere Mouse MX',
|
||||||
codename='Anywhere MX',
|
codename='Anywhere MX',
|
||||||
|
@ -480,16 +304,6 @@ _D(
|
||||||
_RS.side_scroll(),
|
_RS.side_scroll(),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
_D(
|
|
||||||
'Anywhere Mouse MX 2',
|
|
||||||
codename='Anywhere MX 2',
|
|
||||||
protocol=4.5,
|
|
||||||
wpid='404A',
|
|
||||||
settings=[
|
|
||||||
_FS.hires_smooth_invert(),
|
|
||||||
# _FS.hires_smooth_resolution(),
|
|
||||||
],
|
|
||||||
)
|
|
||||||
_D(
|
_D(
|
||||||
'Performance Mouse MX',
|
'Performance Mouse MX',
|
||||||
codename='Performance MX',
|
codename='Performance MX',
|
||||||
|
@ -505,43 +319,31 @@ _D(
|
||||||
_RS.side_scroll(),
|
_RS.side_scroll(),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
_D(
|
_D(
|
||||||
'Wireless Mouse MX Master',
|
'Marathon Mouse M705 (M-R0009)',
|
||||||
codename='MX Master',
|
codename='M705 (M-R0009)',
|
||||||
protocol=4.5,
|
|
||||||
wpid='4041',
|
|
||||||
btid=0xb012,
|
|
||||||
settings=[
|
|
||||||
_FS.hires_smooth_invert(),
|
|
||||||
# _FS.hires_smooth_resolution(),
|
|
||||||
],
|
|
||||||
)
|
|
||||||
|
|
||||||
_D(
|
|
||||||
'Wireless Mouse MX Master 2S',
|
|
||||||
codename='MX Master 2S',
|
|
||||||
protocol=4.5,
|
|
||||||
wpid='4069',
|
|
||||||
btid=0xb019,
|
|
||||||
settings=[
|
|
||||||
_FS.hires_smooth_invert(),
|
|
||||||
# _FS.hires_smooth_resolution(),
|
|
||||||
_FS.gesture2_gestures(),
|
|
||||||
],
|
|
||||||
)
|
|
||||||
|
|
||||||
_D('MX Master 3 Wireless Mouse', codename='MX Master 3', protocol=4.5, wpid='4082', btid=0xb023)
|
|
||||||
|
|
||||||
_D('MX Vertical Wireless Mouse', codename='MX Vertical', protocol=4.5, wpid='407B', btid=0xb020, usbid=0xc08a)
|
|
||||||
|
|
||||||
_D(
|
|
||||||
'G7 Cordless Laser Mouse',
|
|
||||||
codename='G7',
|
|
||||||
protocol=1.0,
|
protocol=1.0,
|
||||||
wpid='1002',
|
wpid='101B',
|
||||||
registers=(_R.battery_status, ),
|
registers=(_R.battery_charge, ),
|
||||||
|
settings=[
|
||||||
|
_RS.smooth_scroll(),
|
||||||
|
_RS.side_scroll(),
|
||||||
|
],
|
||||||
)
|
)
|
||||||
|
_D('Wireless Mouse M350', protocol=1.0, wpid='101C', registers=(_R.battery_charge, ))
|
||||||
|
_D(
|
||||||
|
'Wireless Mouse M505',
|
||||||
|
codename='M505/B605',
|
||||||
|
protocol=1.0,
|
||||||
|
wpid='101D',
|
||||||
|
registers=(_R.battery_charge, ),
|
||||||
|
settings=[
|
||||||
|
_RS.smooth_scroll(),
|
||||||
|
_RS.side_scroll(),
|
||||||
|
],
|
||||||
|
)
|
||||||
|
_D('Wireless Mouse M305', protocol=1.0, wpid='101F', registers=(_R.battery_status, ), settings=[_RS.side_scroll()])
|
||||||
|
_D('Wireless Mouse M215', protocol=1.0, wpid='1020')
|
||||||
_D(
|
_D(
|
||||||
'G700 Gaming Mouse',
|
'G700 Gaming Mouse',
|
||||||
codename='G700',
|
codename='G700',
|
||||||
|
@ -558,6 +360,9 @@ _D(
|
||||||
_RS.side_scroll(),
|
_RS.side_scroll(),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
_D('Wireless Mouse M310', protocol=1.0, wpid='1024', registers=(_R.battery_status, ))
|
||||||
|
_D('Wireless Mouse M510', protocol=1.0, wpid='1025', registers=(_R.battery_status, ), settings=[_RS.side_scroll()])
|
||||||
|
_D('Fujitsu Sonic Mouse', codename='Sonic', protocol=1.0, wpid='1029')
|
||||||
_D(
|
_D(
|
||||||
'G700s Gaming Mouse',
|
'G700s Gaming Mouse',
|
||||||
codename='G700s',
|
codename='G700s',
|
||||||
|
@ -575,178 +380,94 @@ _D(
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
_D('G102 Lightsync Mouse', codename='G102', usbid=0xc092, interface=1)
|
_D('Couch Mouse M515', protocol=2.0, wpid='4007')
|
||||||
_D('G403 Gaming Mouse', codename='G403', usbid=0xc082)
|
_D('Wireless Mouse M175', protocol=2.0, wpid='4008')
|
||||||
_D('G502 Hero Gaming Mouse', codename='G502 Hero', usbid=0xc08d)
|
_D('Wireless Mouse M325', protocol=2.0, wpid='400A', settings=[_FS.hi_res_scroll()])
|
||||||
_D('G703 Lightspeed Gaming Mouse', codename='G703', usbid=0xc087)
|
_D('Wireless Mouse M525', protocol=2.0, wpid='4013')
|
||||||
_D('G703 Hero Gaming Mouse', codename='G703 Hero', usbid=0xc090)
|
_D('Wireless Mouse M345', protocol=2.0, wpid='4017')
|
||||||
|
_D('Wireless Mouse M187', protocol=2.0, wpid='4019')
|
||||||
|
_D('Touch Mouse M600', protocol=2.0, wpid='401A')
|
||||||
|
_D('Wireless Mouse M150', protocol=2.0, wpid='4022')
|
||||||
|
_D('Wireless Mouse M185', protocol=2.0, wpid='4038')
|
||||||
|
_D('Wireless Mouse MX Master', codename='MX Master', protocol=4.5, wpid='4041', btid=0xb012)
|
||||||
|
_D('Anywhere Mouse MX 2', codename='Anywhere MX 2', protocol=4.5, wpid='404A', settings=[_FS.hires_smooth_invert()])
|
||||||
|
_D('Wireless Mouse M510', protocol=2.0, wpid='4051', codename='M510v2', settings=[_FS.lowres_smooth_scroll()])
|
||||||
|
_D(
|
||||||
|
'Wireless Mouse M185 new',
|
||||||
|
codename='M185n',
|
||||||
|
protocol=4.5,
|
||||||
|
wpid='4054',
|
||||||
|
settings=[
|
||||||
|
_FS.lowres_smooth_scroll(),
|
||||||
|
_FS.pointer_speed(),
|
||||||
|
]
|
||||||
|
)
|
||||||
|
_D(
|
||||||
|
'Wireless Mouse M185/M235/M310',
|
||||||
|
codename='M185/M235/M310',
|
||||||
|
protocol=4.5,
|
||||||
|
wpid='4055',
|
||||||
|
settings=[
|
||||||
|
_FS.lowres_smooth_scroll(),
|
||||||
|
_FS.pointer_speed(),
|
||||||
|
]
|
||||||
|
)
|
||||||
|
_D(
|
||||||
|
'Wireless Mouse MX Master 2S',
|
||||||
|
codename='MX Master 2S',
|
||||||
|
protocol=4.5,
|
||||||
|
wpid='4069',
|
||||||
|
btid=0xb019,
|
||||||
|
settings=[
|
||||||
|
_FS.hires_smooth_invert(),
|
||||||
|
_FS.gesture2_gestures(),
|
||||||
|
],
|
||||||
|
)
|
||||||
|
_D(
|
||||||
|
'Multi Device Silent Mouse M585/M590',
|
||||||
|
codename='M585/M590',
|
||||||
|
protocol=4.5,
|
||||||
|
wpid='406B',
|
||||||
|
settings=[
|
||||||
|
_FS.lowres_smooth_scroll(),
|
||||||
|
_FS.pointer_speed(),
|
||||||
|
],
|
||||||
|
)
|
||||||
|
_D(
|
||||||
|
'Marathon Mouse M705 (M-R0073)',
|
||||||
|
codename='M705 (M-R0073)',
|
||||||
|
protocol=4.5,
|
||||||
|
wpid='406D',
|
||||||
|
settings=[
|
||||||
|
_FS.hires_smooth_invert(),
|
||||||
|
_FS.pointer_speed(),
|
||||||
|
]
|
||||||
|
)
|
||||||
|
_D('MX Vertical Wireless Mouse', codename='MX Vertical', protocol=4.5, wpid='407B', btid=0xb020, usbid=0xc08a)
|
||||||
|
_D('Wireless Mouse Pebble M350', protocol=2.0, wpid='4080', codename='Pebble')
|
||||||
|
_D('MX Master 3 Wireless Mouse', codename='MX Master 3', protocol=4.5, wpid='4082', btid=0xb023)
|
||||||
|
_D('PRO X Wireless', kind='mouse', codename='PRO X', wpid='4093', usbid=0xc094)
|
||||||
|
|
||||||
_D('G900 Chaos Spectrum Gaming Mouse', codename='G900', usbid=0xc081)
|
_D('G900 Chaos Spectrum Gaming Mouse', codename='G900', usbid=0xc081)
|
||||||
|
_D('G403 Gaming Mouse', codename='G403', usbid=0xc082)
|
||||||
_D('G903 Lightspeed Gaming Mouse', codename='G903', usbid=0xc086)
|
_D('G903 Lightspeed Gaming Mouse', codename='G903', usbid=0xc086)
|
||||||
_D('G903 Hero Gaming Mouse', codename='G903 Hero', usbid=0xc091)
|
_D('G703 Lightspeed Gaming Mouse', codename='G703', usbid=0xc087)
|
||||||
_D('GPro Gaming Mouse', codename='GPro', usbid=0xc088)
|
_D('GPro Gaming Mouse', codename='GPro', usbid=0xc088)
|
||||||
_D(
|
_D('G502 Hero Gaming Mouse', codename='G502 Hero', usbid=0xc08d)
|
||||||
'PRO X Wireless',
|
_D('G703 Hero Gaming Mouse', codename='G703 Hero', usbid=0xc090)
|
||||||
kind='mouse',
|
_D('G903 Hero Gaming Mouse', codename='G903 Hero', usbid=0xc091)
|
||||||
codename='PRO X',
|
_D('G102 Lightsync Mouse', codename='G102', usbid=0xc092, interface=1)
|
||||||
protocol=4.2,
|
|
||||||
wpid='4093',
|
|
||||||
usbid=0xc094,
|
|
||||||
)
|
|
||||||
|
|
||||||
_D('M500S Mouse', codename='M500S', usbid=0xc093, interface=1)
|
_D('M500S Mouse', codename='M500S', usbid=0xc093, interface=1)
|
||||||
|
|
||||||
_D(
|
|
||||||
'LX5 Cordless Mouse',
|
|
||||||
codename='LX5',
|
|
||||||
protocol=1.0,
|
|
||||||
wpid='0036',
|
|
||||||
registers=(_R.battery_status, ),
|
|
||||||
)
|
|
||||||
_D(
|
|
||||||
'Wireless Mouse M30',
|
|
||||||
codename='M30',
|
|
||||||
protocol=1.0,
|
|
||||||
wpid='0085',
|
|
||||||
registers=(_R.battery_status, ),
|
|
||||||
)
|
|
||||||
_D(
|
|
||||||
'Wireless Mouse EX100',
|
|
||||||
codename='EX100m',
|
|
||||||
protocol=1.0,
|
|
||||||
wpid='003F',
|
|
||||||
registers=(_R.battery_status, ),
|
|
||||||
# settings=[ _RS.smooth_scroll(), ], # command accepted, but no change in whell action
|
|
||||||
)
|
|
||||||
|
|
||||||
# Trackballs
|
# Trackballs
|
||||||
|
|
||||||
_D('Wireless Trackball M570')
|
_D('Wireless Trackball M570')
|
||||||
|
|
||||||
# Touchpads
|
# Touchpads
|
||||||
|
|
||||||
_D('Wireless Rechargeable Touchpad T650', protocol=2.0, wpid='4101')
|
|
||||||
_D('Wireless Touchpad', codename='Wireless Touch', protocol=2.0, wpid='4011')
|
_D('Wireless Touchpad', codename='Wireless Touch', protocol=2.0, wpid='4011')
|
||||||
|
_D('Wireless Rechargeable Touchpad T650', protocol=2.0, wpid='4101')
|
||||||
#
|
|
||||||
# Classic Nano peripherals (that don't support the Unifying protocol).
|
|
||||||
# A wpid is necessary to properly identify them.
|
|
||||||
#
|
|
||||||
|
|
||||||
_D(
|
|
||||||
'VX Nano Cordless Laser Mouse',
|
|
||||||
codename='VX Nano',
|
|
||||||
protocol=1.0,
|
|
||||||
wpid=('100B', '100F'),
|
|
||||||
registers=(_R.battery_charge, ),
|
|
||||||
settings=[
|
|
||||||
_RS.smooth_scroll(),
|
|
||||||
_RS.side_scroll(),
|
|
||||||
],
|
|
||||||
)
|
|
||||||
_D(
|
|
||||||
'V450 Nano Cordless Laser Mouse',
|
|
||||||
codename='V450 Nano',
|
|
||||||
protocol=1.0,
|
|
||||||
wpid='1011',
|
|
||||||
registers=(_R.battery_charge, ),
|
|
||||||
)
|
|
||||||
_D(
|
|
||||||
'V550 Nano Cordless Laser Mouse',
|
|
||||||
codename='V550 Nano',
|
|
||||||
protocol=1.0,
|
|
||||||
wpid='1013',
|
|
||||||
registers=(_R.battery_charge, ),
|
|
||||||
settings=[
|
|
||||||
_RS.smooth_scroll(),
|
|
||||||
_RS.side_scroll(),
|
|
||||||
],
|
|
||||||
)
|
|
||||||
|
|
||||||
# Mini receiver mice
|
|
||||||
|
|
||||||
_D(
|
|
||||||
'MX610 Laser Cordless Mouse',
|
|
||||||
codename='MX610',
|
|
||||||
protocol=1.0,
|
|
||||||
wpid='1001',
|
|
||||||
registers=(_R.battery_status, ),
|
|
||||||
)
|
|
||||||
_D(
|
|
||||||
'MX620 Laser Cordless Mouse',
|
|
||||||
codename='MX620',
|
|
||||||
protocol=1.0,
|
|
||||||
wpid=('100A', '1016'),
|
|
||||||
registers=(_R.battery_charge, ),
|
|
||||||
)
|
|
||||||
_D(
|
|
||||||
'MX610 Left-Handled Mouse',
|
|
||||||
codename='MX610L',
|
|
||||||
protocol=1.0,
|
|
||||||
wpid='1004',
|
|
||||||
registers=(_R.battery_status, ),
|
|
||||||
)
|
|
||||||
_D(
|
|
||||||
'V400 Laser Cordless Mouse',
|
|
||||||
codename='V400',
|
|
||||||
protocol=1.0,
|
|
||||||
wpid='1003',
|
|
||||||
registers=(_R.battery_status, ),
|
|
||||||
)
|
|
||||||
_D(
|
|
||||||
'V450 Laser Cordless Mouse',
|
|
||||||
codename='V450',
|
|
||||||
protocol=1.0,
|
|
||||||
wpid='1005',
|
|
||||||
registers=(_R.battery_status, ),
|
|
||||||
)
|
|
||||||
_D(
|
|
||||||
'VX Revolution',
|
|
||||||
codename='VX Revolution',
|
|
||||||
kind=_DK.mouse,
|
|
||||||
protocol=1.0,
|
|
||||||
wpid=('1006', '100D', '0612'), # WPID 0612 from Issue #921
|
|
||||||
registers=(_R.battery_charge, ),
|
|
||||||
)
|
|
||||||
_D(
|
|
||||||
'MX Air',
|
|
||||||
codename='MX Air',
|
|
||||||
protocol=1.0,
|
|
||||||
kind=_DK.mouse,
|
|
||||||
wpid=('1007', '100E'),
|
|
||||||
registers=(_R.battery_charge, ),
|
|
||||||
)
|
|
||||||
_D(
|
|
||||||
'MX Revolution',
|
|
||||||
codename='MX Revolution',
|
|
||||||
protocol=1.0,
|
|
||||||
kind=_DK.mouse,
|
|
||||||
wpid=('1008', '100C'),
|
|
||||||
registers=(_R.battery_charge, ),
|
|
||||||
)
|
|
||||||
_D(
|
|
||||||
'MX 1100 Cordless Laser Mouse',
|
|
||||||
codename='MX 1100',
|
|
||||||
protocol=1.0,
|
|
||||||
kind=_DK.mouse,
|
|
||||||
wpid='1014',
|
|
||||||
registers=(_R.battery_charge, ),
|
|
||||||
settings=[
|
|
||||||
_RS.smooth_scroll(),
|
|
||||||
_RS.side_scroll(),
|
|
||||||
],
|
|
||||||
)
|
|
||||||
|
|
||||||
# Some exotics...
|
|
||||||
|
|
||||||
_D('Fujitsu Sonic Mouse', codename='Sonic', protocol=1.0, wpid='1029')
|
|
||||||
|
|
||||||
# Headset
|
# Headset
|
||||||
|
|
||||||
_D(
|
_D('Logitech PRO X Wireless Gaming Headset', codename='PRO Headset', protocol=2.0, interface=3, kind=_DK.headset, usbid=0x0aba)
|
||||||
'Logitech PRO X Wireless Gaming Headset',
|
|
||||||
codename='PRO Wireless Headset',
|
|
||||||
protocol=2.0,
|
|
||||||
interface=3,
|
|
||||||
kind=_DK.headset,
|
|
||||||
usbid=0x0aba
|
|
||||||
)
|
|
||||||
|
|
Loading…
Reference in New Issue