kanata_parser/keys/
linux.rs

1// This file is taken from the original ktrl project's keys.rs file with modifications.
2
3use super::OsCode;
4
5impl OsCode {
6    pub(super) const fn as_u16_linux(self) -> u16 {
7        self as u16
8    }
9    pub(super) const fn from_u16_linux(code: u16) -> Option<Self> {
10        match code {
11            0 => Some(OsCode::KEY_RESERVED),
12            1 => Some(OsCode::KEY_ESC),
13            2 => Some(OsCode::KEY_1),
14            3 => Some(OsCode::KEY_2),
15            4 => Some(OsCode::KEY_3),
16            5 => Some(OsCode::KEY_4),
17            6 => Some(OsCode::KEY_5),
18            7 => Some(OsCode::KEY_6),
19            8 => Some(OsCode::KEY_7),
20            9 => Some(OsCode::KEY_8),
21            10 => Some(OsCode::KEY_9),
22            11 => Some(OsCode::KEY_0),
23            12 => Some(OsCode::KEY_MINUS),
24            13 => Some(OsCode::KEY_EQUAL),
25            14 => Some(OsCode::KEY_BACKSPACE),
26            15 => Some(OsCode::KEY_TAB),
27            16 => Some(OsCode::KEY_Q),
28            17 => Some(OsCode::KEY_W),
29            18 => Some(OsCode::KEY_E),
30            19 => Some(OsCode::KEY_R),
31            20 => Some(OsCode::KEY_T),
32            21 => Some(OsCode::KEY_Y),
33            22 => Some(OsCode::KEY_U),
34            23 => Some(OsCode::KEY_I),
35            24 => Some(OsCode::KEY_O),
36            25 => Some(OsCode::KEY_P),
37            26 => Some(OsCode::KEY_LEFTBRACE),
38            27 => Some(OsCode::KEY_RIGHTBRACE),
39            28 => Some(OsCode::KEY_ENTER),
40            29 => Some(OsCode::KEY_LEFTCTRL),
41            30 => Some(OsCode::KEY_A),
42            31 => Some(OsCode::KEY_S),
43            32 => Some(OsCode::KEY_D),
44            33 => Some(OsCode::KEY_F),
45            34 => Some(OsCode::KEY_G),
46            35 => Some(OsCode::KEY_H),
47            36 => Some(OsCode::KEY_J),
48            37 => Some(OsCode::KEY_K),
49            38 => Some(OsCode::KEY_L),
50            39 => Some(OsCode::KEY_SEMICOLON),
51            40 => Some(OsCode::KEY_APOSTROPHE),
52            41 => Some(OsCode::KEY_GRAVE),
53            42 => Some(OsCode::KEY_LEFTSHIFT),
54            43 => Some(OsCode::KEY_BACKSLASH),
55            44 => Some(OsCode::KEY_Z),
56            45 => Some(OsCode::KEY_X),
57            46 => Some(OsCode::KEY_C),
58            47 => Some(OsCode::KEY_V),
59            48 => Some(OsCode::KEY_B),
60            49 => Some(OsCode::KEY_N),
61            50 => Some(OsCode::KEY_M),
62            51 => Some(OsCode::KEY_COMMA),
63            52 => Some(OsCode::KEY_DOT),
64            53 => Some(OsCode::KEY_SLASH),
65            54 => Some(OsCode::KEY_RIGHTSHIFT),
66            55 => Some(OsCode::KEY_KPASTERISK),
67            56 => Some(OsCode::KEY_LEFTALT),
68            57 => Some(OsCode::KEY_SPACE),
69            58 => Some(OsCode::KEY_CAPSLOCK),
70            59 => Some(OsCode::KEY_F1),
71            60 => Some(OsCode::KEY_F2),
72            61 => Some(OsCode::KEY_F3),
73            62 => Some(OsCode::KEY_F4),
74            63 => Some(OsCode::KEY_F5),
75            64 => Some(OsCode::KEY_F6),
76            65 => Some(OsCode::KEY_F7),
77            66 => Some(OsCode::KEY_F8),
78            67 => Some(OsCode::KEY_F9),
79            68 => Some(OsCode::KEY_F10),
80            69 => Some(OsCode::KEY_NUMLOCK),
81            70 => Some(OsCode::KEY_SCROLLLOCK),
82            71 => Some(OsCode::KEY_KP7),
83            72 => Some(OsCode::KEY_KP8),
84            73 => Some(OsCode::KEY_KP9),
85            74 => Some(OsCode::KEY_KPMINUS),
86            75 => Some(OsCode::KEY_KP4),
87            76 => Some(OsCode::KEY_KP5),
88            77 => Some(OsCode::KEY_KP6),
89            78 => Some(OsCode::KEY_KPPLUS),
90            79 => Some(OsCode::KEY_KP1),
91            80 => Some(OsCode::KEY_KP2),
92            81 => Some(OsCode::KEY_KP3),
93            82 => Some(OsCode::KEY_KP0),
94            83 => Some(OsCode::KEY_KPDOT),
95            84 => Some(OsCode::KEY_84),
96            85 => Some(OsCode::KEY_ZENKAKUHANKAKU),
97            86 => Some(OsCode::KEY_102ND),
98            87 => Some(OsCode::KEY_F11),
99            88 => Some(OsCode::KEY_F12),
100            89 => Some(OsCode::KEY_RO),
101            90 => Some(OsCode::KEY_KATAKANA),
102            91 => Some(OsCode::KEY_HIRAGANA),
103            92 => Some(OsCode::KEY_HENKAN),
104            93 => Some(OsCode::KEY_KATAKANAHIRAGANA),
105            94 => Some(OsCode::KEY_MUHENKAN),
106            95 => Some(OsCode::KEY_KPJPCOMMA),
107            96 => Some(OsCode::KEY_KPENTER),
108            97 => Some(OsCode::KEY_RIGHTCTRL),
109            98 => Some(OsCode::KEY_KPSLASH),
110            99 => Some(OsCode::KEY_SYSRQ),
111            100 => Some(OsCode::KEY_RIGHTALT),
112            101 => Some(OsCode::KEY_LINEFEED),
113            102 => Some(OsCode::KEY_HOME),
114            103 => Some(OsCode::KEY_UP),
115            104 => Some(OsCode::KEY_PAGEUP),
116            105 => Some(OsCode::KEY_LEFT),
117            106 => Some(OsCode::KEY_RIGHT),
118            107 => Some(OsCode::KEY_END),
119            108 => Some(OsCode::KEY_DOWN),
120            109 => Some(OsCode::KEY_PAGEDOWN),
121            110 => Some(OsCode::KEY_INSERT),
122            111 => Some(OsCode::KEY_DELETE),
123            112 => Some(OsCode::KEY_MACRO),
124            113 => Some(OsCode::KEY_MUTE),
125            114 => Some(OsCode::KEY_VOLUMEDOWN),
126            115 => Some(OsCode::KEY_VOLUMEUP),
127            116 => Some(OsCode::KEY_POWER),
128            117 => Some(OsCode::KEY_KPEQUAL),
129            118 => Some(OsCode::KEY_KPPLUSMINUS),
130            119 => Some(OsCode::KEY_PAUSE),
131            120 => Some(OsCode::KEY_SCALE),
132            121 => Some(OsCode::KEY_KPCOMMA),
133            122 => Some(OsCode::KEY_HANGEUL),
134            123 => Some(OsCode::KEY_HANJA),
135            124 => Some(OsCode::KEY_YEN),
136            125 => Some(OsCode::KEY_LEFTMETA),
137            126 => Some(OsCode::KEY_RIGHTMETA),
138            127 => Some(OsCode::KEY_COMPOSE),
139            128 => Some(OsCode::KEY_STOP),
140            129 => Some(OsCode::KEY_AGAIN),
141            130 => Some(OsCode::KEY_PROPS),
142            131 => Some(OsCode::KEY_UNDO),
143            132 => Some(OsCode::KEY_FRONT),
144            133 => Some(OsCode::KEY_COPY),
145            134 => Some(OsCode::KEY_OPEN),
146            135 => Some(OsCode::KEY_PASTE),
147            136 => Some(OsCode::KEY_FIND),
148            137 => Some(OsCode::KEY_CUT),
149            138 => Some(OsCode::KEY_HELP),
150            139 => Some(OsCode::KEY_MENU),
151            140 => Some(OsCode::KEY_CALC),
152            141 => Some(OsCode::KEY_SETUP),
153            142 => Some(OsCode::KEY_SLEEP),
154            143 => Some(OsCode::KEY_WAKEUP),
155            144 => Some(OsCode::KEY_FILE),
156            145 => Some(OsCode::KEY_SENDFILE),
157            146 => Some(OsCode::KEY_DELETEFILE),
158            147 => Some(OsCode::KEY_XFER),
159            148 => Some(OsCode::KEY_PROG1),
160            149 => Some(OsCode::KEY_PROG2),
161            150 => Some(OsCode::KEY_WWW),
162            151 => Some(OsCode::KEY_MSDOS),
163            152 => Some(OsCode::KEY_COFFEE),
164            153 => Some(OsCode::KEY_ROTATE_DISPLAY),
165            154 => Some(OsCode::KEY_CYCLEWINDOWS),
166            155 => Some(OsCode::KEY_MAIL),
167            156 => Some(OsCode::KEY_BOOKMARKS),
168            157 => Some(OsCode::KEY_COMPUTER),
169            158 => Some(OsCode::KEY_BACK),
170            159 => Some(OsCode::KEY_FORWARD),
171            160 => Some(OsCode::KEY_CLOSECD),
172            161 => Some(OsCode::KEY_EJECTCD),
173            162 => Some(OsCode::KEY_EJECTCLOSECD),
174            163 => Some(OsCode::KEY_NEXTSONG),
175            164 => Some(OsCode::KEY_PLAYPAUSE),
176            165 => Some(OsCode::KEY_PREVIOUSSONG),
177            166 => Some(OsCode::KEY_STOPCD),
178            167 => Some(OsCode::KEY_RECORD),
179            168 => Some(OsCode::KEY_REWIND),
180            169 => Some(OsCode::KEY_PHONE),
181            170 => Some(OsCode::KEY_ISO),
182            171 => Some(OsCode::KEY_CONFIG),
183            172 => Some(OsCode::KEY_HOMEPAGE),
184            173 => Some(OsCode::KEY_REFRESH),
185            174 => Some(OsCode::KEY_EXIT),
186            175 => Some(OsCode::KEY_MOVE),
187            176 => Some(OsCode::KEY_EDIT),
188            177 => Some(OsCode::KEY_SCROLLUP),
189            178 => Some(OsCode::KEY_SCROLLDOWN),
190            179 => Some(OsCode::KEY_KPLEFTPAREN),
191            180 => Some(OsCode::KEY_KPRIGHTPAREN),
192            181 => Some(OsCode::KEY_NEW),
193            182 => Some(OsCode::KEY_REDO),
194            183 => Some(OsCode::KEY_F13),
195            184 => Some(OsCode::KEY_F14),
196            185 => Some(OsCode::KEY_F15),
197            186 => Some(OsCode::KEY_F16),
198            187 => Some(OsCode::KEY_F17),
199            188 => Some(OsCode::KEY_F18),
200            189 => Some(OsCode::KEY_F19),
201            190 => Some(OsCode::KEY_F20),
202            191 => Some(OsCode::KEY_F21),
203            192 => Some(OsCode::KEY_F22),
204            193 => Some(OsCode::KEY_F23),
205            194 => Some(OsCode::KEY_F24),
206            195 => Some(OsCode::KEY_195),
207            196 => Some(OsCode::KEY_196),
208            197 => Some(OsCode::KEY_197),
209            198 => Some(OsCode::KEY_198),
210            199 => Some(OsCode::KEY_199),
211            200 => Some(OsCode::KEY_PLAYCD),
212            201 => Some(OsCode::KEY_PAUSECD),
213            202 => Some(OsCode::KEY_PROG3),
214            203 => Some(OsCode::KEY_PROG4),
215            204 => Some(OsCode::KEY_DASHBOARD),
216            205 => Some(OsCode::KEY_SUSPEND),
217            206 => Some(OsCode::KEY_CLOSE),
218            207 => Some(OsCode::KEY_PLAY),
219            208 => Some(OsCode::KEY_FASTFORWARD),
220            209 => Some(OsCode::KEY_BASSBOOST),
221            210 => Some(OsCode::KEY_PRINT),
222            211 => Some(OsCode::KEY_HP),
223            212 => Some(OsCode::KEY_CAMERA),
224            213 => Some(OsCode::KEY_SOUND),
225            214 => Some(OsCode::KEY_QUESTION),
226            215 => Some(OsCode::KEY_EMAIL),
227            216 => Some(OsCode::KEY_CHAT),
228            217 => Some(OsCode::KEY_SEARCH),
229            218 => Some(OsCode::KEY_CONNECT),
230            219 => Some(OsCode::KEY_FINANCE),
231            220 => Some(OsCode::KEY_SPORT),
232            221 => Some(OsCode::KEY_SHOP),
233            222 => Some(OsCode::KEY_ALTERASE),
234            223 => Some(OsCode::KEY_CANCEL),
235            224 => Some(OsCode::KEY_BRIGHTNESSDOWN),
236            225 => Some(OsCode::KEY_BRIGHTNESSUP),
237            226 => Some(OsCode::KEY_MEDIA),
238            227 => Some(OsCode::KEY_SWITCHVIDEOMODE),
239            228 => Some(OsCode::KEY_KBDILLUMTOGGLE),
240            229 => Some(OsCode::KEY_KBDILLUMDOWN),
241            230 => Some(OsCode::KEY_KBDILLUMUP),
242            231 => Some(OsCode::KEY_SEND),
243            232 => Some(OsCode::KEY_REPLY),
244            233 => Some(OsCode::KEY_FORWARDMAIL),
245            234 => Some(OsCode::KEY_SAVE),
246            235 => Some(OsCode::KEY_DOCUMENTS),
247            236 => Some(OsCode::KEY_BATTERY),
248            237 => Some(OsCode::KEY_BLUETOOTH),
249            238 => Some(OsCode::KEY_WLAN),
250            239 => Some(OsCode::KEY_UWB),
251            240 => Some(OsCode::KEY_UNKNOWN),
252            241 => Some(OsCode::KEY_VIDEO_NEXT),
253            242 => Some(OsCode::KEY_VIDEO_PREV),
254            243 => Some(OsCode::KEY_BRIGHTNESS_CYCLE),
255            244 => Some(OsCode::KEY_BRIGHTNESS_AUTO),
256            245 => Some(OsCode::KEY_DISPLAY_OFF),
257            246 => Some(OsCode::KEY_WWAN),
258            247 => Some(OsCode::KEY_RFKILL),
259            248 => Some(OsCode::KEY_MICMUTE),
260            249 => Some(OsCode::KEY_249),
261            250 => Some(OsCode::KEY_250),
262            251 => Some(OsCode::KEY_251),
263            252 => Some(OsCode::KEY_252),
264            253 => Some(OsCode::KEY_253),
265            254 => Some(OsCode::KEY_254),
266            255 => Some(OsCode::KEY_255),
267            256 => Some(OsCode::BTN_0),
268            257 => Some(OsCode::BTN_1),
269            258 => Some(OsCode::BTN_2),
270            259 => Some(OsCode::BTN_3),
271            260 => Some(OsCode::BTN_4),
272            261 => Some(OsCode::BTN_5),
273            262 => Some(OsCode::BTN_6),
274            263 => Some(OsCode::BTN_7),
275            264 => Some(OsCode::BTN_8),
276            265 => Some(OsCode::BTN_9),
277            266 => Some(OsCode::KEY_266),
278            267 => Some(OsCode::KEY_267),
279            268 => Some(OsCode::KEY_268),
280            269 => Some(OsCode::KEY_269),
281            270 => Some(OsCode::KEY_270),
282            271 => Some(OsCode::KEY_271),
283            272 => Some(OsCode::BTN_LEFT),
284            273 => Some(OsCode::BTN_RIGHT),
285            274 => Some(OsCode::BTN_MIDDLE),
286            275 => Some(OsCode::BTN_SIDE),
287            276 => Some(OsCode::BTN_EXTRA),
288            277 => Some(OsCode::BTN_FORWARD),
289            278 => Some(OsCode::BTN_BACK),
290            279 => Some(OsCode::BTN_TASK),
291            280 => Some(OsCode::KEY_280),
292            281 => Some(OsCode::KEY_281),
293            282 => Some(OsCode::KEY_282),
294            283 => Some(OsCode::KEY_283),
295            284 => Some(OsCode::KEY_284),
296            285 => Some(OsCode::KEY_285),
297            286 => Some(OsCode::KEY_286),
298            287 => Some(OsCode::KEY_287),
299            288 => Some(OsCode::BTN_TRIGGER),
300            289 => Some(OsCode::BTN_THUMB),
301            290 => Some(OsCode::BTN_THUMB2),
302            291 => Some(OsCode::BTN_TOP),
303            292 => Some(OsCode::BTN_TOP2),
304            293 => Some(OsCode::BTN_PINKIE),
305            294 => Some(OsCode::BTN_BASE),
306            295 => Some(OsCode::BTN_BASE2),
307            296 => Some(OsCode::BTN_BASE3),
308            297 => Some(OsCode::BTN_BASE4),
309            298 => Some(OsCode::BTN_BASE5),
310            299 => Some(OsCode::BTN_BASE6),
311            300 => Some(OsCode::KEY_300),
312            301 => Some(OsCode::KEY_301),
313            302 => Some(OsCode::KEY_302),
314            303 => Some(OsCode::BTN_DEAD),
315            304 => Some(OsCode::BTN_SOUTH),
316            305 => Some(OsCode::BTN_EAST),
317            306 => Some(OsCode::BTN_C),
318            307 => Some(OsCode::BTN_NORTH),
319            308 => Some(OsCode::BTN_WEST),
320            309 => Some(OsCode::BTN_Z),
321            310 => Some(OsCode::BTN_TL),
322            311 => Some(OsCode::BTN_TR),
323            312 => Some(OsCode::BTN_TL2),
324            313 => Some(OsCode::BTN_TR2),
325            314 => Some(OsCode::BTN_SELECT),
326            315 => Some(OsCode::BTN_START),
327            316 => Some(OsCode::BTN_MODE),
328            317 => Some(OsCode::BTN_THUMBL),
329            318 => Some(OsCode::BTN_THUMBR),
330            319 => Some(OsCode::KEY_319),
331            320 => Some(OsCode::BTN_TOOL_PEN),
332            321 => Some(OsCode::BTN_TOOL_RUBBER),
333            322 => Some(OsCode::BTN_TOOL_BRUSH),
334            323 => Some(OsCode::BTN_TOOL_PENCIL),
335            324 => Some(OsCode::BTN_TOOL_AIRBRUSH),
336            325 => Some(OsCode::BTN_TOOL_FINGER),
337            326 => Some(OsCode::BTN_TOOL_MOUSE),
338            327 => Some(OsCode::BTN_TOOL_LENS),
339            328 => Some(OsCode::BTN_TOOL_QUINTTAP),
340            329 => Some(OsCode::BTN_STYLUS3),
341            330 => Some(OsCode::BTN_TOUCH),
342            331 => Some(OsCode::BTN_STYLUS),
343            332 => Some(OsCode::BTN_STYLUS2),
344            333 => Some(OsCode::BTN_TOOL_DOUBLETAP),
345            334 => Some(OsCode::BTN_TOOL_TRIPLETAP),
346            335 => Some(OsCode::BTN_TOOL_QUADTAP),
347            336 => Some(OsCode::BTN_GEAR_DOWN),
348            337 => Some(OsCode::BTN_GEAR_UP),
349            338 => Some(OsCode::KEY_338),
350            339 => Some(OsCode::KEY_339),
351            340 => Some(OsCode::KEY_340),
352            341 => Some(OsCode::KEY_341),
353            342 => Some(OsCode::KEY_342),
354            343 => Some(OsCode::KEY_343),
355            344 => Some(OsCode::KEY_344),
356            345 => Some(OsCode::KEY_345),
357            346 => Some(OsCode::KEY_346),
358            347 => Some(OsCode::KEY_347),
359            348 => Some(OsCode::KEY_348),
360            349 => Some(OsCode::KEY_349),
361            350 => Some(OsCode::KEY_350),
362            351 => Some(OsCode::KEY_351),
363            352 => Some(OsCode::KEY_OK),
364            353 => Some(OsCode::KEY_SELECT),
365            354 => Some(OsCode::KEY_GOTO),
366            355 => Some(OsCode::KEY_CLEAR),
367            356 => Some(OsCode::KEY_POWER2),
368            357 => Some(OsCode::KEY_OPTION),
369            358 => Some(OsCode::KEY_INFO),
370            359 => Some(OsCode::KEY_TIME),
371            360 => Some(OsCode::KEY_VENDOR),
372            361 => Some(OsCode::KEY_ARCHIVE),
373            362 => Some(OsCode::KEY_PROGRAM),
374            363 => Some(OsCode::KEY_CHANNEL),
375            364 => Some(OsCode::KEY_FAVORITES),
376            365 => Some(OsCode::KEY_EPG),
377            366 => Some(OsCode::KEY_PVR),
378            367 => Some(OsCode::KEY_MHP),
379            368 => Some(OsCode::KEY_LANGUAGE),
380            369 => Some(OsCode::KEY_TITLE),
381            370 => Some(OsCode::KEY_SUBTITLE),
382            371 => Some(OsCode::KEY_ANGLE),
383            372 => Some(OsCode::KEY_FULL_SCREEN),
384            373 => Some(OsCode::KEY_MODE),
385            374 => Some(OsCode::KEY_KEYBOARD),
386            375 => Some(OsCode::KEY_ASPECT_RATIO),
387            376 => Some(OsCode::KEY_PC),
388            377 => Some(OsCode::KEY_TV),
389            378 => Some(OsCode::KEY_TV2),
390            379 => Some(OsCode::KEY_VCR),
391            380 => Some(OsCode::KEY_VCR2),
392            381 => Some(OsCode::KEY_SAT),
393            382 => Some(OsCode::KEY_SAT2),
394            383 => Some(OsCode::KEY_CD),
395            384 => Some(OsCode::KEY_TAPE),
396            385 => Some(OsCode::KEY_RADIO),
397            386 => Some(OsCode::KEY_TUNER),
398            387 => Some(OsCode::KEY_PLAYER),
399            388 => Some(OsCode::KEY_TEXT),
400            389 => Some(OsCode::KEY_DVD),
401            390 => Some(OsCode::KEY_AUX),
402            391 => Some(OsCode::KEY_MP3),
403            392 => Some(OsCode::KEY_AUDIO),
404            393 => Some(OsCode::KEY_VIDEO),
405            394 => Some(OsCode::KEY_DIRECTORY),
406            395 => Some(OsCode::KEY_LIST),
407            396 => Some(OsCode::KEY_MEMO),
408            397 => Some(OsCode::KEY_CALENDAR),
409            398 => Some(OsCode::KEY_RED),
410            399 => Some(OsCode::KEY_GREEN),
411            400 => Some(OsCode::KEY_YELLOW),
412            401 => Some(OsCode::KEY_BLUE),
413            402 => Some(OsCode::KEY_CHANNELUP),
414            403 => Some(OsCode::KEY_CHANNELDOWN),
415            404 => Some(OsCode::KEY_FIRST),
416            405 => Some(OsCode::KEY_LAST),
417            406 => Some(OsCode::KEY_AB),
418            407 => Some(OsCode::KEY_NEXT),
419            408 => Some(OsCode::KEY_RESTART),
420            409 => Some(OsCode::KEY_SLOW),
421            410 => Some(OsCode::KEY_SHUFFLE),
422            411 => Some(OsCode::KEY_BREAK),
423            412 => Some(OsCode::KEY_PREVIOUS),
424            413 => Some(OsCode::KEY_DIGITS),
425            414 => Some(OsCode::KEY_TEEN),
426            415 => Some(OsCode::KEY_TWEN),
427            416 => Some(OsCode::KEY_VIDEOPHONE),
428            417 => Some(OsCode::KEY_GAMES),
429            418 => Some(OsCode::KEY_ZOOMIN),
430            419 => Some(OsCode::KEY_ZOOMOUT),
431            420 => Some(OsCode::KEY_ZOOMRESET),
432            421 => Some(OsCode::KEY_WORDPROCESSOR),
433            422 => Some(OsCode::KEY_EDITOR),
434            423 => Some(OsCode::KEY_SPREADSHEET),
435            424 => Some(OsCode::KEY_GRAPHICSEDITOR),
436            425 => Some(OsCode::KEY_PRESENTATION),
437            426 => Some(OsCode::KEY_DATABASE),
438            427 => Some(OsCode::KEY_NEWS),
439            428 => Some(OsCode::KEY_VOICEMAIL),
440            429 => Some(OsCode::KEY_ADDRESSBOOK),
441            430 => Some(OsCode::KEY_MESSENGER),
442            431 => Some(OsCode::KEY_DISPLAYTOGGLE),
443            432 => Some(OsCode::KEY_SPELLCHECK),
444            433 => Some(OsCode::KEY_LOGOFF),
445            434 => Some(OsCode::KEY_DOLLAR),
446            435 => Some(OsCode::KEY_EURO),
447            436 => Some(OsCode::KEY_FRAMEBACK),
448            437 => Some(OsCode::KEY_FRAMEFORWARD),
449            438 => Some(OsCode::KEY_CONTEXT_MENU),
450            439 => Some(OsCode::KEY_MEDIA_REPEAT),
451            440 => Some(OsCode::KEY_10CHANNELSUP),
452            441 => Some(OsCode::KEY_10CHANNELSDOWN),
453            442 => Some(OsCode::KEY_IMAGES),
454            443 => Some(OsCode::KEY_443),
455            444 => Some(OsCode::KEY_444),
456            445 => Some(OsCode::KEY_445),
457            446 => Some(OsCode::KEY_446),
458            447 => Some(OsCode::KEY_447),
459            448 => Some(OsCode::KEY_DEL_EOL),
460            449 => Some(OsCode::KEY_DEL_EOS),
461            450 => Some(OsCode::KEY_INS_LINE),
462            451 => Some(OsCode::KEY_DEL_LINE),
463            452 => Some(OsCode::KEY_452),
464            453 => Some(OsCode::KEY_453),
465            454 => Some(OsCode::KEY_454),
466            455 => Some(OsCode::KEY_455),
467            456 => Some(OsCode::KEY_456),
468            457 => Some(OsCode::KEY_457),
469            458 => Some(OsCode::KEY_458),
470            459 => Some(OsCode::KEY_459),
471            460 => Some(OsCode::KEY_460),
472            461 => Some(OsCode::KEY_461),
473            462 => Some(OsCode::KEY_462),
474            463 => Some(OsCode::KEY_463),
475            464 => Some(OsCode::KEY_FN),
476            465 => Some(OsCode::KEY_FN_ESC),
477            466 => Some(OsCode::KEY_FN_F1),
478            467 => Some(OsCode::KEY_FN_F2),
479            468 => Some(OsCode::KEY_FN_F3),
480            469 => Some(OsCode::KEY_FN_F4),
481            470 => Some(OsCode::KEY_FN_F5),
482            471 => Some(OsCode::KEY_FN_F6),
483            472 => Some(OsCode::KEY_FN_F7),
484            473 => Some(OsCode::KEY_FN_F8),
485            474 => Some(OsCode::KEY_FN_F9),
486            475 => Some(OsCode::KEY_FN_F10),
487            476 => Some(OsCode::KEY_FN_F11),
488            477 => Some(OsCode::KEY_FN_F12),
489            478 => Some(OsCode::KEY_FN_1),
490            479 => Some(OsCode::KEY_FN_2),
491            480 => Some(OsCode::KEY_FN_D),
492            481 => Some(OsCode::KEY_FN_E),
493            482 => Some(OsCode::KEY_FN_F),
494            483 => Some(OsCode::KEY_FN_S),
495            484 => Some(OsCode::KEY_FN_B),
496            485 => Some(OsCode::KEY_485),
497            486 => Some(OsCode::KEY_486),
498            487 => Some(OsCode::KEY_487),
499            488 => Some(OsCode::KEY_488),
500            489 => Some(OsCode::KEY_489),
501            490 => Some(OsCode::KEY_490),
502            491 => Some(OsCode::KEY_491),
503            492 => Some(OsCode::KEY_492),
504            493 => Some(OsCode::KEY_493),
505            494 => Some(OsCode::KEY_494),
506            495 => Some(OsCode::KEY_495),
507            496 => Some(OsCode::KEY_496),
508            497 => Some(OsCode::KEY_BRL_DOT1),
509            498 => Some(OsCode::KEY_BRL_DOT2),
510            499 => Some(OsCode::KEY_BRL_DOT3),
511            500 => Some(OsCode::KEY_BRL_DOT4),
512            501 => Some(OsCode::KEY_BRL_DOT5),
513            502 => Some(OsCode::KEY_BRL_DOT6),
514            503 => Some(OsCode::KEY_BRL_DOT7),
515            504 => Some(OsCode::KEY_BRL_DOT8),
516            505 => Some(OsCode::KEY_BRL_DOT9),
517            506 => Some(OsCode::KEY_BRL_DOT10),
518            507 => Some(OsCode::KEY_507),
519            508 => Some(OsCode::KEY_508),
520            509 => Some(OsCode::KEY_509),
521            510 => Some(OsCode::KEY_510),
522            511 => Some(OsCode::KEY_511),
523            512 => Some(OsCode::KEY_NUMERIC_0),
524            513 => Some(OsCode::KEY_NUMERIC_1),
525            514 => Some(OsCode::KEY_NUMERIC_2),
526            515 => Some(OsCode::KEY_NUMERIC_3),
527            516 => Some(OsCode::KEY_NUMERIC_4),
528            517 => Some(OsCode::KEY_NUMERIC_5),
529            518 => Some(OsCode::KEY_NUMERIC_6),
530            519 => Some(OsCode::KEY_NUMERIC_7),
531            520 => Some(OsCode::KEY_NUMERIC_8),
532            521 => Some(OsCode::KEY_NUMERIC_9),
533            522 => Some(OsCode::KEY_NUMERIC_STAR),
534            523 => Some(OsCode::KEY_NUMERIC_POUND),
535            524 => Some(OsCode::KEY_NUMERIC_A),
536            525 => Some(OsCode::KEY_NUMERIC_B),
537            526 => Some(OsCode::KEY_NUMERIC_C),
538            527 => Some(OsCode::KEY_NUMERIC_D),
539            528 => Some(OsCode::KEY_CAMERA_FOCUS),
540            529 => Some(OsCode::KEY_WPS_BUTTON),
541            530 => Some(OsCode::KEY_TOUCHPAD_TOGGLE),
542            531 => Some(OsCode::KEY_TOUCHPAD_ON),
543            532 => Some(OsCode::KEY_TOUCHPAD_OFF),
544            533 => Some(OsCode::KEY_CAMERA_ZOOMIN),
545            534 => Some(OsCode::KEY_CAMERA_ZOOMOUT),
546            535 => Some(OsCode::KEY_CAMERA_UP),
547            536 => Some(OsCode::KEY_CAMERA_DOWN),
548            537 => Some(OsCode::KEY_CAMERA_LEFT),
549            538 => Some(OsCode::KEY_CAMERA_RIGHT),
550            539 => Some(OsCode::KEY_ATTENDANT_ON),
551            540 => Some(OsCode::KEY_ATTENDANT_OFF),
552            541 => Some(OsCode::KEY_ATTENDANT_TOGGLE),
553            542 => Some(OsCode::KEY_LIGHTS_TOGGLE),
554            543 => Some(OsCode::KEY_543),
555            544 => Some(OsCode::BTN_DPAD_UP),
556            545 => Some(OsCode::BTN_DPAD_DOWN),
557            546 => Some(OsCode::BTN_DPAD_LEFT),
558            547 => Some(OsCode::BTN_DPAD_RIGHT),
559            548 => Some(OsCode::KEY_548),
560            549 => Some(OsCode::KEY_549),
561            550 => Some(OsCode::KEY_550),
562            551 => Some(OsCode::KEY_551),
563            552 => Some(OsCode::KEY_552),
564            553 => Some(OsCode::KEY_553),
565            554 => Some(OsCode::KEY_554),
566            555 => Some(OsCode::KEY_555),
567            556 => Some(OsCode::KEY_556),
568            557 => Some(OsCode::KEY_557),
569            558 => Some(OsCode::KEY_558),
570            559 => Some(OsCode::KEY_559),
571            560 => Some(OsCode::KEY_ALS_TOGGLE),
572            561 => Some(OsCode::KEY_ROTATE_LOCK_TOGGLE),
573            562 => Some(OsCode::KEY_562),
574            563 => Some(OsCode::KEY_563),
575            564 => Some(OsCode::KEY_564),
576            565 => Some(OsCode::KEY_565),
577            566 => Some(OsCode::KEY_566),
578            567 => Some(OsCode::KEY_567),
579            568 => Some(OsCode::KEY_568),
580            569 => Some(OsCode::KEY_569),
581            570 => Some(OsCode::KEY_570),
582            571 => Some(OsCode::KEY_571),
583            572 => Some(OsCode::KEY_572),
584            573 => Some(OsCode::KEY_573),
585            574 => Some(OsCode::KEY_574),
586            575 => Some(OsCode::KEY_575),
587            576 => Some(OsCode::KEY_BUTTONCONFIG),
588            577 => Some(OsCode::KEY_TASKMANAGER),
589            578 => Some(OsCode::KEY_JOURNAL),
590            579 => Some(OsCode::KEY_CONTROLPANEL),
591            580 => Some(OsCode::KEY_APPSELECT),
592            581 => Some(OsCode::KEY_SCREENSAVER),
593            582 => Some(OsCode::KEY_VOICECOMMAND),
594            583 => Some(OsCode::KEY_ASSISTANT),
595            584 => Some(OsCode::KEY_KBD_LAYOUT_NEXT),
596            585 => Some(OsCode::KEY_585),
597            586 => Some(OsCode::KEY_586),
598            587 => Some(OsCode::KEY_587),
599            588 => Some(OsCode::KEY_588),
600            589 => Some(OsCode::KEY_589),
601            590 => Some(OsCode::KEY_590),
602            591 => Some(OsCode::KEY_591),
603            592 => Some(OsCode::KEY_BRIGHTNESS_MIN),
604            593 => Some(OsCode::KEY_BRIGHTNESS_MAX),
605            594 => Some(OsCode::KEY_594),
606            595 => Some(OsCode::KEY_595),
607            596 => Some(OsCode::KEY_596),
608            597 => Some(OsCode::KEY_597),
609            598 => Some(OsCode::KEY_598),
610            599 => Some(OsCode::KEY_599),
611            600 => Some(OsCode::KEY_600),
612            601 => Some(OsCode::KEY_601),
613            602 => Some(OsCode::KEY_602),
614            603 => Some(OsCode::KEY_603),
615            604 => Some(OsCode::KEY_604),
616            605 => Some(OsCode::KEY_605),
617            606 => Some(OsCode::KEY_606),
618            607 => Some(OsCode::KEY_607),
619            608 => Some(OsCode::KEY_KBDINPUTASSIST_PREV),
620            609 => Some(OsCode::KEY_KBDINPUTASSIST_NEXT),
621            610 => Some(OsCode::KEY_KBDINPUTASSIST_PREVGROUP),
622            611 => Some(OsCode::KEY_KBDINPUTASSIST_NEXTGROUP),
623            612 => Some(OsCode::KEY_KBDINPUTASSIST_ACCEPT),
624            613 => Some(OsCode::KEY_KBDINPUTASSIST_CANCEL),
625            614 => Some(OsCode::KEY_RIGHT_UP),
626            615 => Some(OsCode::KEY_RIGHT_DOWN),
627            616 => Some(OsCode::KEY_LEFT_UP),
628            617 => Some(OsCode::KEY_LEFT_DOWN),
629            618 => Some(OsCode::KEY_ROOT_MENU),
630            619 => Some(OsCode::KEY_MEDIA_TOP_MENU),
631            620 => Some(OsCode::KEY_NUMERIC_11),
632            621 => Some(OsCode::KEY_NUMERIC_12),
633            622 => Some(OsCode::KEY_AUDIO_DESC),
634            623 => Some(OsCode::KEY_3D_MODE),
635            624 => Some(OsCode::KEY_NEXT_FAVORITE),
636            625 => Some(OsCode::KEY_STOP_RECORD),
637            626 => Some(OsCode::KEY_PAUSE_RECORD),
638            627 => Some(OsCode::KEY_VOD),
639            628 => Some(OsCode::KEY_UNMUTE),
640            629 => Some(OsCode::KEY_FASTREVERSE),
641            630 => Some(OsCode::KEY_SLOWREVERSE),
642            631 => Some(OsCode::KEY_DATA),
643            632 => Some(OsCode::KEY_ONSCREEN_KEYBOARD),
644            633 => Some(OsCode::KEY_633),
645            634 => Some(OsCode::KEY_634),
646            635 => Some(OsCode::KEY_635),
647            636 => Some(OsCode::KEY_636),
648            637 => Some(OsCode::KEY_637),
649            638 => Some(OsCode::KEY_638),
650            639 => Some(OsCode::KEY_639),
651            640 => Some(OsCode::KEY_640),
652            641 => Some(OsCode::KEY_641),
653            642 => Some(OsCode::KEY_642),
654            643 => Some(OsCode::KEY_643),
655            644 => Some(OsCode::KEY_644),
656            645 => Some(OsCode::KEY_645),
657            646 => Some(OsCode::KEY_646),
658            647 => Some(OsCode::KEY_647),
659            648 => Some(OsCode::KEY_648),
660            649 => Some(OsCode::KEY_649),
661            650 => Some(OsCode::KEY_650),
662            651 => Some(OsCode::KEY_651),
663            652 => Some(OsCode::KEY_652),
664            653 => Some(OsCode::KEY_653),
665            654 => Some(OsCode::KEY_654),
666            655 => Some(OsCode::KEY_655),
667            656 => Some(OsCode::KEY_656),
668            657 => Some(OsCode::KEY_657),
669            658 => Some(OsCode::KEY_658),
670            659 => Some(OsCode::KEY_659),
671            660 => Some(OsCode::KEY_660),
672            661 => Some(OsCode::KEY_661),
673            662 => Some(OsCode::KEY_662),
674            663 => Some(OsCode::KEY_663),
675            664 => Some(OsCode::KEY_664),
676            665 => Some(OsCode::KEY_665),
677            666 => Some(OsCode::KEY_666),
678            667 => Some(OsCode::KEY_667),
679            668 => Some(OsCode::KEY_668),
680            669 => Some(OsCode::KEY_669),
681            670 => Some(OsCode::KEY_670),
682            671 => Some(OsCode::KEY_671),
683            672 => Some(OsCode::KEY_672),
684            673 => Some(OsCode::KEY_673),
685            674 => Some(OsCode::KEY_674),
686            675 => Some(OsCode::KEY_675),
687            676 => Some(OsCode::KEY_676),
688            677 => Some(OsCode::KEY_677),
689            678 => Some(OsCode::KEY_678),
690            679 => Some(OsCode::KEY_679),
691            680 => Some(OsCode::KEY_680),
692            681 => Some(OsCode::KEY_681),
693            682 => Some(OsCode::KEY_682),
694            683 => Some(OsCode::KEY_683),
695            684 => Some(OsCode::KEY_684),
696            685 => Some(OsCode::KEY_685),
697            686 => Some(OsCode::KEY_686),
698            687 => Some(OsCode::KEY_687),
699            688 => Some(OsCode::KEY_688),
700            689 => Some(OsCode::KEY_689),
701            690 => Some(OsCode::KEY_690),
702            691 => Some(OsCode::KEY_691),
703            692 => Some(OsCode::KEY_692),
704            693 => Some(OsCode::KEY_693),
705            694 => Some(OsCode::KEY_694),
706            695 => Some(OsCode::KEY_695),
707            696 => Some(OsCode::KEY_696),
708            697 => Some(OsCode::KEY_697),
709            698 => Some(OsCode::KEY_698),
710            699 => Some(OsCode::KEY_699),
711            700 => Some(OsCode::KEY_700),
712            701 => Some(OsCode::KEY_701),
713            702 => Some(OsCode::KEY_702),
714            703 => Some(OsCode::KEY_703),
715            704 => Some(OsCode::BTN_TRIGGER_HAPPY1),
716            705 => Some(OsCode::BTN_TRIGGER_HAPPY2),
717            706 => Some(OsCode::BTN_TRIGGER_HAPPY3),
718            707 => Some(OsCode::BTN_TRIGGER_HAPPY4),
719            708 => Some(OsCode::BTN_TRIGGER_HAPPY5),
720            709 => Some(OsCode::BTN_TRIGGER_HAPPY6),
721            710 => Some(OsCode::BTN_TRIGGER_HAPPY7),
722            711 => Some(OsCode::BTN_TRIGGER_HAPPY8),
723            712 => Some(OsCode::BTN_TRIGGER_HAPPY9),
724            713 => Some(OsCode::BTN_TRIGGER_HAPPY10),
725            714 => Some(OsCode::BTN_TRIGGER_HAPPY11),
726            715 => Some(OsCode::BTN_TRIGGER_HAPPY12),
727            716 => Some(OsCode::BTN_TRIGGER_HAPPY13),
728            717 => Some(OsCode::BTN_TRIGGER_HAPPY14),
729            718 => Some(OsCode::BTN_TRIGGER_HAPPY15),
730            719 => Some(OsCode::BTN_TRIGGER_HAPPY16),
731            720 => Some(OsCode::BTN_TRIGGER_HAPPY17),
732            721 => Some(OsCode::BTN_TRIGGER_HAPPY18),
733            722 => Some(OsCode::BTN_TRIGGER_HAPPY19),
734            723 => Some(OsCode::BTN_TRIGGER_HAPPY20),
735            724 => Some(OsCode::BTN_TRIGGER_HAPPY21),
736            725 => Some(OsCode::BTN_TRIGGER_HAPPY22),
737            726 => Some(OsCode::BTN_TRIGGER_HAPPY23),
738            727 => Some(OsCode::BTN_TRIGGER_HAPPY24),
739            728 => Some(OsCode::BTN_TRIGGER_HAPPY25),
740            729 => Some(OsCode::BTN_TRIGGER_HAPPY26),
741            730 => Some(OsCode::BTN_TRIGGER_HAPPY27),
742            731 => Some(OsCode::BTN_TRIGGER_HAPPY28),
743            732 => Some(OsCode::BTN_TRIGGER_HAPPY29),
744            733 => Some(OsCode::BTN_TRIGGER_HAPPY30),
745            734 => Some(OsCode::BTN_TRIGGER_HAPPY31),
746            735 => Some(OsCode::BTN_TRIGGER_HAPPY32),
747            736 => Some(OsCode::BTN_TRIGGER_HAPPY33),
748            737 => Some(OsCode::BTN_TRIGGER_HAPPY34),
749            738 => Some(OsCode::BTN_TRIGGER_HAPPY35),
750            739 => Some(OsCode::BTN_TRIGGER_HAPPY36),
751            740 => Some(OsCode::BTN_TRIGGER_HAPPY37),
752            741 => Some(OsCode::BTN_TRIGGER_HAPPY38),
753            742 => Some(OsCode::BTN_TRIGGER_HAPPY39),
754            743 => Some(OsCode::BTN_TRIGGER_HAPPY40),
755            744 => Some(OsCode::BTN_MAX),
756            745 => Some(OsCode::MouseWheelUp),
757            746 => Some(OsCode::MouseWheelDown),
758            747 => Some(OsCode::MouseWheelLeft),
759            748 => Some(OsCode::MouseWheelRight),
760            767 => Some(OsCode::KEY_MAX),
761            _ => None,
762        }
763    }
764}
765
766use crate::custom_action::Btn;
767impl From<Btn> for OsCode {
768    fn from(btn: Btn) -> Self {
769        match btn {
770            Btn::Left => OsCode::BTN_LEFT,
771            Btn::Right => OsCode::BTN_RIGHT,
772            Btn::Mid => OsCode::BTN_MIDDLE,
773            Btn::Forward => OsCode::BTN_EXTRA,
774            Btn::Backward => OsCode::BTN_SIDE,
775        }
776    }
777}