1#[derive(Debug)]
5pub struct KeyDefinition {
6 pub key: &'static str,
7 pub key_code: i64,
8 pub code: &'static str,
9 pub text: Option<&'static str>,
10}
11
12pub const USKEYBOARD_LAYOUT: [KeyDefinition; 244] = [
20 KeyDefinition {
21 key: "0",
22 key_code: 48,
23 code: "Digit0",
24 text: None,
25 },
26 KeyDefinition {
27 key: "1",
28 key_code: 49,
29 code: "Digit1",
30 text: None,
31 },
32 KeyDefinition {
33 key: "2",
34 key_code: 50,
35 code: "Digit2",
36 text: None,
37 },
38 KeyDefinition {
39 key: "3",
40 key_code: 51,
41 code: "Digit3",
42 text: None,
43 },
44 KeyDefinition {
45 key: "4",
46 key_code: 52,
47 code: "Digit4",
48 text: None,
49 },
50 KeyDefinition {
51 key: "5",
52 key_code: 53,
53 code: "Digit5",
54 text: None,
55 },
56 KeyDefinition {
57 key: "6",
58 key_code: 54,
59 code: "Digit6",
60 text: None,
61 },
62 KeyDefinition {
63 key: "7",
64 key_code: 55,
65 code: "Digit7",
66 text: None,
67 },
68 KeyDefinition {
69 key: "8",
70 key_code: 56,
71 code: "Digit8",
72 text: None,
73 },
74 KeyDefinition {
75 key: "9",
76 key_code: 57,
77 code: "Digit9",
78 text: None,
79 },
80 KeyDefinition {
81 key: "Power",
82 key_code: 0,
83 code: "Power",
84 text: None,
85 },
86 KeyDefinition {
87 key: "Eject",
88 key_code: 0,
89 code: "Eject",
90 text: None,
91 },
92 KeyDefinition {
93 key: "Cancel",
94 key_code: 3,
95 code: "Abort",
96 text: None,
97 },
98 KeyDefinition {
99 key: "Help",
100 key_code: 6,
101 code: "Help",
102 text: None,
103 },
104 KeyDefinition {
105 key: "Backspace",
106 key_code: 8,
107 code: "Backspace",
108 text: None,
109 },
110 KeyDefinition {
111 key: "Tab",
112 key_code: 9,
113 code: "Tab",
114 text: None,
115 },
116 KeyDefinition {
117 key: "Clear",
118 key_code: 12,
119 code: "Numpad5",
120 text: None,
121 },
122 KeyDefinition {
123 key: "Enter",
124 key_code: 13,
125 code: "Enter",
126 text: Some("\r"),
127 },
128 KeyDefinition {
129 key: "Shift",
130 key_code: 16,
131 code: "ShiftLeft",
132 text: None,
133 },
134 KeyDefinition {
135 key: "Shift",
136 key_code: 16,
137 code: "ShiftRight",
138 text: None,
139 },
140 KeyDefinition {
141 key: "Control",
142 key_code: 17,
143 code: "ControlLeft",
144 text: None,
145 },
146 KeyDefinition {
147 key: "Control",
148 key_code: 17,
149 code: "ControlRight",
150 text: None,
151 },
152 KeyDefinition {
153 key: "Alt",
154 key_code: 18,
155 code: "AltLeft",
156 text: None,
157 },
158 KeyDefinition {
159 key: "Alt",
160 key_code: 18,
161 code: "AltRight",
162 text: None,
163 },
164 KeyDefinition {
165 key: "Pause",
166 key_code: 19,
167 code: "Pause",
168 text: None,
169 },
170 KeyDefinition {
171 key: "CapsLock",
172 key_code: 20,
173 code: "CapsLock",
174 text: None,
175 },
176 KeyDefinition {
177 key: "Escape",
178 key_code: 27,
179 code: "Escape",
180 text: None,
181 },
182 KeyDefinition {
183 key: "Convert",
184 key_code: 28,
185 code: "Convert",
186 text: None,
187 },
188 KeyDefinition {
189 key: "NonConvert",
190 key_code: 29,
191 code: "NonConvert",
192 text: None,
193 },
194 KeyDefinition {
195 key: " ",
196 key_code: 32,
197 code: "Space",
198 text: None,
199 },
200 KeyDefinition {
201 key: "PageUp",
202 key_code: 33,
203 code: "Numpad9",
204 text: None,
205 },
206 KeyDefinition {
207 key: "PageUp",
208 key_code: 33,
209 code: "PageUp",
210 text: None,
211 },
212 KeyDefinition {
213 key: "PageDown",
214 key_code: 34,
215 code: "Numpad3",
216 text: None,
217 },
218 KeyDefinition {
219 key: "PageDown",
220 key_code: 34,
221 code: "PageDown",
222 text: None,
223 },
224 KeyDefinition {
225 key: "End",
226 key_code: 35,
227 code: "End",
228 text: None,
229 },
230 KeyDefinition {
231 key: "End",
232 key_code: 35,
233 code: "Numpad1",
234 text: None,
235 },
236 KeyDefinition {
237 key: "Home",
238 key_code: 36,
239 code: "Home",
240 text: None,
241 },
242 KeyDefinition {
243 key: "Home",
244 key_code: 36,
245 code: "Numpad7",
246 text: None,
247 },
248 KeyDefinition {
249 key: "ArrowLeft",
250 key_code: 37,
251 code: "ArrowLeft",
252 text: None,
253 },
254 KeyDefinition {
255 key: "ArrowLeft",
256 key_code: 37,
257 code: "Numpad4",
258 text: None,
259 },
260 KeyDefinition {
261 key: "ArrowUp",
262 key_code: 38,
263 code: "Numpad8",
264 text: None,
265 },
266 KeyDefinition {
267 key: "ArrowUp",
268 key_code: 38,
269 code: "ArrowUp",
270 text: None,
271 },
272 KeyDefinition {
273 key: "ArrowRight",
274 key_code: 39,
275 code: "ArrowRight",
276 text: None,
277 },
278 KeyDefinition {
279 key: "ArrowRight",
280 key_code: 39,
281 code: "Numpad6",
282 text: None,
283 },
284 KeyDefinition {
285 key: "ArrowDown",
286 key_code: 40,
287 code: "Numpad2",
288 text: None,
289 },
290 KeyDefinition {
291 key: "ArrowDown",
292 key_code: 40,
293 code: "ArrowDown",
294 text: None,
295 },
296 KeyDefinition {
297 key: "Select",
298 key_code: 41,
299 code: "Select",
300 text: None,
301 },
302 KeyDefinition {
303 key: "Execute",
304 key_code: 43,
305 code: "Open",
306 text: None,
307 },
308 KeyDefinition {
309 key: "PrintScreen",
310 key_code: 44,
311 code: "PrintScreen",
312 text: None,
313 },
314 KeyDefinition {
315 key: "Insert",
316 key_code: 45,
317 code: "Insert",
318 text: None,
319 },
320 KeyDefinition {
321 key: "Insert",
322 key_code: 45,
323 code: "Numpad0",
324 text: None,
325 },
326 KeyDefinition {
327 key: "Delete",
328 key_code: 46,
329 code: "Delete",
330 text: None,
331 },
332 KeyDefinition {
333 key: " ",
334 key_code: 46,
335 code: "NumpadDecimal",
336 text: None,
337 },
338 KeyDefinition {
339 key: "0",
340 key_code: 48,
341 code: "Digit0",
342 text: None,
343 },
344 KeyDefinition {
345 key: "1",
346 key_code: 49,
347 code: "Digit1",
348 text: None,
349 },
350 KeyDefinition {
351 key: "2",
352 key_code: 50,
353 code: "Digit2",
354 text: None,
355 },
356 KeyDefinition {
357 key: "3",
358 key_code: 51,
359 code: "Digit3",
360 text: None,
361 },
362 KeyDefinition {
363 key: "4",
364 key_code: 52,
365 code: "Digit4",
366 text: None,
367 },
368 KeyDefinition {
369 key: "5",
370 key_code: 53,
371 code: "Digit5",
372 text: None,
373 },
374 KeyDefinition {
375 key: "6",
376 key_code: 54,
377 code: "Digit6",
378 text: None,
379 },
380 KeyDefinition {
381 key: "7",
382 key_code: 55,
383 code: "Digit7",
384 text: None,
385 },
386 KeyDefinition {
387 key: "8",
388 key_code: 56,
389 code: "Digit8",
390 text: None,
391 },
392 KeyDefinition {
393 key: "9",
394 key_code: 57,
395 code: "Digit9",
396 text: None,
397 },
398 KeyDefinition {
399 key: "a",
400 key_code: 65,
401 code: "KeyA",
402 text: None,
403 },
404 KeyDefinition {
405 key: "b",
406 key_code: 66,
407 code: "KeyB",
408 text: None,
409 },
410 KeyDefinition {
411 key: "c",
412 key_code: 67,
413 code: "KeyC",
414 text: None,
415 },
416 KeyDefinition {
417 key: "d",
418 key_code: 68,
419 code: "KeyD",
420 text: None,
421 },
422 KeyDefinition {
423 key: "e",
424 key_code: 69,
425 code: "KeyE",
426 text: None,
427 },
428 KeyDefinition {
429 key: "f",
430 key_code: 70,
431 code: "KeyF",
432 text: None,
433 },
434 KeyDefinition {
435 key: "g",
436 key_code: 71,
437 code: "KeyG",
438 text: None,
439 },
440 KeyDefinition {
441 key: "h",
442 key_code: 72,
443 code: "KeyH",
444 text: None,
445 },
446 KeyDefinition {
447 key: "i",
448 key_code: 73,
449 code: "KeyI",
450 text: None,
451 },
452 KeyDefinition {
453 key: "j",
454 key_code: 74,
455 code: "KeyJ",
456 text: None,
457 },
458 KeyDefinition {
459 key: "k",
460 key_code: 75,
461 code: "KeyK",
462 text: None,
463 },
464 KeyDefinition {
465 key: "l",
466 key_code: 76,
467 code: "KeyL",
468 text: None,
469 },
470 KeyDefinition {
471 key: "m",
472 key_code: 77,
473 code: "KeyM",
474 text: None,
475 },
476 KeyDefinition {
477 key: "n",
478 key_code: 78,
479 code: "KeyN",
480 text: None,
481 },
482 KeyDefinition {
483 key: "o",
484 key_code: 79,
485 code: "KeyO",
486 text: None,
487 },
488 KeyDefinition {
489 key: "p",
490 key_code: 80,
491 code: "KeyP",
492 text: None,
493 },
494 KeyDefinition {
495 key: "q",
496 key_code: 81,
497 code: "KeyQ",
498 text: None,
499 },
500 KeyDefinition {
501 key: "r",
502 key_code: 82,
503 code: "KeyR",
504 text: None,
505 },
506 KeyDefinition {
507 key: "s",
508 key_code: 83,
509 code: "KeyS",
510 text: None,
511 },
512 KeyDefinition {
513 key: "t",
514 key_code: 84,
515 code: "KeyT",
516 text: None,
517 },
518 KeyDefinition {
519 key: "u",
520 key_code: 85,
521 code: "KeyU",
522 text: None,
523 },
524 KeyDefinition {
525 key: "v",
526 key_code: 86,
527 code: "KeyV",
528 text: None,
529 },
530 KeyDefinition {
531 key: "w",
532 key_code: 87,
533 code: "KeyW",
534 text: None,
535 },
536 KeyDefinition {
537 key: "x",
538 key_code: 88,
539 code: "KeyX",
540 text: None,
541 },
542 KeyDefinition {
543 key: "y",
544 key_code: 89,
545 code: "KeyY",
546 text: None,
547 },
548 KeyDefinition {
549 key: "z",
550 key_code: 90,
551 code: "KeyZ",
552 text: None,
553 },
554 KeyDefinition {
555 key: "Meta",
556 key_code: 91,
557 code: "MetaLeft",
558 text: None,
559 },
560 KeyDefinition {
561 key: "Meta",
562 key_code: 92,
563 code: "MetaRight",
564 text: None,
565 },
566 KeyDefinition {
567 key: "ContextMenu",
568 key_code: 93,
569 code: "ContextMenu",
570 text: None,
571 },
572 KeyDefinition {
573 key: "*",
574 key_code: 106,
575 code: "NumpadMultiply",
576 text: None,
577 },
578 KeyDefinition {
579 key: "+",
580 key_code: 107,
581 code: "NumpadAdd",
582 text: None,
583 },
584 KeyDefinition {
585 key: "-",
586 key_code: 109,
587 code: "NumpadSubtract",
588 text: None,
589 },
590 KeyDefinition {
591 key: "/",
592 key_code: 111,
593 code: "NumpadDivide",
594 text: None,
595 },
596 KeyDefinition {
597 key: "F1",
598 key_code: 112,
599 code: "F1",
600 text: None,
601 },
602 KeyDefinition {
603 key: "F2",
604 key_code: 113,
605 code: "F2",
606 text: None,
607 },
608 KeyDefinition {
609 key: "F3",
610 key_code: 114,
611 code: "F3",
612 text: None,
613 },
614 KeyDefinition {
615 key: "F4",
616 key_code: 115,
617 code: "F4",
618 text: None,
619 },
620 KeyDefinition {
621 key: "F5",
622 key_code: 116,
623 code: "F5",
624 text: None,
625 },
626 KeyDefinition {
627 key: "F6",
628 key_code: 117,
629 code: "F6",
630 text: None,
631 },
632 KeyDefinition {
633 key: "F7",
634 key_code: 118,
635 code: "F7",
636 text: None,
637 },
638 KeyDefinition {
639 key: "F8",
640 key_code: 119,
641 code: "F8",
642 text: None,
643 },
644 KeyDefinition {
645 key: "F9",
646 key_code: 120,
647 code: "F9",
648 text: None,
649 },
650 KeyDefinition {
651 key: "F10",
652 key_code: 121,
653 code: "F10",
654 text: None,
655 },
656 KeyDefinition {
657 key: "F11",
658 key_code: 122,
659 code: "F11",
660 text: None,
661 },
662 KeyDefinition {
663 key: "F12",
664 key_code: 123,
665 code: "F12",
666 text: None,
667 },
668 KeyDefinition {
669 key: "F13",
670 key_code: 124,
671 code: "F13",
672 text: None,
673 },
674 KeyDefinition {
675 key: "F14",
676 key_code: 125,
677 code: "F14",
678 text: None,
679 },
680 KeyDefinition {
681 key: "F15",
682 key_code: 126,
683 code: "F15",
684 text: None,
685 },
686 KeyDefinition {
687 key: "F16",
688 key_code: 127,
689 code: "F16",
690 text: None,
691 },
692 KeyDefinition {
693 key: "F17",
694 key_code: 128,
695 code: "F17",
696 text: None,
697 },
698 KeyDefinition {
699 key: "F18",
700 key_code: 129,
701 code: "F18",
702 text: None,
703 },
704 KeyDefinition {
705 key: "F19",
706 key_code: 130,
707 code: "F19",
708 text: None,
709 },
710 KeyDefinition {
711 key: "F20",
712 key_code: 131,
713 code: "F20",
714 text: None,
715 },
716 KeyDefinition {
717 key: "F21",
718 key_code: 132,
719 code: "F21",
720 text: None,
721 },
722 KeyDefinition {
723 key: "F22",
724 key_code: 133,
725 code: "F22",
726 text: None,
727 },
728 KeyDefinition {
729 key: "F23",
730 key_code: 134,
731 code: "F23",
732 text: None,
733 },
734 KeyDefinition {
735 key: "F24",
736 key_code: 135,
737 code: "F24",
738 text: None,
739 },
740 KeyDefinition {
741 key: "NumLock",
742 key_code: 144,
743 code: "NumLock",
744 text: None,
745 },
746 KeyDefinition {
747 key: "ScrollLock",
748 key_code: 145,
749 code: "ScrollLock",
750 text: None,
751 },
752 KeyDefinition {
753 key: "AudioVolumeMute",
754 key_code: 173,
755 code: "AudioVolumeMute",
756 text: None,
757 },
758 KeyDefinition {
759 key: "AudioVolumeDown",
760 key_code: 174,
761 code: "AudioVolumeDown",
762 text: None,
763 },
764 KeyDefinition {
765 key: "AudioVolumeUp",
766 key_code: 175,
767 code: "AudioVolumeUp",
768 text: None,
769 },
770 KeyDefinition {
771 key: "MediaTrackNext",
772 key_code: 176,
773 code: "MediaTrackNext",
774 text: None,
775 },
776 KeyDefinition {
777 key: "MediaTrackPrevious",
778 key_code: 177,
779 code: "MediaTrackPrevious",
780 text: None,
781 },
782 KeyDefinition {
783 key: "MediaStop",
784 key_code: 178,
785 code: "MediaStop",
786 text: None,
787 },
788 KeyDefinition {
789 key: "MediaPlayPause",
790 key_code: 179,
791 code: "MediaPlayPause",
792 text: None,
793 },
794 KeyDefinition {
795 key: ";",
796 key_code: 186,
797 code: "Semicolon",
798 text: None,
799 },
800 KeyDefinition {
801 key: "=",
802 key_code: 187,
803 code: "Equal",
804 text: None,
805 },
806 KeyDefinition {
807 key: "=",
808 key_code: 187,
809 code: "NumpadEqual",
810 text: None,
811 },
812 KeyDefinition {
813 key: ",",
814 key_code: 188,
815 code: "Comma",
816 text: None,
817 },
818 KeyDefinition {
819 key: "-",
820 key_code: 189,
821 code: "Minus",
822 text: None,
823 },
824 KeyDefinition {
825 key: ".",
826 key_code: 190,
827 code: "Period",
828 text: None,
829 },
830 KeyDefinition {
831 key: "/",
832 key_code: 191,
833 code: "Slash",
834 text: None,
835 },
836 KeyDefinition {
837 key: "`",
838 key_code: 192,
839 code: "Backquote",
840 text: None,
841 },
842 KeyDefinition {
843 key: "[",
844 key_code: 219,
845 code: "BracketLeft",
846 text: None,
847 },
848 KeyDefinition {
849 key: "\\",
850 key_code: 220,
851 code: "Backslash",
852 text: None,
853 },
854 KeyDefinition {
855 key: "]",
856 key_code: 221,
857 code: "BracketRight",
858 text: None,
859 },
860 KeyDefinition {
861 key: "'",
862 key_code: 222,
863 code: "Quote",
864 text: None,
865 },
866 KeyDefinition {
867 key: "AltGraph",
868 key_code: 225,
869 code: "AltGraph",
870 text: None,
871 },
872 KeyDefinition {
873 key: "CrSel",
874 key_code: 247,
875 code: "Props",
876 text: None,
877 },
878 KeyDefinition {
879 key: "Cancel",
880 key_code: 3,
881 code: "Abort",
882 text: None,
883 },
884 KeyDefinition {
885 key: "Clear",
886 key_code: 12,
887 code: "Numpad5",
888 text: None,
889 },
890 KeyDefinition {
891 key: "Shift",
892 key_code: 16,
893 code: "ShiftLeft",
894 text: None,
895 },
896 KeyDefinition {
897 key: "Control",
898 key_code: 17,
899 code: "ControlLeft",
900 text: None,
901 },
902 KeyDefinition {
903 key: "Alt",
904 key_code: 18,
905 code: "AltLeft",
906 text: None,
907 },
908 KeyDefinition {
909 key: "Accept",
910 key_code: 30,
911 code: "undefined",
912 text: None,
913 },
914 KeyDefinition {
915 key: "ModeChange",
916 key_code: 31,
917 code: "undefined",
918 text: None,
919 },
920 KeyDefinition {
921 key: " ",
922 key_code: 32,
923 code: "Space",
924 text: None,
925 },
926 KeyDefinition {
927 key: "Print",
928 key_code: 42,
929 code: "undefined",
930 text: None,
931 },
932 KeyDefinition {
933 key: "Execute",
934 key_code: 43,
935 code: "Open",
936 text: None,
937 },
938 KeyDefinition {
939 key: " ",
940 key_code: 46,
941 code: "NumpadDecimal",
942 text: None,
943 },
944 KeyDefinition {
945 key: "a",
946 key_code: 65,
947 code: "KeyA",
948 text: None,
949 },
950 KeyDefinition {
951 key: "b",
952 key_code: 66,
953 code: "KeyB",
954 text: None,
955 },
956 KeyDefinition {
957 key: "c",
958 key_code: 67,
959 code: "KeyC",
960 text: None,
961 },
962 KeyDefinition {
963 key: "d",
964 key_code: 68,
965 code: "KeyD",
966 text: None,
967 },
968 KeyDefinition {
969 key: "e",
970 key_code: 69,
971 code: "KeyE",
972 text: None,
973 },
974 KeyDefinition {
975 key: "f",
976 key_code: 70,
977 code: "KeyF",
978 text: None,
979 },
980 KeyDefinition {
981 key: "g",
982 key_code: 71,
983 code: "KeyG",
984 text: None,
985 },
986 KeyDefinition {
987 key: "h",
988 key_code: 72,
989 code: "KeyH",
990 text: None,
991 },
992 KeyDefinition {
993 key: "i",
994 key_code: 73,
995 code: "KeyI",
996 text: None,
997 },
998 KeyDefinition {
999 key: "j",
1000 key_code: 74,
1001 code: "KeyJ",
1002 text: None,
1003 },
1004 KeyDefinition {
1005 key: "k",
1006 key_code: 75,
1007 code: "KeyK",
1008 text: None,
1009 },
1010 KeyDefinition {
1011 key: "l",
1012 key_code: 76,
1013 code: "KeyL",
1014 text: None,
1015 },
1016 KeyDefinition {
1017 key: "m",
1018 key_code: 77,
1019 code: "KeyM",
1020 text: None,
1021 },
1022 KeyDefinition {
1023 key: "n",
1024 key_code: 78,
1025 code: "KeyN",
1026 text: None,
1027 },
1028 KeyDefinition {
1029 key: "o",
1030 key_code: 79,
1031 code: "KeyO",
1032 text: None,
1033 },
1034 KeyDefinition {
1035 key: "p",
1036 key_code: 80,
1037 code: "KeyP",
1038 text: None,
1039 },
1040 KeyDefinition {
1041 key: "q",
1042 key_code: 81,
1043 code: "KeyQ",
1044 text: None,
1045 },
1046 KeyDefinition {
1047 key: "r",
1048 key_code: 82,
1049 code: "KeyR",
1050 text: None,
1051 },
1052 KeyDefinition {
1053 key: "s",
1054 key_code: 83,
1055 code: "KeyS",
1056 text: None,
1057 },
1058 KeyDefinition {
1059 key: "t",
1060 key_code: 84,
1061 code: "KeyT",
1062 text: None,
1063 },
1064 KeyDefinition {
1065 key: "u",
1066 key_code: 85,
1067 code: "KeyU",
1068 text: None,
1069 },
1070 KeyDefinition {
1071 key: "v",
1072 key_code: 86,
1073 code: "KeyV",
1074 text: None,
1075 },
1076 KeyDefinition {
1077 key: "w",
1078 key_code: 87,
1079 code: "KeyW",
1080 text: None,
1081 },
1082 KeyDefinition {
1083 key: "x",
1084 key_code: 88,
1085 code: "KeyX",
1086 text: None,
1087 },
1088 KeyDefinition {
1089 key: "y",
1090 key_code: 89,
1091 code: "KeyY",
1092 text: None,
1093 },
1094 KeyDefinition {
1095 key: "z",
1096 key_code: 90,
1097 code: "KeyZ",
1098 text: None,
1099 },
1100 KeyDefinition {
1101 key: "Meta",
1102 key_code: 91,
1103 code: "MetaLeft",
1104 text: None,
1105 },
1106 KeyDefinition {
1107 key: "*",
1108 key_code: 106,
1109 code: "NumpadMultiply",
1110 text: None,
1111 },
1112 KeyDefinition {
1113 key: "+",
1114 key_code: 107,
1115 code: "NumpadAdd",
1116 text: None,
1117 },
1118 KeyDefinition {
1119 key: "-",
1120 key_code: 109,
1121 code: "NumpadSubtract",
1122 text: None,
1123 },
1124 KeyDefinition {
1125 key: "/",
1126 key_code: 111,
1127 code: "NumpadDivide",
1128 text: None,
1129 },
1130 KeyDefinition {
1131 key: ";",
1132 key_code: 186,
1133 code: "Semicolon",
1134 text: None,
1135 },
1136 KeyDefinition {
1137 key: "=",
1138 key_code: 187,
1139 code: "Equal",
1140 text: None,
1141 },
1142 KeyDefinition {
1143 key: ",",
1144 key_code: 188,
1145 code: "Comma",
1146 text: None,
1147 },
1148 KeyDefinition {
1149 key: ".",
1150 key_code: 190,
1151 code: "Period",
1152 text: None,
1153 },
1154 KeyDefinition {
1155 key: "`",
1156 key_code: 192,
1157 code: "Backquote",
1158 text: None,
1159 },
1160 KeyDefinition {
1161 key: "[",
1162 key_code: 219,
1163 code: "BracketLeft",
1164 text: None,
1165 },
1166 KeyDefinition {
1167 key: "]",
1168 key_code: 221,
1169 code: "BracketRight",
1170 text: None,
1171 },
1172 KeyDefinition {
1173 key: "'",
1174 key_code: 222,
1175 code: "Quote",
1176 text: None,
1177 },
1178 KeyDefinition {
1179 key: "Attn",
1180 key_code: 246,
1181 code: "undefined",
1182 text: None,
1183 },
1184 KeyDefinition {
1185 key: "CrSel",
1186 key_code: 247,
1187 code: "Props",
1188 text: None,
1189 },
1190 KeyDefinition {
1191 key: "ExSel",
1192 key_code: 248,
1193 code: "undefined",
1194 text: None,
1195 },
1196 KeyDefinition {
1197 key: "EraseEof",
1198 key_code: 249,
1199 code: "undefined",
1200 text: None,
1201 },
1202 KeyDefinition {
1203 key: "Play",
1204 key_code: 250,
1205 code: "undefined",
1206 text: None,
1207 },
1208 KeyDefinition {
1209 key: "ZoomOut",
1210 key_code: 251,
1211 code: "undefined",
1212 text: None,
1213 },
1214 KeyDefinition {
1215 key: ")",
1216 key_code: 48,
1217 code: "Digit0",
1218 text: None,
1219 },
1220 KeyDefinition {
1221 key: "!",
1222 key_code: 49,
1223 code: "Digit1",
1224 text: None,
1225 },
1226 KeyDefinition {
1227 key: "@",
1228 key_code: 50,
1229 code: "Digit2",
1230 text: None,
1231 },
1232 KeyDefinition {
1233 key: "#",
1234 key_code: 51,
1235 code: "Digit3",
1236 text: None,
1237 },
1238 KeyDefinition {
1239 key: "$",
1240 key_code: 52,
1241 code: "Digit4",
1242 text: None,
1243 },
1244 KeyDefinition {
1245 key: "%",
1246 key_code: 53,
1247 code: "Digit5",
1248 text: None,
1249 },
1250 KeyDefinition {
1251 key: "^",
1252 key_code: 54,
1253 code: "Digit6",
1254 text: None,
1255 },
1256 KeyDefinition {
1257 key: "&",
1258 key_code: 55,
1259 code: "Digit7",
1260 text: None,
1261 },
1262 KeyDefinition {
1263 key: "(",
1264 key_code: 57,
1265 code: "Digit9",
1266 text: None,
1267 },
1268 KeyDefinition {
1269 key: "A",
1270 key_code: 65,
1271 code: "KeyA",
1272 text: None,
1273 },
1274 KeyDefinition {
1275 key: "B",
1276 key_code: 66,
1277 code: "KeyB",
1278 text: None,
1279 },
1280 KeyDefinition {
1281 key: "C",
1282 key_code: 67,
1283 code: "KeyC",
1284 text: None,
1285 },
1286 KeyDefinition {
1287 key: "D",
1288 key_code: 68,
1289 code: "KeyD",
1290 text: None,
1291 },
1292 KeyDefinition {
1293 key: "E",
1294 key_code: 69,
1295 code: "KeyE",
1296 text: None,
1297 },
1298 KeyDefinition {
1299 key: "F",
1300 key_code: 70,
1301 code: "KeyF",
1302 text: None,
1303 },
1304 KeyDefinition {
1305 key: "G",
1306 key_code: 71,
1307 code: "KeyG",
1308 text: None,
1309 },
1310 KeyDefinition {
1311 key: "H",
1312 key_code: 72,
1313 code: "KeyH",
1314 text: None,
1315 },
1316 KeyDefinition {
1317 key: "I",
1318 key_code: 73,
1319 code: "KeyI",
1320 text: None,
1321 },
1322 KeyDefinition {
1323 key: "J",
1324 key_code: 74,
1325 code: "KeyJ",
1326 text: None,
1327 },
1328 KeyDefinition {
1329 key: "K",
1330 key_code: 75,
1331 code: "KeyK",
1332 text: None,
1333 },
1334 KeyDefinition {
1335 key: "L",
1336 key_code: 76,
1337 code: "KeyL",
1338 text: None,
1339 },
1340 KeyDefinition {
1341 key: "M",
1342 key_code: 77,
1343 code: "KeyM",
1344 text: None,
1345 },
1346 KeyDefinition {
1347 key: "N",
1348 key_code: 78,
1349 code: "KeyN",
1350 text: None,
1351 },
1352 KeyDefinition {
1353 key: "O",
1354 key_code: 79,
1355 code: "KeyO",
1356 text: None,
1357 },
1358 KeyDefinition {
1359 key: "P",
1360 key_code: 80,
1361 code: "KeyP",
1362 text: None,
1363 },
1364 KeyDefinition {
1365 key: "Q",
1366 key_code: 81,
1367 code: "KeyQ",
1368 text: None,
1369 },
1370 KeyDefinition {
1371 key: "R",
1372 key_code: 82,
1373 code: "KeyR",
1374 text: None,
1375 },
1376 KeyDefinition {
1377 key: "S",
1378 key_code: 83,
1379 code: "KeyS",
1380 text: None,
1381 },
1382 KeyDefinition {
1383 key: "T",
1384 key_code: 84,
1385 code: "KeyT",
1386 text: None,
1387 },
1388 KeyDefinition {
1389 key: "U",
1390 key_code: 85,
1391 code: "KeyU",
1392 text: None,
1393 },
1394 KeyDefinition {
1395 key: "V",
1396 key_code: 86,
1397 code: "KeyV",
1398 text: None,
1399 },
1400 KeyDefinition {
1401 key: "W",
1402 key_code: 87,
1403 code: "KeyW",
1404 text: None,
1405 },
1406 KeyDefinition {
1407 key: "X",
1408 key_code: 88,
1409 code: "KeyX",
1410 text: None,
1411 },
1412 KeyDefinition {
1413 key: "Y",
1414 key_code: 89,
1415 code: "KeyY",
1416 text: None,
1417 },
1418 KeyDefinition {
1419 key: "Z",
1420 key_code: 90,
1421 code: "KeyZ",
1422 text: None,
1423 },
1424 KeyDefinition {
1425 key: ":",
1426 key_code: 186,
1427 code: "Semicolon",
1428 text: None,
1429 },
1430 KeyDefinition {
1431 key: "<",
1432 key_code: 188,
1433 code: "Comma",
1434 text: None,
1435 },
1436 KeyDefinition {
1437 key: "_",
1438 key_code: 189,
1439 code: "Minus",
1440 text: None,
1441 },
1442 KeyDefinition {
1443 key: ">",
1444 key_code: 190,
1445 code: "Period",
1446 text: None,
1447 },
1448 KeyDefinition {
1449 key: "?",
1450 key_code: 191,
1451 code: "Slash",
1452 text: None,
1453 },
1454 KeyDefinition {
1455 key: "~",
1456 key_code: 192,
1457 code: "Backquote",
1458 text: None,
1459 },
1460 KeyDefinition {
1461 key: "{",
1462 key_code: 219,
1463 code: "BracketLeft",
1464 text: None,
1465 },
1466 KeyDefinition {
1467 key: "|",
1468 key_code: 220,
1469 code: "Backslash",
1470 text: None,
1471 },
1472 KeyDefinition {
1473 key: "}",
1474 key_code: 221,
1475 code: "BracketRight",
1476 text: None,
1477 },
1478 KeyDefinition {
1479 key: "\"",
1480 key_code: 222,
1481 code: "Quote",
1482 text: None,
1483 },
1484];
1485
1486pub fn get_key_definition(key: impl AsRef<str>) -> Option<&'static KeyDefinition> {
1489 let key = key.as_ref();
1490 USKEYBOARD_LAYOUT
1491 .iter()
1492 .find(|key_definition| key_definition.key == key)
1493}