1use std::collections::HashMap;
2
3use once_cell::sync::Lazy;
4
5pub static KEYCODE_ALIAS: Lazy<HashMap<&str, &str>> = Lazy::new(|| {
6 let mut m = HashMap::new();
7
8 macro_rules! add_alias {
9 ($keycode:tt) => {
10 m.insert(paste::paste!{ stringify!([<$keycode:lower>]) }, $keycode);
11 };
12 ($keycode:tt = $( $alias:expr),*) => {
13 add_alias!($keycode);
14 $(
15 m.insert($alias, $keycode);
16 )*
17 };
18 }
19
20 add_alias!("No");
21 add_alias!("A");
22 add_alias!("B");
23 add_alias!("C");
24 add_alias!("D");
25 add_alias!("E");
26 add_alias!("F");
27 add_alias!("G");
28 add_alias!("H");
29 add_alias!("I");
30 add_alias!("J");
31 add_alias!("K");
32 add_alias!("L");
33 add_alias!("M");
34 add_alias!("N");
35 add_alias!("O");
36 add_alias!("P");
37 add_alias!("Q");
38 add_alias!("R");
39 add_alias!("S");
40 add_alias!("T");
41 add_alias!("U");
42 add_alias!("V");
43 add_alias!("W");
44 add_alias!("X");
45 add_alias!("Y");
46 add_alias!("Z");
47 add_alias!("Kc1" = "1");
48 add_alias!("Kc2" = "2");
49 add_alias!("Kc3" = "3");
50 add_alias!("Kc4" = "4");
51 add_alias!("Kc5" = "5");
52 add_alias!("Kc6" = "6");
53 add_alias!("Kc7" = "7");
54 add_alias!("Kc8" = "8");
55 add_alias!("Kc9" = "9");
56 add_alias!("Kc0" = "0");
57 add_alias!("Enter" = "ent");
58 add_alias!("Escape" = "esc");
59 add_alias!("Backspace" = "bspc");
60 add_alias!("Tab");
61 add_alias!("Space" = "spc");
62 add_alias!("Minus" = "mins", "-");
63 add_alias!("Equal" = "eql", "=");
64 add_alias!("LeftBracket" = "left_bracket", "lbrc", "[");
65 add_alias!("RightBracket" = "right_bracket", "rbrc", "]");
66 add_alias!("Backslash" = "bsls", "\\");
67 add_alias!("NonusHash" = "nonus_hash", "nuhs");
68 add_alias!("Semicolon" = "scln", ";");
69 add_alias!("Quote" = "quot", "'");
70 add_alias!("Grave" = "grv", "`");
71 add_alias!("Comma" = "comm", ",");
72 add_alias!("Dot" = ".");
73 add_alias!("Slash" = "slsh", "/");
74 add_alias!("CapsLock" = "caps_lock", "caps");
75 add_alias!("CapsWordToggle" = "caps_word", "cword");
76 add_alias!("F1");
77 add_alias!("F2");
78 add_alias!("F3");
79 add_alias!("F4");
80 add_alias!("F5");
81 add_alias!("F6");
82 add_alias!("F7");
83 add_alias!("F8");
84 add_alias!("F9");
85 add_alias!("F10");
86 add_alias!("F11");
87 add_alias!("F12");
88 add_alias!("PrintScreen" = "print_screen", "pscr");
89 add_alias!("ScrollLock" = "scroll_lock", "scrl", "brmd");
90 add_alias!("Pause" = "paus", "brk", "brmu");
91 add_alias!("Insert" = "ins");
92 add_alias!("Home");
93 add_alias!("PageUp" = "page_up", "pgup");
94 add_alias!("Delete" = "del");
95 add_alias!("End");
96 add_alias!("PageDown" = "page_down", "pgdn");
97 add_alias!("Right" = "rght");
98 add_alias!("Left");
99 add_alias!("Down");
100 add_alias!("Up");
101 add_alias!("NumLock" = "num_lock", "num");
102 add_alias!("KpSlash" = "kp_slash", "psls");
103 add_alias!("KpAsterisk" = "kp_asterisk", "past");
104 add_alias!("KpMinus" = "kp_minus", "pmns");
105 add_alias!("KpPlus" = "kp_plus", "ppls");
106 add_alias!("KpEnter" = "kp_enter", "pent");
107 add_alias!("Kp1" = "kp_1");
108 add_alias!("Kp2" = "kp_2");
109 add_alias!("Kp3" = "kp_3");
110 add_alias!("Kp4" = "kp_4");
111 add_alias!("Kp5" = "kp_5");
112 add_alias!("Kp6" = "kp_6");
113 add_alias!("Kp7" = "kp_7");
114 add_alias!("Kp8" = "kp_8");
115 add_alias!("Kp9" = "kp_9");
116 add_alias!("Kp0" = "kp_0");
117 add_alias!("KpDot" = "kp_dot", "pdot");
118 add_alias!("NonusBackslash" = "nonus_backslash", "nubs");
119 add_alias!("Application" = "app");
120 add_alias!("KbPower" = "kb_power");
121 add_alias!("KpEqual" = "kp_equal", "peql");
122 add_alias!("F13");
123 add_alias!("F14");
124 add_alias!("F15");
125 add_alias!("F16");
126 add_alias!("F17");
127 add_alias!("F18");
128 add_alias!("F19");
129 add_alias!("F20");
130 add_alias!("F21");
131 add_alias!("F22");
132 add_alias!("F23");
133 add_alias!("F24");
134 add_alias!("Execute" = "exec");
135 add_alias!("Help");
136 add_alias!("Menu");
137 add_alias!("Select" = "slct");
138 add_alias!("Stop");
139 add_alias!("Again" = "agin");
140 add_alias!("Undo");
141 add_alias!("Cut");
142 add_alias!("Copy");
143 add_alias!("Paste" = "pste");
144 add_alias!("Find");
145 add_alias!("KbMute" = "kb_mute");
146 add_alias!("KbVolumeUp" = "kb_volume_up");
147 add_alias!("KbVolumeDown" = "kb_volume_down");
148 add_alias!("LockingCapsLock" = "locking_caps_lock", "lcap");
149 add_alias!("LockingNumLock" = "locking_num_lock", "lnum");
150 add_alias!("LockingScrollLock" = "locking_scroll_lock", "lscr");
151 add_alias!("KpComma" = "kp_comma", "pcmm");
152 add_alias!("KpEqualAs400" = "kp_equal_as400");
153 add_alias!("International1" = "international_1", "int1");
154 add_alias!("International2" = "international_2", "int2");
155 add_alias!("International3" = "international_3", "int3");
156 add_alias!("International4" = "international_4", "int4");
157 add_alias!("International5" = "international_5", "int5");
158 add_alias!("International6" = "international_6", "int6");
159 add_alias!("International7" = "international_7", "int7");
160 add_alias!("International8" = "international_8", "int8");
161 add_alias!("International9" = "international_9", "int9");
162 add_alias!("Language1" = "language_1", "lng1");
163 add_alias!("Language2" = "language_2", "lng2");
164 add_alias!("Language3" = "language_3", "lng3");
165 add_alias!("Language4" = "language_4", "lng4");
166 add_alias!("Language5" = "language_5", "lng5");
167 add_alias!("Language6" = "language_6", "lng6");
168 add_alias!("Language7" = "language_7", "lng7");
169 add_alias!("Language8" = "language_8", "lng8");
170 add_alias!("Language9" = "language_9", "lng9");
171 add_alias!("AlternateErase" = "alternate_erase", "eras");
172 add_alias!("SystemRequest" = "system_request", "syrq");
173 add_alias!("Cancel" = "cncl");
174 add_alias!("Clear" = "clr");
175 add_alias!("Prior" = "prir");
176 add_alias!("Return" = "retn");
177 add_alias!("Separator" = "sepr");
178 add_alias!("Out");
179 add_alias!("Oper");
180 add_alias!("ClearAgain" = "clear_again", "clag");
181 add_alias!("Crsel" = "crsl");
182 add_alias!("Exsel" = "exsl");
183 add_alias!("SystemPower" = "system_power", "pwr");
184 add_alias!("SystemSleep" = "system_sleep", "slep");
185 add_alias!("SystemWake" = "system_wake", "wake");
186 add_alias!("AudioMute" = "audio_mute", "mute");
187 add_alias!("AudioVolUp" = "audio_vol_up", "volu");
188 add_alias!("AudioVolDown" = "audio_vol_down", "vold");
189 add_alias!("MediaNextTrack" = "media_next_track", "mnxt");
190 add_alias!("MediaPrevTrack" = "media_prev_track", "mprv");
191 add_alias!("MediaStop" = "media_stop", "mstp");
192 add_alias!("MediaPlayPause" = "media_play_pause", "mply");
193 add_alias!("MediaSelect" = "media_select", "msel");
194 add_alias!("MediaEject" = "media_eject", "ejct");
195 add_alias!("Mail");
196 add_alias!("Calculator" = "calc");
197 add_alias!("MyComputer" = "my_computer", "mycm");
198 add_alias!("WwwSearch" = "www_search", "wsch");
199 add_alias!("WwwHome" = "www_home", "whom");
200 add_alias!("WwwBack" = "www_back", "wbak");
201 add_alias!("WwwForward" = "www_forward", "wfwd");
202 add_alias!("WwwStop" = "www_stop", "wstp");
203 add_alias!("WwwRefresh" = "www_refresh", "wref");
204 add_alias!("WwwFavorites" = "www_favorites", "wfav");
205 add_alias!("MediaFastForward" = "media_fast_forward", "mffd");
206 add_alias!("MediaRewind" = "media_rewind", "mrwd");
207 add_alias!("BrightnessUp" = "brightness_up", "briu");
208 add_alias!("BrightnessDown" = "brightness_down", "brid");
209 add_alias!("ControlPanel" = "control_panel", "cpnl");
210 add_alias!("Assistant" = "asst");
211 add_alias!("MissionControl" = "mission_control", "mctl");
212 add_alias!("Launchpad" = "lpad");
213 add_alias!("MouseUp" = "mousecursorup", "mouse_cursor_up", "ms_up");
214 add_alias!("MouseDown" = "mousecursordown", "mouse_cursor_down", "ms_down");
215 add_alias!("MouseLeft" = "mousecursorleft", "mouse_cursor_left", "ms_left");
216 add_alias!("MouseRight" = "mousecursorright", "mouse_cursor_right", "ms_right");
217 add_alias!("MouseBtn1" = "mouse_btn_1", "mousebutton1", "mouse_button_1", "ms_btn1");
218 add_alias!("MouseBtn2" = "mouse_btn_2", "mousebutton2", "mouse_button_2", "ms_btn2");
219 add_alias!("MouseBtn3" = "mouse_btn_3", "mousebutton3", "mouse_button_3", "ms_btn3");
220 add_alias!("MouseBtn4" = "mouse_btn_4", "mousebutton4", "mouse_button_4", "ms_btn4");
221 add_alias!("MouseBtn5" = "mouse_btn_5", "mousebutton5", "mouse_button_5", "ms_btn5");
222 add_alias!("MouseBtn6" = "mouse_btn_6", "mousebutton6", "mouse_button_6", "ms_btn6");
223 add_alias!("MouseBtn7" = "mouse_btn_7", "mousebutton7", "mouse_button_7", "ms_btn7");
224 add_alias!("MouseBtn8" = "mouse_btn_8", "mousebutton8", "mouse_button_8", "ms_btn8");
225 add_alias!("MouseWheelUp" = "mouse_wheel_up", "ms_whlu");
226 add_alias!("MouseWheelDown" = "mouse_wheel_down", "ms_whld");
227 add_alias!("MouseWheelLeft" = "mouse_wheel_left", "ms_whll");
228 add_alias!("MouseWheelRight" = "mouse_wheel_right", "ms_whlr");
229 add_alias!(
230 "MouseAccel0" = "mouse_accel_0",
231 "mouseacceleration0",
232 "mouse_acceleration_0",
233 "ms_acl0"
234 );
235 add_alias!(
236 "MouseAccel1" = "mouse_accel_1",
237 "mouseacceleration1",
238 "mouse_acceleration_1",
239 "ms_acl1"
240 );
241 add_alias!(
242 "MouseAccel2" = "mouse_accel_2",
243 "mouseacceleration2",
244 "mouse_acceleration_2",
245 "ms_acl2"
246 );
247 add_alias!("LCtrl" = "l_ctrl", "leftctrl", "left_ctrl", "lctl");
248 add_alias!("LShift" = "l_shift", "leftshift", "left_shift", "lsft");
249 add_alias!("LAlt" = "l_alt", "leftalt", "left_alt", "lopt");
250 add_alias!("LGui" = "l_gui", "leftgui", "left_gui", "lcmd", "lwin");
251 add_alias!("RCtrl" = "r_ctrl", "rightctrl", "right_ctrl", "rctl");
252 add_alias!("RShift" = "r_shift", "rightshift", "right_shift", "rsft");
253 add_alias!("RAlt" = "r_alt", "rightalt", "right_alt", "ropt", "algr");
254 add_alias!("RGui" = "r_gui", "rightgui", "right_gui", "rcmd", "rwin");
255
256 m
257});