gpu_display/keycode_converter/
data.rs

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)]
6pub 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))]
15pub 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];