xref: /aosp_15_r20/frameworks/native/libs/input/rust/keyboard_classification_config.rs (revision 38e8c45f13ce32b0dcecb25141ffecaf386fa17f)
1 /*
2  * Copyright 2024 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 use crate::input::KeyboardType;
18 
19 // TODO(b/263559234): Categorize some of these to KeyboardType::None based on ability to produce
20 //  key events at all. (Requires setup allowing InputDevice to dynamically add/remove
21 //  KeyboardInputMapper based on blocklist and KeyEvents in case a KeyboardType::None device ends
22 //  up producing a key event)
23 pub static CLASSIFIED_DEVICES: &[(
24     /* vendorId */ u16,
25     /* productId */ u16,
26     KeyboardType,
27     /* is_finalized */ bool,
28 )] = &[
29     // HP X4000 Wireless Mouse
30     (0x03f0, 0xa407, KeyboardType::NonAlphabetic, true),
31     // Microsoft Wireless Mobile Mouse 6000
32     (0x045e, 0x0745, KeyboardType::NonAlphabetic, true),
33     // Microsoft Surface Precision Mouse
34     (0x045e, 0x0821, KeyboardType::NonAlphabetic, true),
35     // Microsoft Pro IntelliMouse
36     (0x045e, 0x082a, KeyboardType::NonAlphabetic, true),
37     // Microsoft Bluetooth Mouse
38     (0x045e, 0x082f, KeyboardType::NonAlphabetic, true),
39     // Xbox One Elite Series 2 gamepad
40     (0x045e, 0x0b05, KeyboardType::NonAlphabetic, true),
41     // Logitech T400
42     (0x046d, 0x4026, KeyboardType::NonAlphabetic, true),
43     // Logitech M720 Triathlon (Unifying)
44     (0x046d, 0x405e, KeyboardType::NonAlphabetic, true),
45     // Logitech MX Master 2S (Unifying)
46     (0x046d, 0x4069, KeyboardType::NonAlphabetic, true),
47     // Logitech M585 (Unifying)
48     (0x046d, 0x406b, KeyboardType::NonAlphabetic, true),
49     // Logitech MX Anywhere 2 (Unifying)
50     (0x046d, 0x4072, KeyboardType::NonAlphabetic, true),
51     // Logitech Pebble M350
52     (0x046d, 0x4080, KeyboardType::NonAlphabetic, true),
53     // Logitech T630 Ultrathin
54     (0x046d, 0xb00d, KeyboardType::NonAlphabetic, true),
55     // Logitech M558
56     (0x046d, 0xb011, KeyboardType::NonAlphabetic, true),
57     // Logitech MX Master (Bluetooth)
58     (0x046d, 0xb012, KeyboardType::NonAlphabetic, true),
59     // Logitech MX Anywhere 2 (Bluetooth)
60     (0x046d, 0xb013, KeyboardType::NonAlphabetic, true),
61     // Logitech M720 Triathlon (Bluetooth)
62     (0x046d, 0xb015, KeyboardType::NonAlphabetic, true),
63     // Logitech M535
64     (0x046d, 0xb016, KeyboardType::NonAlphabetic, true),
65     // Logitech MX Master / Anywhere 2 (Bluetooth)
66     (0x046d, 0xb017, KeyboardType::NonAlphabetic, true),
67     // Logitech MX Master 2S (Bluetooth)
68     (0x046d, 0xb019, KeyboardType::NonAlphabetic, true),
69     // Logitech MX Anywhere 2S (Bluetooth)
70     (0x046d, 0xb01a, KeyboardType::NonAlphabetic, true),
71     // Logitech M585/M590 (Bluetooth)
72     (0x046d, 0xb01b, KeyboardType::NonAlphabetic, true),
73     // Logitech G603 Lightspeed Gaming Mouse (Bluetooth)
74     (0x046d, 0xb01c, KeyboardType::NonAlphabetic, true),
75     // Logitech MX Master (Bluetooth)
76     (0x046d, 0xb01e, KeyboardType::NonAlphabetic, true),
77     // Logitech MX Anywhere 2 (Bluetooth)
78     (0x046d, 0xb01f, KeyboardType::NonAlphabetic, true),
79     // Logitech MX Master 3 (Bluetooth)
80     (0x046d, 0xb023, KeyboardType::NonAlphabetic, true),
81     // Logitech G604 Lightspeed Gaming Mouse (Bluetooth)
82     (0x046d, 0xb024, KeyboardType::NonAlphabetic, true),
83     // Logitech Spotlight Presentation Remote (Bluetooth)
84     (0x046d, 0xb503, KeyboardType::NonAlphabetic, true),
85     // Logitech R500 (Bluetooth)
86     (0x046d, 0xb505, KeyboardType::NonAlphabetic, true),
87     // Logitech M500s
88     (0x046d, 0xc093, KeyboardType::NonAlphabetic, true),
89     // Logitech Spotlight Presentation Remote (USB dongle)
90     (0x046d, 0xc53e, KeyboardType::NonAlphabetic, true),
91     // Elecom Enelo IR LED Mouse 350
92     (0x056e, 0x0134, KeyboardType::NonAlphabetic, true),
93     // Elecom EPRIM Blue LED 5 button mouse 228
94     (0x056e, 0x0141, KeyboardType::NonAlphabetic, true),
95     // Elecom Blue LED Mouse 203
96     (0x056e, 0x0159, KeyboardType::NonAlphabetic, true),
97     // Zebra LS2208 barcode scanner
98     (0x05e0, 0x1200, KeyboardType::NonAlphabetic, true),
99     // RDing FootSwitch1F1
100     (0x0c45, 0x7403, KeyboardType::NonAlphabetic, true),
101     // SteelSeries Sensei RAW Frost Blue
102     (0x1038, 0x1369, KeyboardType::NonAlphabetic, true),
103     // SteelSeries Rival 3 Wired
104     (0x1038, 0x1824, KeyboardType::NonAlphabetic, true),
105     // SteelSeries Rival 3 Wireless (USB dongle)
106     (0x1038, 0x1830, KeyboardType::NonAlphabetic, true),
107     // Yubico.com Yubikey
108     (0x1050, 0x0010, KeyboardType::NonAlphabetic, true),
109     // Yubico.com Yubikey 4 OTP+U2F+CCID
110     (0x1050, 0x0407, KeyboardType::NonAlphabetic, true),
111     // Lenovo USB-C Wired Compact Mouse
112     (0x17ef, 0x6123, KeyboardType::NonAlphabetic, true),
113     // Corsair Katar Pro Wireless (USB dongle)
114     (0x1b1c, 0x1b94, KeyboardType::NonAlphabetic, true),
115     // Corsair Katar Pro Wireless (Bluetooth)
116     (0x1bae, 0x1b1c, KeyboardType::NonAlphabetic, true),
117     // Kensington Pro Fit Full-size
118     (0x1bcf, 0x08a0, KeyboardType::NonAlphabetic, true),
119     // Huion HS64
120     (0x256c, 0x006d, KeyboardType::NonAlphabetic, true),
121     // XP-Pen Star G640
122     (0x28bd, 0x0914, KeyboardType::NonAlphabetic, true),
123     // XP-Pen Artist 12 Pro
124     (0x28bd, 0x091f, KeyboardType::NonAlphabetic, true),
125     // XP-Pen Deco mini7W
126     (0x28bd, 0x0928, KeyboardType::NonAlphabetic, true),
127 ];
128