From 1434b2a50d7dbcd92badeab3ae63370d047000ca Mon Sep 17 00:00:00 2001 From: Peter Wu Date: Sat, 24 Aug 2013 14:36:07 +0200 Subject: [PATCH 1/3] Update features and keys list Updated to information available from SetPoint 6.61.15. --- lib/logitech_receiver/hidpp20.py | 2 ++ lib/logitech_receiver/special_keys.py | 11 +++++++++++ 2 files changed, 13 insertions(+) diff --git a/lib/logitech_receiver/hidpp20.py b/lib/logitech_receiver/hidpp20.py index 5ab67008..c4caaf67 100644 --- a/lib/logitech_receiver/hidpp20.py +++ b/lib/logitech_receiver/hidpp20.py @@ -38,6 +38,7 @@ from . import special_keys # # +# /,/p}' | sort -t= -k2 """Possible features available on a Logitech device. A particular device might not support all these features, and may support other @@ -71,6 +72,7 @@ FEATURE = _NamedInts( TOUCHPAD_WIN8_FW_ITEMS=0x6012, TOUCHPAD_RAW_XY=0x6100, TOUCHMOUSE_RAW_POINTS=0x6110, + TOUCHMOUSE_6120=0x6120, ) FEATURE._fallback = lambda x: 'unknown:%04X' % x diff --git a/lib/logitech_receiver/special_keys.py b/lib/logitech_receiver/special_keys.py index 9baa8bd0..5669e7ec 100644 --- a/lib/logitech_receiver/special_keys.py +++ b/lib/logitech_receiver/special_keys.py @@ -322,6 +322,17 @@ TASK = _NamedInts( MetroForwRightHorz=0x0083, Win8_Back=0x0084, # also known as MetroCharms Win8_Forward=0x0085, # also known as AppSwitchBar + Win8Charm_Appswitch_GifAnimation=0x0086, + Win8BackHorzLeft=0x008B, # also known as Back + Win8ForwardHorzRight=0x008C, # also known as BrowserForward + MetroSearch2=0x0087, + MetroShare2=0x0088, + MetroSettings2=0x008A, + MetroDevices2=0x0089, + Win8MetroWin7Forward=0x008D, # also known as MetroStartScreen + Win8ShowDesktopWin7Back=0x008E, # also known as ShowDesktop + MetroApplicationSwitch=0x0090, # also known as MetroStartScreen + ShowUI=0x0092, ) TASK._fallback = lambda x: 'unknown:%04X' % x From e2d65a690e3c8776ecf67879b0e7b10666c97564 Mon Sep 17 00:00:00 2001 From: Peter Wu Date: Wed, 27 May 2015 22:59:33 +0200 Subject: [PATCH 2/3] hidpp20: update features list Based on SetPoint6.65.62_32.exe and Options_2.10.73.exe (features.xml, defaults.xml, LogiOptionsMgr.exe). The names are based on the named next to the feature ID. For duplicates, _2 is appended to the name. This commands helps parsing numbers from debug prints: strings LogiOptionsMgr.exe | sed -nr 's/.*(Feature[0-9a-fA-F]{4})/\1 /p' | sort | awk 'tolower(a)!=tolower($1){print"";a=$1}1;' | less -S --- lib/logitech_receiver/hidpp20.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/lib/logitech_receiver/hidpp20.py b/lib/logitech_receiver/hidpp20.py index c4caaf67..4b8d9712 100644 --- a/lib/logitech_receiver/hidpp20.py +++ b/lib/logitech_receiver/hidpp20.py @@ -51,28 +51,58 @@ FEATURE = _NamedInts( DEVICE_FW_VERSION=0x0003, DEVICE_NAME=0x0005, DEVICE_GROUPS=0x0006, + RESET=0x0020, # "Config Change" DFUCONTROL=0x00C0, + DFUCONTROL_2=0x00C1, + DFU=0x00D0, BATTERY_STATUS=0x1000, + LED_CONTROL=0x1300, + CHANGE_HOST=0x1814, BACKLIGHT=0x1981, REPROG_CONTROLS=0x1B00, REPROG_CONTROLS_V2=0x1B01, + REPROG_CONTROLS_V2_2=0x1B02, # LogiOptions 2.10.73 features.xml REPROG_CONTROLS_V3=0x1B03, + REPROG_CONTROLS_V4=0x1B04, WIRELESS_DEVICE_STATUS=0x1D4B, LEFT_RIGHT_SWAP=0x2001, + SWAP_BUTTON=0x2005, VERTICAL_SCROLLING=0x2100, + SMART_SHIFT=0x2110, HI_RES_SCROLLING=0x2120, + HIRES_WHEEL=0x2121, + LOWRES_WHEEL=0x2130, MOUSE_POINTER=0x2200, + ADJUSTABLE_DPI=0x2201, + POINTER_SPEED=0x2205, + ANGLE_SNAPPING=0x2230, + SURFACE_TUNING=0x2240, + HYBRID_TRACKING=0x2400, FN_INVERSION=0x40A0, NEW_FN_INVERSION=0x40A2, ENCRYPTION=0x4100, + LOCK_KEY_STATE=0x4220, SOLAR_DASHBOARD=0x4301, KEYBOARD_LAYOUT=0x4520, + KEYBOARD_DISABLE=0x4521, + DUALPLATFORM=0x4530, + KEYBOARD_LAYOUT_2=0x4540, TOUCHPAD_FW_ITEMS=0x6010, TOUCHPAD_SW_ITEMS=0x6011, TOUCHPAD_WIN8_FW_ITEMS=0x6012, TOUCHPAD_RAW_XY=0x6100, TOUCHMOUSE_RAW_POINTS=0x6110, TOUCHMOUSE_6120=0x6120, + GESTURE=0x6500, + GESTURE_2=0x6501, + GKEY=0x8010, + MKEYS=0x8020, + MR=0x8030, + REPORT_RATE=0x8060, + COLOR_LED_EFECTS=0x8070, + PER_KEY_LIGHTING=0x8080, + ONBOARD_PROFILES=0x8100, + MOUSE_BUTTON_SPY=0x8110, ) FEATURE._fallback = lambda x: 'unknown:%04X' % x From 869f1e4791372e4d948350dfd6693bdf0a89b797 Mon Sep 17 00:00:00 2001 From: Peter Wu Date: Wed, 27 May 2015 23:40:58 +0200 Subject: [PATCH 3/3] doc/devices.md: add MX Master Information from (IRC) xaver. See also #208. Product page at http://www.logitech.com/product/mx-master --- docs/devices.md | 1 + docs/devices/mx-master.txt | 54 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 docs/devices/mx-master.txt diff --git a/docs/devices.md b/docs/devices.md index 7c6b4cfc..919aa126 100644 --- a/docs/devices.md +++ b/docs/devices.md @@ -86,6 +86,7 @@ Mice (Unifying): | T620 Touch | 2.0 | yes | | | | Performance MX | 1.0 | yes | R/W | | | Anywhere MX | 1.0 | yes | R/W | smooth scrolling | +| MX Master | 4.5 | yes | TODO | | | Cube | 2.0 | yes | | | diff --git a/docs/devices/mx-master.txt b/docs/devices/mx-master.txt new file mode 100644 index 00000000..557bae60 --- /dev/null +++ b/docs/devices/mx-master.txt @@ -0,0 +1,54 @@ +Unifying Receiver + Device path : /dev/hidraw3 + USB id : 046d:c52b + Serial : 0E039B8F + Firmware : 24.01.B0023 + Bootloader : 01.08 + Other : AA.AC + Has 1 paired device(s) out of a maximum of 6. + Notifications: wireless, software present (0x000900) + Device activity counters: 1=134 + + 1: Wireless Mouse MX Master + Codename : MX Master + Kind : mouse + Wireless PID : 4041 + Protocol : HID++ 4.5 + Polling rate : 8 ms (125Hz) + Serial number: A975E230 + Bootloader: BOT 18.00.B0012 + Firmware: MPM 11.00.B0012 + Firmware: MPM 11.00.B0012 + Other: + The power switch is located on the base. + Supports 29 HID++ 2.0 features: + 0: ROOT {0000} + 1: FEATURE SET {0001} + 2: DEVICE FW VERSION {0003} + 3: DEVICE NAME {0005} + 4: WIRELESS DEVICE STATUS {1D4B} + 5: RESET {0020} + 6: BATTERY STATUS {1000} + 7: CHANGE HOST {1814} + 8: REPROG CONTROLS V4 {1B04} + 9: ADJUSTABLE DPI {2201} + 10: VERTICAL SCROLLING {2100} + 11: SMART SHIFT {2110} + 12: HIRES WHEEL {2121} + 13: GESTURE 2 {6501} + 14: DFUCONTROL 2 {00C1} + 15: unknown:1813 {1813} internal, hidden + 16: unknown:1830 {1830} internal, hidden + 17: unknown:1890 {1890} internal, hidden + 18: unknown:18A1 {18A1} internal, hidden + 19: unknown:18C0 {18C0} internal, hidden + 20: unknown:1DF3 {1DF3} internal, hidden + 21: unknown:1E00 {1E00} hidden + 22: unknown:1EB0 {1EB0} internal, hidden + 23: unknown:1803 {1803} internal, hidden + 24: unknown:1861 {1861} internal, hidden + 25: unknown:9000 {9000} internal, hidden + 26: unknown:9200 {9200} internal, hidden + 27: unknown:9240 {9240} internal, hidden + 28: unknown:1805 {1805} internal, hidden + Battery: 50%, discharging. \ No newline at end of file