xref: /aosp_15_r20/external/crosvm/gpu_display/src/keycode_converter/data.rs (revision bb4ee6a4ae7042d18b07a98463b9c8b875e44b39)
1 // Copyright 2022 The ChromiumOS Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #[derive(Debug, Clone, Copy)]
6 pub struct MapEntry {
7     pub linux_keycode: u16,
8     pub xkb: u32,
9     pub win: u32,
10     pub mac: u32,
11 }
12 
13 // Based on Chromium's chromium/chromium/ui/events/keycodes/dom/keycode_converter_data.inc.
14 #[cfg_attr(windows, allow(dead_code))]
15 pub const KEYCODE_MAP: [MapEntry; 104] = [
16     MapEntry {
17         linux_keycode: 30,
18         xkb: 0x0026,
19         win: 0x001e,
20         mac: 0x0000,
21     },
22     MapEntry {
23         linux_keycode: 48,
24         xkb: 0x0038,
25         win: 0x0030,
26         mac: 0x000b,
27     },
28     MapEntry {
29         linux_keycode: 46,
30         xkb: 0x0036,
31         win: 0x002e,
32         mac: 0x0008,
33     },
34     MapEntry {
35         linux_keycode: 32,
36         xkb: 0x0028,
37         win: 0x0020,
38         mac: 0x0002,
39     },
40     MapEntry {
41         linux_keycode: 18,
42         xkb: 0x001a,
43         win: 0x0012,
44         mac: 0x000e,
45     },
46     MapEntry {
47         linux_keycode: 33,
48         xkb: 0x0029,
49         win: 0x0021,
50         mac: 0x0003,
51     },
52     MapEntry {
53         linux_keycode: 34,
54         xkb: 0x002a,
55         win: 0x0022,
56         mac: 0x0005,
57     },
58     MapEntry {
59         linux_keycode: 35,
60         xkb: 0x002b,
61         win: 0x0023,
62         mac: 0x0004,
63     },
64     MapEntry {
65         linux_keycode: 23,
66         xkb: 0x001f,
67         win: 0x0017,
68         mac: 0x0022,
69     },
70     MapEntry {
71         linux_keycode: 36,
72         xkb: 0x002c,
73         win: 0x0024,
74         mac: 0x0026,
75     },
76     MapEntry {
77         linux_keycode: 37,
78         xkb: 0x002d,
79         win: 0x0025,
80         mac: 0x0028,
81     },
82     MapEntry {
83         linux_keycode: 38,
84         xkb: 0x002e,
85         win: 0x0026,
86         mac: 0x0025,
87     },
88     MapEntry {
89         linux_keycode: 50,
90         xkb: 0x003a,
91         win: 0x0032,
92         mac: 0x002e,
93     },
94     MapEntry {
95         linux_keycode: 49,
96         xkb: 0x0039,
97         win: 0x0031,
98         mac: 0x002d,
99     },
100     MapEntry {
101         linux_keycode: 24,
102         xkb: 0x0020,
103         win: 0x0018,
104         mac: 0x001f,
105     },
106     MapEntry {
107         linux_keycode: 25,
108         xkb: 0x0021,
109         win: 0x0019,
110         mac: 0x0023,
111     },
112     MapEntry {
113         linux_keycode: 16,
114         xkb: 0x0018,
115         win: 0x0010,
116         mac: 0x000c,
117     },
118     MapEntry {
119         linux_keycode: 19,
120         xkb: 0x001b,
121         win: 0x0013,
122         mac: 0x000f,
123     },
124     MapEntry {
125         linux_keycode: 31,
126         xkb: 0x0027,
127         win: 0x001f,
128         mac: 0x0001,
129     },
130     MapEntry {
131         linux_keycode: 20,
132         xkb: 0x001c,
133         win: 0x0014,
134         mac: 0x0011,
135     },
136     MapEntry {
137         linux_keycode: 22,
138         xkb: 0x001e,
139         win: 0x0016,
140         mac: 0x0020,
141     },
142     MapEntry {
143         linux_keycode: 47,
144         xkb: 0x0037,
145         win: 0x002f,
146         mac: 0x0009,
147     },
148     MapEntry {
149         linux_keycode: 17,
150         xkb: 0x0019,
151         win: 0x0011,
152         mac: 0x000d,
153     },
154     MapEntry {
155         linux_keycode: 45,
156         xkb: 0x0035,
157         win: 0x002d,
158         mac: 0x0007,
159     },
160     MapEntry {
161         linux_keycode: 21,
162         xkb: 0x001d,
163         win: 0x0015,
164         mac: 0x0010,
165     },
166     MapEntry {
167         linux_keycode: 44,
168         xkb: 0x0034,
169         win: 0x002c,
170         mac: 0x0006,
171     },
172     MapEntry {
173         linux_keycode: 2,
174         xkb: 0x000a,
175         win: 0x0002,
176         mac: 0x0012,
177     },
178     MapEntry {
179         linux_keycode: 3,
180         xkb: 0x000b,
181         win: 0x0003,
182         mac: 0x0013,
183     },
184     MapEntry {
185         linux_keycode: 4,
186         xkb: 0x000c,
187         win: 0x0004,
188         mac: 0x0014,
189     },
190     MapEntry {
191         linux_keycode: 5,
192         xkb: 0x000d,
193         win: 0x0005,
194         mac: 0x0015,
195     },
196     MapEntry {
197         linux_keycode: 6,
198         xkb: 0x000e,
199         win: 0x0006,
200         mac: 0x0017,
201     },
202     MapEntry {
203         linux_keycode: 7,
204         xkb: 0x000f,
205         win: 0x0007,
206         mac: 0x0016,
207     },
208     MapEntry {
209         linux_keycode: 8,
210         xkb: 0x0010,
211         win: 0x0008,
212         mac: 0x001a,
213     },
214     MapEntry {
215         linux_keycode: 9,
216         xkb: 0x0011,
217         win: 0x0009,
218         mac: 0x001c,
219     },
220     MapEntry {
221         linux_keycode: 10,
222         xkb: 0x0012,
223         win: 0x000a,
224         mac: 0x0019,
225     },
226     MapEntry {
227         linux_keycode: 11,
228         xkb: 0x0013,
229         win: 0x000b,
230         mac: 0x001d,
231     },
232     MapEntry {
233         linux_keycode: 28,
234         xkb: 0x0024,
235         win: 0x001c,
236         mac: 0x0024,
237     },
238     MapEntry {
239         linux_keycode: 1,
240         xkb: 0x0009,
241         win: 0x0001,
242         mac: 0x0035,
243     },
244     MapEntry {
245         linux_keycode: 14,
246         xkb: 0x0016,
247         win: 0x000e,
248         mac: 0x0033,
249     },
250     MapEntry {
251         linux_keycode: 15,
252         xkb: 0x0017,
253         win: 0x000f,
254         mac: 0x0030,
255     },
256     MapEntry {
257         linux_keycode: 57,
258         xkb: 0x0041,
259         win: 0x0039,
260         mac: 0x0031,
261     },
262     MapEntry {
263         linux_keycode: 12,
264         xkb: 0x0014,
265         win: 0x000c,
266         mac: 0x001b,
267     },
268     MapEntry {
269         linux_keycode: 13,
270         xkb: 0x0015,
271         win: 0x000d,
272         mac: 0x0018,
273     },
274     MapEntry {
275         linux_keycode: 26,
276         xkb: 0x0022,
277         win: 0x001a,
278         mac: 0x0021,
279     },
280     MapEntry {
281         linux_keycode: 27,
282         xkb: 0x0023,
283         win: 0x001b,
284         mac: 0x001e,
285     },
286     MapEntry {
287         linux_keycode: 43,
288         xkb: 0x0033,
289         win: 0x002b,
290         mac: 0x002a,
291     },
292     MapEntry {
293         linux_keycode: 39,
294         xkb: 0x002f,
295         win: 0x0027,
296         mac: 0x0029,
297     },
298     MapEntry {
299         linux_keycode: 40,
300         xkb: 0x0030,
301         win: 0x0028,
302         mac: 0x0027,
303     },
304     MapEntry {
305         linux_keycode: 41,
306         xkb: 0x0031,
307         win: 0x0029,
308         mac: 0x0032,
309     },
310     MapEntry {
311         linux_keycode: 51,
312         xkb: 0x003b,
313         win: 0x0033,
314         mac: 0x002b,
315     },
316     MapEntry {
317         linux_keycode: 52,
318         xkb: 0x003c,
319         win: 0x0034,
320         mac: 0x002f,
321     },
322     MapEntry {
323         linux_keycode: 53,
324         xkb: 0x003d,
325         win: 0x0035,
326         mac: 0x002c,
327     },
328     MapEntry {
329         linux_keycode: 58,
330         xkb: 0x0042,
331         win: 0x003a,
332         mac: 0x0039,
333     },
334     MapEntry {
335         linux_keycode: 119,
336         xkb: 0x007f,
337         win: 0x0045,
338         mac: 0xffff,
339     },
340     MapEntry {
341         linux_keycode: 110,
342         xkb: 0x0076,
343         win: 0xe052,
344         mac: 0x0072,
345     },
346     MapEntry {
347         linux_keycode: 102,
348         xkb: 0x006e,
349         win: 0xe047,
350         mac: 0x0073,
351     },
352     MapEntry {
353         linux_keycode: 104,
354         xkb: 0x0070,
355         win: 0xe049,
356         mac: 0x0074,
357     },
358     MapEntry {
359         linux_keycode: 111,
360         xkb: 0x0077,
361         win: 0xe053,
362         mac: 0x0075,
363     },
364     MapEntry {
365         linux_keycode: 107,
366         xkb: 0x0073,
367         win: 0xe04f,
368         mac: 0x0077,
369     },
370     MapEntry {
371         linux_keycode: 109,
372         xkb: 0x0075,
373         win: 0xe051,
374         mac: 0x0079,
375     },
376     MapEntry {
377         linux_keycode: 106,
378         xkb: 0x0072,
379         win: 0xe04d,
380         mac: 0x007c,
381     },
382     MapEntry {
383         linux_keycode: 105,
384         xkb: 0x0071,
385         win: 0xe04b,
386         mac: 0x007b,
387     },
388     MapEntry {
389         linux_keycode: 108,
390         xkb: 0x0074,
391         win: 0xe050,
392         mac: 0x007d,
393     },
394     MapEntry {
395         linux_keycode: 103,
396         xkb: 0x006f,
397         win: 0xe048,
398         mac: 0x007e,
399     },
400     MapEntry {
401         linux_keycode: 69,
402         xkb: 0x004d,
403         win: 0xe045,
404         mac: 0x0047,
405     },
406     MapEntry {
407         linux_keycode: 98,
408         xkb: 0x006a,
409         win: 0xe035,
410         mac: 0x004b,
411     },
412     MapEntry {
413         linux_keycode: 78,
414         xkb: 0x0056,
415         win: 0x004e,
416         mac: 0x0045,
417     },
418     MapEntry {
419         linux_keycode: 28,
420         xkb: 0x0068,
421         win: 0xe01c,
422         mac: 0x004c,
423     },
424     MapEntry {
425         linux_keycode: 79,
426         xkb: 0x0057,
427         win: 0x004f,
428         mac: 0x0053,
429     },
430     MapEntry {
431         linux_keycode: 80,
432         xkb: 0x0058,
433         win: 0x0050,
434         mac: 0x0054,
435     },
436     MapEntry {
437         linux_keycode: 81,
438         xkb: 0x0059,
439         win: 0x0051,
440         mac: 0x0055,
441     },
442     MapEntry {
443         linux_keycode: 75,
444         xkb: 0x0053,
445         win: 0x004b,
446         mac: 0x0056,
447     },
448     MapEntry {
449         linux_keycode: 76,
450         xkb: 0x0054,
451         win: 0x004c,
452         mac: 0x0057,
453     },
454     MapEntry {
455         linux_keycode: 77,
456         xkb: 0x0055,
457         win: 0x004d,
458         mac: 0x0058,
459     },
460     MapEntry {
461         linux_keycode: 71,
462         xkb: 0x004f,
463         win: 0x0047,
464         mac: 0x0059,
465     },
466     MapEntry {
467         linux_keycode: 72,
468         xkb: 0x0050,
469         win: 0x0048,
470         mac: 0x005b,
471     },
472     MapEntry {
473         linux_keycode: 73,
474         xkb: 0x0051,
475         win: 0x0049,
476         mac: 0x005c,
477     },
478     MapEntry {
479         linux_keycode: 82,
480         xkb: 0x005a,
481         win: 0x0052,
482         mac: 0x0052,
483     },
484     MapEntry {
485         linux_keycode: 116,
486         xkb: 0x007c,
487         win: 0xe05e,
488         mac: 0xffff,
489     },
490     MapEntry {
491         linux_keycode: 121,
492         xkb: 0x0081,
493         win: 0x007e,
494         mac: 0x005f,
495     },
496     MapEntry {
497         linux_keycode: 29,
498         xkb: 0x0025,
499         win: 0x001d,
500         mac: 0x003b,
501     },
502     MapEntry {
503         linux_keycode: 42,
504         xkb: 0x0032,
505         win: 0x002a,
506         mac: 0x0038,
507     },
508     MapEntry {
509         linux_keycode: 56,
510         xkb: 0x0040,
511         win: 0x0038,
512         mac: 0x003a,
513     },
514     MapEntry {
515         linux_keycode: 125,
516         xkb: 0x0085,
517         win: 0xe05b,
518         mac: 0x0037,
519     },
520     MapEntry {
521         linux_keycode: 97,
522         xkb: 0x0069,
523         win: 0xe01d,
524         mac: 0x003e,
525     },
526     MapEntry {
527         linux_keycode: 54,
528         xkb: 0x003e,
529         win: 0x0036,
530         mac: 0x003c,
531     },
532     MapEntry {
533         linux_keycode: 100,
534         xkb: 0x006c,
535         win: 0xe038,
536         mac: 0x003d,
537     },
538     MapEntry {
539         linux_keycode: 126,
540         xkb: 0x0086,
541         win: 0xe05c,
542         mac: 0x0036,
543     },
544     MapEntry {
545         linux_keycode: 55,
546         xkb: 0x003f,
547         win: 0x0037,
548         mac: 0x0043,
549     },
550     MapEntry {
551         linux_keycode: 83,
552         xkb: 0x005b,
553         win: 0x0053,
554         mac: 0x0041,
555     },
556     MapEntry {
557         linux_keycode: 74,
558         xkb: 0x0052,
559         win: 0x004a,
560         mac: 0x004e,
561     },
562     MapEntry {
563         linux_keycode: 59,
564         xkb: 0x0043,
565         win: 0x003b,
566         mac: 0x007a,
567     },
568     MapEntry {
569         linux_keycode: 60,
570         xkb: 0x0044,
571         win: 0x003c,
572         mac: 0x0078,
573     },
574     MapEntry {
575         linux_keycode: 61,
576         xkb: 0x0045,
577         win: 0x003d,
578         mac: 0x0063,
579     },
580     MapEntry {
581         linux_keycode: 62,
582         xkb: 0x0046,
583         win: 0x003e,
584         mac: 0x0076,
585     },
586     MapEntry {
587         linux_keycode: 63,
588         xkb: 0x0047,
589         win: 0x003f,
590         mac: 0x0060,
591     },
592     MapEntry {
593         linux_keycode: 64,
594         xkb: 0x0048,
595         win: 0x0040,
596         mac: 0x0061,
597     },
598     MapEntry {
599         linux_keycode: 65,
600         xkb: 0x0049,
601         win: 0x0041,
602         mac: 0x0062,
603     },
604     MapEntry {
605         linux_keycode: 66,
606         xkb: 0x004a,
607         win: 0x0042,
608         mac: 0x0064,
609     },
610     MapEntry {
611         linux_keycode: 67,
612         xkb: 0x004b,
613         win: 0x0043,
614         mac: 0x0065,
615     },
616     MapEntry {
617         linux_keycode: 68,
618         xkb: 0x004c,
619         win: 0x0044,
620         mac: 0x006d,
621     },
622     MapEntry {
623         linux_keycode: 87,
624         xkb: 0x005f,
625         win: 0x0057,
626         mac: 0x0067,
627     },
628     MapEntry {
629         linux_keycode: 88,
630         xkb: 0x0060,
631         win: 0x0058,
632         mac: 0x006f,
633     },
634     MapEntry {
635         linux_keycode: 117,
636         xkb: 0x007d,
637         win: 0x0059,
638         mac: 0x0051,
639     },
640 ];
641