1 /// bindings to /usr/include/linux/input-event-codes.h
2 /// Copyright © 2017-2021 Rémi Thebault
3 module linux.input;
4 /*
5  * Input event codes
6  *
7  * Copyright (c) 1999-2002 Vojtech Pavlik
8  * Copyright (c) 2015 Hans de Goede <hdegoede@redhat.com>
9  *
10  * This program is free software; you can redistribute it and/or modify it
11  * under the terms of the GNU General Public License version 2 as published by
12  * the Free Software Foundation.
13  */
14 
15 /*
16  * Device properties and quirks
17  */
18 
19 enum INPUT_PROP_POINTER = 0x00;         // needs a pointer
20 enum INPUT_PROP_DIRECT = 0x01;          // direct input devices
21 enum INPUT_PROP_BUTTONPAD = 0x02;       // has button(s) under pad
22 enum INPUT_PROP_SEMI_MT = 0x03;         // touch rectangle only
23 enum INPUT_PROP_TOPBUTTONPAD = 0x04;    // softbuttons at top of pad
24 enum INPUT_PROP_POINTING_STICK = 0x05;  // is a pointing stick
25 enum INPUT_PROP_ACCELEROMETER = 0x06;   // has accelerometer
26 
27 enum INPUT_PROP_MAX = 0x1f;
28 enum INPUT_PROP_CNT = INPUT_PROP_MAX+1;
29 
30 /*
31  * Event types
32  */
33 
34 enum EV_SYN = 0x00;
35 enum EV_KEY = 0x01;
36 enum EV_REL = 0x02;
37 enum EV_ABS = 0x03;
38 enum EV_MSC = 0x04;
39 enum EV_SW = 0x05;
40 enum EV_LED = 0x11;
41 enum EV_SND = 0x12;
42 enum EV_REP = 0x14;
43 enum EV_FF = 0x15;
44 enum EV_PWR = 0x16;
45 enum EV_FF_STATUS = 0x17;
46 enum EV_MAX = 0x1f;
47 enum EV_CNT = EV_MAX+1;
48 
49 /*
50  * Synchronization events.
51  */
52 
53 enum SYN_REPORT = 0;
54 enum SYN_CONFIG = 1;
55 enum SYN_MT_REPORT = 2;
56 enum SYN_DROPPED = 3;
57 enum SYN_MAX = 0xf;
58 enum SYN_CNT = SYN_MAX+1;
59 
60 /*
61  * Keys and buttons
62  *
63  * Most of the keys/buttons are modeled after USB HUT 1.12
64  * (see http://www.usb.org/developers/hidpage).
65  * Abbreviations in the comments:
66  * AC - Application Control
67  * AL - Application Launch Button
68  * SC - System Control
69  */
70 
71 enum KEY_RESERVED = 0;
72 enum KEY_ESC = 1;
73 enum KEY_1 = 2;
74 enum KEY_2 = 3;
75 enum KEY_3 = 4;
76 enum KEY_4 = 5;
77 enum KEY_5 = 6;
78 enum KEY_6 = 7;
79 enum KEY_7 = 8;
80 enum KEY_8 = 9;
81 enum KEY_9 = 10;
82 enum KEY_0 = 11;
83 enum KEY_MINUS = 12;
84 enum KEY_EQUAL = 13;
85 enum KEY_BACKSPACE = 14;
86 enum KEY_TAB = 15;
87 enum KEY_Q = 16;
88 enum KEY_W = 17;
89 enum KEY_E = 18;
90 enum KEY_R = 19;
91 enum KEY_T = 20;
92 enum KEY_Y = 21;
93 enum KEY_U = 22;
94 enum KEY_I = 23;
95 enum KEY_O = 24;
96 enum KEY_P = 25;
97 enum KEY_LEFTBRACE = 26;
98 enum KEY_RIGHTBRACE = 27;
99 enum KEY_ENTER = 28;
100 enum KEY_LEFTCTRL = 29;
101 enum KEY_A = 30;
102 enum KEY_S = 31;
103 enum KEY_D = 32;
104 enum KEY_F = 33;
105 enum KEY_G = 34;
106 enum KEY_H = 35;
107 enum KEY_J = 36;
108 enum KEY_K = 37;
109 enum KEY_L = 38;
110 enum KEY_SEMICOLON = 39;
111 enum KEY_APOSTROPHE = 40;
112 enum KEY_GRAVE = 41;
113 enum KEY_LEFTSHIFT = 42;
114 enum KEY_BACKSLASH = 43;
115 enum KEY_Z = 44;
116 enum KEY_X = 45;
117 enum KEY_C = 46;
118 enum KEY_V = 47;
119 enum KEY_B = 48;
120 enum KEY_N = 49;
121 enum KEY_M = 50;
122 enum KEY_COMMA = 51;
123 enum KEY_DOT = 52;
124 enum KEY_SLASH = 53;
125 enum KEY_RIGHTSHIFT = 54;
126 enum KEY_KPASTERISK = 55;
127 enum KEY_LEFTALT = 56;
128 enum KEY_SPACE = 57;
129 enum KEY_CAPSLOCK = 58;
130 enum KEY_F1 = 59;
131 enum KEY_F2 = 60;
132 enum KEY_F3 = 61;
133 enum KEY_F4 = 62;
134 enum KEY_F5 = 63;
135 enum KEY_F6 = 64;
136 enum KEY_F7 = 65;
137 enum KEY_F8 = 66;
138 enum KEY_F9 = 67;
139 enum KEY_F10 = 68;
140 enum KEY_NUMLOCK = 69;
141 enum KEY_SCROLLLOCK = 70;
142 enum KEY_KP7 = 71;
143 enum KEY_KP8 = 72;
144 enum KEY_KP9 = 73;
145 enum KEY_KPMINUS = 74;
146 enum KEY_KP4 = 75;
147 enum KEY_KP5 = 76;
148 enum KEY_KP6 = 77;
149 enum KEY_KPPLUS = 78;
150 enum KEY_KP1 = 79;
151 enum KEY_KP2 = 80;
152 enum KEY_KP3 = 81;
153 enum KEY_KP0 = 82;
154 enum KEY_KPDOT = 83;
155 
156 enum KEY_ZENKAKUHANKAKU = 85;
157 enum KEY_102ND = 86;
158 enum KEY_F11 = 87;
159 enum KEY_F12 = 88;
160 enum KEY_RO = 89;
161 enum KEY_KATAKANA = 90;
162 enum KEY_HIRAGANA = 91;
163 enum KEY_HENKAN = 92;
164 enum KEY_KATAKANAHIRAGANA = 93;
165 enum KEY_MUHENKAN = 94;
166 enum KEY_KPJPCOMMA = 95;
167 enum KEY_KPENTER = 96;
168 enum KEY_RIGHTCTRL = 97;
169 enum KEY_KPSLASH = 98;
170 enum KEY_SYSRQ = 99;
171 enum KEY_RIGHTALT = 100;
172 enum KEY_LINEFEED = 101;
173 enum KEY_HOME = 102;
174 enum KEY_UP = 103;
175 enum KEY_PAGEUP = 104;
176 enum KEY_LEFT = 105;
177 enum KEY_RIGHT = 106;
178 enum KEY_END = 107;
179 enum KEY_DOWN = 108;
180 enum KEY_PAGEDOWN = 109;
181 enum KEY_INSERT = 110;
182 enum KEY_DELETE = 111;
183 enum KEY_MACRO = 112;
184 enum KEY_MUTE = 113;
185 enum KEY_VOLUMEDOWN = 114;
186 enum KEY_VOLUMEUP = 115;
187 enum KEY_POWER = 116;    // SC System Power Down
188 enum KEY_KPEQUAL = 117;
189 enum KEY_KPPLUSMINUS = 118;
190 enum KEY_PAUSE = 119;
191 enum KEY_SCALE = 120;    // AL Compiz Scale (Expose)
192 
193 enum KEY_KPCOMMA = 121;
194 enum KEY_HANGEUL = 122;
195 enum KEY_HANGUEL = KEY_HANGEUL;
196 enum KEY_HANJA = 123;
197 enum KEY_YEN = 124;
198 enum KEY_LEFTMETA = 125;
199 enum KEY_RIGHTMETA = 126;
200 enum KEY_COMPOSE = 127;
201 
202 enum KEY_STOP = 128;    // AC Stop
203 enum KEY_AGAIN = 129;
204 enum KEY_PROPS = 130;    // AC Properties
205 enum KEY_UNDO = 131;    // AC Undo
206 enum KEY_FRONT = 132;
207 enum KEY_COPY = 133;    // AC Copy
208 enum KEY_OPEN = 134;    // AC Open
209 enum KEY_PASTE = 135;    // AC Paste
210 enum KEY_FIND = 136;    // AC Search
211 enum KEY_CUT = 137;        // AC Cut
212 enum KEY_HELP = 138;    // AL Integrated Help Center
213 enum KEY_MENU = 139;    // Menu (show menu)
214 enum KEY_CALC = 140;    // AL Calculator
215 enum KEY_SETUP = 141;
216 enum KEY_SLEEP = 142;    // SC System Sleep
217 enum KEY_WAKEUP = 143;    // System Wake Up
218 enum KEY_FILE = 144;    // AL Local Machine Browser
219 enum KEY_SENDFILE = 145;
220 enum KEY_DELETEFILE = 146;
221 enum KEY_XFER = 147;
222 enum KEY_PROG1 = 148;
223 enum KEY_PROG2 = 149;
224 enum KEY_WWW = 150;        // AL Internet Browser
225 enum KEY_MSDOS = 151;
226 enum KEY_COFFEE = 152;    // AL Terminal Lock/Screensaver
227 enum KEY_SCREENLOCK = KEY_COFFEE;
228 enum KEY_ROTATE_DISPLAY = 153;    // Display orientation for e.g. tablets
229 enum KEY_DIRECTION = KEY_ROTATE_DISPLAY;
230 enum KEY_CYCLEWINDOWS = 154;
231 enum KEY_MAIL = 155;
232 enum KEY_BOOKMARKS = 156;    // AC Bookmarks
233 enum KEY_COMPUTER = 157;
234 enum KEY_BACK = 158;        // AC Back
235 enum KEY_FORWARD = 159;        // AC Forward
236 enum KEY_CLOSECD = 160;
237 enum KEY_EJECTCD = 161;
238 enum KEY_EJECTCLOSECD = 162;
239 enum KEY_NEXTSONG = 163;
240 enum KEY_PLAYPAUSE = 164;
241 enum KEY_PREVIOUSSONG = 165;
242 enum KEY_STOPCD = 166;
243 enum KEY_RECORD = 167;
244 enum KEY_REWIND = 168;
245 enum KEY_PHONE = 169;        // Media Select Telephone
246 enum KEY_ISO = 170;
247 enum KEY_CONFIG = 171;        // AL Consumer Control Configuration
248 enum KEY_HOMEPAGE = 172;    // AC Home
249 enum KEY_REFRESH = 173;        // AC Refresh
250 enum KEY_EXIT = 174;        // AC Exit
251 enum KEY_MOVE = 175;
252 enum KEY_EDIT = 176;
253 enum KEY_SCROLLUP = 177;
254 enum KEY_SCROLLDOWN = 178;
255 enum KEY_KPLEFTPAREN = 179;
256 enum KEY_KPRIGHTPAREN = 180;
257 enum KEY_NEW = 181;            // AC New
258 enum KEY_REDO = 182;        // AC Redo/Repeat
259 
260 enum KEY_F13 = 183;
261 enum KEY_F14 = 184;
262 enum KEY_F15 = 185;
263 enum KEY_F16 = 186;
264 enum KEY_F17 = 187;
265 enum KEY_F18 = 188;
266 enum KEY_F19 = 189;
267 enum KEY_F20 = 190;
268 enum KEY_F21 = 191;
269 enum KEY_F22 = 192;
270 enum KEY_F23 = 193;
271 enum KEY_F24 = 194;
272 
273 enum KEY_PLAYCD = 200;
274 enum KEY_PAUSECD = 201;
275 enum KEY_PROG3 = 202;
276 enum KEY_PROG4 = 203;
277 enum KEY_DASHBOARD = 204;    // AL Dashboard
278 enum KEY_SUSPEND = 205;
279 enum KEY_CLOSE = 206;        // AC Close
280 enum KEY_PLAY = 207;
281 enum KEY_FASTFORWARD = 208;
282 enum KEY_BASSBOOST = 209;
283 enum KEY_PRINT = 210;        // AC Print
284 enum KEY_HP = 211;
285 enum KEY_CAMERA = 212;
286 enum KEY_SOUND = 213;
287 enum KEY_QUESTION = 214;
288 enum KEY_EMAIL = 215;
289 enum KEY_CHAT = 216;
290 enum KEY_SEARCH = 217;
291 enum KEY_CONNECT = 218;
292 enum KEY_FINANCE = 219;        // AL Checkbook/Finance
293 enum KEY_SPORT = 220;
294 enum KEY_SHOP = 221;
295 enum KEY_ALTERASE = 222;
296 enum KEY_CANCEL = 223;        // AC Cancel
297 enum KEY_BRIGHTNESSDOWN = 224;
298 enum KEY_BRIGHTNESSUP = 225;
299 enum KEY_MEDIA = 226;
300 
301 enum KEY_SWITCHVIDEOMODE = 227;    /* Cycle between available video;
302                        outputs (Monitor/LCD/TV-out/etc) */
303 enum KEY_KBDILLUMTOGGLE = 228;
304 enum KEY_KBDILLUMDOWN = 229;
305 enum KEY_KBDILLUMUP = 230;
306 
307 enum KEY_SEND = 231;    // AC Send
308 enum KEY_REPLY = 232;    // AC Reply
309 enum KEY_FORWARDMAIL = 233;    // AC Forward Msg
310 enum KEY_SAVE = 234;    // AC Save
311 enum KEY_DOCUMENTS = 235;
312 
313 enum KEY_BATTERY = 236;
314 
315 enum KEY_BLUETOOTH = 237;
316 enum KEY_WLAN = 238;
317 enum KEY_UWB = 239;
318 
319 enum KEY_UNKNOWN = 240;
320 
321 enum KEY_VIDEO_NEXT = 241;          // drive next video source
322 enum KEY_VIDEO_PREV = 242;          // drive previous video source
323 enum KEY_BRIGHTNESS_CYCLE = 243;    // brightness up, after max is min
324 enum KEY_BRIGHTNESS_AUTO = 244;     /+ Set Auto Brightness: manual;
325                                        brightness control is off,
326                                        rely on ambient +/
327 enum KEY_BRIGHTNESS_ZERO = KEY_BRIGHTNESS_AUTO;
328 enum KEY_DISPLAY_OFF = 245;         // display device to off state
329 
330 enum KEY_WWAN = 246;                // Wireless WAN (LTE, UMTS, GSM, etc.)
331 enum KEY_WIMAX = KEY_WWAN;
332 enum KEY_RFKILL = 247;              // Key that controls all radios
333 
334 enum KEY_MICMUTE = 248;             // Mute / unmute the microphone
335 
336 /* Code 255 is reserved for special needs of AT keyboard driver */
337 
338 enum BTN_MISC = 0x100;
339 enum BTN_0 = 0x100;
340 enum BTN_1 = 0x101;
341 enum BTN_2 = 0x102;
342 enum BTN_3 = 0x103;
343 enum BTN_4 = 0x104;
344 enum BTN_5 = 0x105;
345 enum BTN_6 = 0x106;
346 enum BTN_7 = 0x107;
347 enum BTN_8 = 0x108;
348 enum BTN_9 = 0x109;
349 
350 enum BTN_MOUSE = 0x110;
351 enum BTN_LEFT = 0x110;
352 enum BTN_RIGHT = 0x111;
353 enum BTN_MIDDLE = 0x112;
354 enum BTN_SIDE = 0x113;
355 enum BTN_EXTRA = 0x114;
356 enum BTN_FORWARD = 0x115;
357 enum BTN_BACK = 0x116;
358 enum BTN_TASK = 0x117;
359 
360 enum BTN_JOYSTICK = 0x120;
361 enum BTN_TRIGGER = 0x120;
362 enum BTN_THUMB = 0x121;
363 enum BTN_THUMB2 = 0x122;
364 enum BTN_TOP = 0x123;
365 enum BTN_TOP2 = 0x124;
366 enum BTN_PINKIE = 0x125;
367 enum BTN_BASE = 0x126;
368 enum BTN_BASE2 = 0x127;
369 enum BTN_BASE3 = 0x128;
370 enum BTN_BASE4 = 0x129;
371 enum BTN_BASE5 = 0x12a;
372 enum BTN_BASE6 = 0x12b;
373 enum BTN_DEAD = 0x12f;
374 
375 enum BTN_GAMEPAD = 0x130;
376 enum BTN_SOUTH = 0x130;
377 enum BTN_A = BTN_SOUTH;
378 enum BTN_EAST = 0x131;
379 enum BTN_B = BTN_EAST;
380 enum BTN_C = 0x132;
381 enum BTN_NORTH = 0x133;
382 enum BTN_X = BTN_NORTH;
383 enum BTN_WEST = 0x134;
384 enum BTN_Y = BTN_WEST;
385 enum BTN_Z = 0x135;
386 enum BTN_TL = 0x136;
387 enum BTN_TR = 0x137;
388 enum BTN_TL2 = 0x138;
389 enum BTN_TR2 = 0x139;
390 enum BTN_SELECT = 0x13a;
391 enum BTN_START = 0x13b;
392 enum BTN_MODE = 0x13c;
393 enum BTN_THUMBL = 0x13d;
394 enum BTN_THUMBR = 0x13e;
395 
396 enum BTN_DIGI = 0x140;
397 enum BTN_TOOL_PEN = 0x140;
398 enum BTN_TOOL_RUBBER = 0x141;
399 enum BTN_TOOL_BRUSH = 0x142;
400 enum BTN_TOOL_PENCIL = 0x143;
401 enum BTN_TOOL_AIRBRUSH = 0x144;
402 enum BTN_TOOL_FINGER = 0x145;
403 enum BTN_TOOL_MOUSE = 0x146;
404 enum BTN_TOOL_LENS = 0x147;
405 enum BTN_TOOL_QUINTTAP = 0x148;     // Five fingers on trackpad
406 enum BTN_TOUCH = 0x14a;
407 enum BTN_STYLUS = 0x14b;
408 enum BTN_STYLUS2 = 0x14c;
409 enum BTN_TOOL_DOUBLETAP = 0x14d;
410 enum BTN_TOOL_TRIPLETAP = 0x14e;
411 enum BTN_TOOL_QUADTAP = 0x14f;      // Four fingers on trackpad
412 
413 enum BTN_WHEEL = 0x150;
414 enum BTN_GEAR_DOWN = 0x150;
415 enum BTN_GEAR_UP = 0x151;
416 
417 enum KEY_OK = 0x160;
418 enum KEY_SELECT = 0x161;
419 enum KEY_GOTO = 0x162;
420 enum KEY_CLEAR = 0x163;
421 enum KEY_POWER2 = 0x164;
422 enum KEY_OPTION = 0x165;
423 enum KEY_INFO = 0x166;          // AL OEM Features/Tips/Tutorial
424 enum KEY_TIME = 0x167;
425 enum KEY_VENDOR = 0x168;
426 enum KEY_ARCHIVE = 0x169;
427 enum KEY_PROGRAM = 0x16a;       // Media Select Program Guide
428 enum KEY_CHANNEL = 0x16b;
429 enum KEY_FAVORITES = 0x16c;
430 enum KEY_EPG = 0x16d;
431 enum KEY_PVR = 0x16e;           // Media Select Home
432 enum KEY_MHP = 0x16f;
433 enum KEY_LANGUAGE = 0x170;
434 enum KEY_TITLE = 0x171;
435 enum KEY_SUBTITLE = 0x172;
436 enum KEY_ANGLE = 0x173;
437 enum KEY_ZOOM = 0x174;
438 enum KEY_MODE = 0x175;
439 enum KEY_KEYBOARD = 0x176;
440 enum KEY_SCREEN = 0x177;
441 enum KEY_PC = 0x178;            // Media Select Computer
442 enum KEY_TV = 0x179;            // Media Select TV
443 enum KEY_TV2 = 0x17a;           // Media Select Cable
444 enum KEY_VCR = 0x17b;           // Media Select VCR
445 enum KEY_VCR2 = 0x17c;          // VCR Plus
446 enum KEY_SAT = 0x17d;           // Media Select Satellite
447 enum KEY_SAT2 = 0x17e;
448 enum KEY_CD = 0x17f;            // Media Select CD
449 enum KEY_TAPE = 0x180;          // Media Select Tape
450 enum KEY_RADIO = 0x181;
451 enum KEY_TUNER = 0x182;         // Media Select Tuner
452 enum KEY_PLAYER = 0x183;
453 enum KEY_TEXT = 0x184;
454 enum KEY_DVD = 0x185;    // Media Select DVD
455 enum KEY_AUX = 0x186;
456 enum KEY_MP3 = 0x187;
457 enum KEY_AUDIO = 0x188;    // AL Audio Browser
458 enum KEY_VIDEO = 0x189;    // AL Movie Browser
459 enum KEY_DIRECTORY = 0x18a;
460 enum KEY_LIST = 0x18b;
461 enum KEY_MEMO = 0x18c;    // Media Select Messages
462 enum KEY_CALENDAR = 0x18d;
463 enum KEY_RED = 0x18e;
464 enum KEY_GREEN = 0x18f;
465 enum KEY_YELLOW = 0x190;
466 enum KEY_BLUE = 0x191;
467 enum KEY_CHANNELUP = 0x192;         // Channel Increment
468 enum KEY_CHANNELDOWN = 0x193;       // Channel Decrement
469 enum KEY_FIRST = 0x194;
470 enum KEY_LAST = 0x195;              // Recall Last
471 enum KEY_AB = 0x196;
472 enum KEY_NEXT = 0x197;
473 enum KEY_RESTART = 0x198;
474 enum KEY_SLOW = 0x199;
475 enum KEY_SHUFFLE = 0x19a;
476 enum KEY_BREAK = 0x19b;
477 enum KEY_PREVIOUS = 0x19c;
478 enum KEY_DIGITS = 0x19d;
479 enum KEY_TEEN = 0x19e;
480 enum KEY_TWEN = 0x19f;
481 enum KEY_VIDEOPHONE = 0x1a0;    // Media Select Video Phone
482 enum KEY_GAMES = 0x1a1;         // Media Select Games
483 enum KEY_ZOOMIN = 0x1a2;        // AC Zoom In
484 enum KEY_ZOOMOUT = 0x1a3;       // AC Zoom Out
485 enum KEY_ZOOMRESET = 0x1a4;     // AC Zoom
486 enum KEY_WORDPROCESSOR = 0x1a5;    // AL Word Processor
487 enum KEY_EDITOR = 0x1a6;        // AL Text Editor
488 enum KEY_SPREADSHEET = 0x1a7;   // AL Spreadsheet
489 enum KEY_GRAPHICSEDITOR = 0x1a8;    // AL Graphics Editor
490 enum KEY_PRESENTATION = 0x1a9;  // AL Presentation App
491 enum KEY_DATABASE = 0x1aa;      // AL Database App
492 enum KEY_NEWS = 0x1ab;          // AL Newsreader
493 enum KEY_VOICEMAIL = 0x1ac;     // AL Voicemail
494 enum KEY_ADDRESSBOOK = 0x1ad;   // AL Contacts/Address Book
495 enum KEY_MESSENGER = 0x1ae;     // AL Instant Messaging
496 enum KEY_DISPLAYTOGGLE = 0x1af; // Turn display (LCD) on and off
497 enum KEY_BRIGHTNESS_TOGGLE = KEY_DISPLAYTOGGLE;
498 enum KEY_SPELLCHECK = 0x1b0  ;  // AL Spell Check
499 enum KEY_LOGOFF = 0x1b1  ;      // AL Logoff
500 
501 enum KEY_DOLLAR = 0x1b2;
502 enum KEY_EURO = 0x1b3;
503 
504 enum KEY_FRAMEBACK = 0x1b4;         // Consumer - transport controls
505 enum KEY_FRAMEFORWARD = 0x1b5;
506 enum KEY_CONTEXT_MENU = 0x1b6;      // GenDesc - system context menu
507 enum KEY_MEDIA_REPEAT = 0x1b7;      // Consumer - transport control
508 enum KEY_10CHANNELSUP = 0x1b8;      // 10 channels up (10+)
509 enum KEY_10CHANNELSDOWN = 0x1b9;    // 10 channels down (10-)
510 enum KEY_IMAGES = 0x1ba;            // AL Image Browser
511 
512 enum KEY_DEL_EOL = 0x1c0;
513 enum KEY_DEL_EOS = 0x1c1;
514 enum KEY_INS_LINE = 0x1c2;
515 enum KEY_DEL_LINE = 0x1c3;
516 
517 enum KEY_FN = 0x1d0;
518 enum KEY_FN_ESC = 0x1d1;
519 enum KEY_FN_F1 = 0x1d2;
520 enum KEY_FN_F2 = 0x1d3;
521 enum KEY_FN_F3 = 0x1d4;
522 enum KEY_FN_F4 = 0x1d5;
523 enum KEY_FN_F5 = 0x1d6;
524 enum KEY_FN_F6 = 0x1d7;
525 enum KEY_FN_F7 = 0x1d8;
526 enum KEY_FN_F8 = 0x1d9;
527 enum KEY_FN_F9 = 0x1da;
528 enum KEY_FN_F10 = 0x1db;
529 enum KEY_FN_F11 = 0x1dc;
530 enum KEY_FN_F12 = 0x1dd;
531 enum KEY_FN_1 = 0x1de;
532 enum KEY_FN_2 = 0x1df;
533 enum KEY_FN_D = 0x1e0;
534 enum KEY_FN_E = 0x1e1;
535 enum KEY_FN_F = 0x1e2;
536 enum KEY_FN_S = 0x1e3;
537 enum KEY_FN_B = 0x1e4;
538 
539 enum KEY_BRL_DOT1 = 0x1f1;
540 enum KEY_BRL_DOT2 = 0x1f2;
541 enum KEY_BRL_DOT3 = 0x1f3;
542 enum KEY_BRL_DOT4 = 0x1f4;
543 enum KEY_BRL_DOT5 = 0x1f5;
544 enum KEY_BRL_DOT6 = 0x1f6;
545 enum KEY_BRL_DOT7 = 0x1f7;
546 enum KEY_BRL_DOT8 = 0x1f8;
547 enum KEY_BRL_DOT9 = 0x1f9;
548 enum KEY_BRL_DOT10 = 0x1fa;
549 
550 enum KEY_NUMERIC_0 = 0x200;    // used by phones, remote controls,
551 enum KEY_NUMERIC_1 = 0x201;    // and other keypads
552 enum KEY_NUMERIC_2 = 0x202;
553 enum KEY_NUMERIC_3 = 0x203;
554 enum KEY_NUMERIC_4 = 0x204;
555 enum KEY_NUMERIC_5 = 0x205;
556 enum KEY_NUMERIC_6 = 0x206;
557 enum KEY_NUMERIC_7 = 0x207;
558 enum KEY_NUMERIC_8 = 0x208;
559 enum KEY_NUMERIC_9 = 0x209;
560 enum KEY_NUMERIC_STAR = 0x20a;
561 enum KEY_NUMERIC_POUND = 0x20b;
562 enum KEY_NUMERIC_A = 0x20c;    // Phone key A - HUT Telephony 0xb9
563 enum KEY_NUMERIC_B = 0x20d;
564 enum KEY_NUMERIC_C = 0x20e;
565 enum KEY_NUMERIC_D = 0x20f;
566 
567 enum KEY_CAMERA_FOCUS = 0x210;
568 enum KEY_WPS_BUTTON = 0x211;    // WiFi Protected Setup key
569 
570 enum KEY_TOUCHPAD_TOGGLE = 0x212;    // Request switch touchpad on or off
571 enum KEY_TOUCHPAD_ON = 0x213;
572 enum KEY_TOUCHPAD_OFF = 0x214;
573 
574 enum KEY_CAMERA_ZOOMIN = 0x215;
575 enum KEY_CAMERA_ZOOMOUT = 0x216;
576 enum KEY_CAMERA_UP = 0x217;
577 enum KEY_CAMERA_DOWN = 0x218;
578 enum KEY_CAMERA_LEFT = 0x219;
579 enum KEY_CAMERA_RIGHT = 0x21a;
580 
581 enum KEY_ATTENDANT_ON = 0x21b;
582 enum KEY_ATTENDANT_OFF = 0x21c;
583 enum KEY_ATTENDANT_TOGGLE = 0x21d;    // Attendant call on or off
584 enum KEY_LIGHTS_TOGGLE = 0x21e;    // Reading light on or off
585 
586 enum BTN_DPAD_UP = 0x220;
587 enum BTN_DPAD_DOWN = 0x221;
588 enum BTN_DPAD_LEFT = 0x222;
589 enum BTN_DPAD_RIGHT = 0x223;
590 
591 enum KEY_ALS_TOGGLE = 0x230;    // Ambient light sensor
592 
593 enum KEY_BUTTONCONFIG = 0x240;    // AL Button Configuration
594 enum KEY_TASKMANAGER = 0x241;    // AL Task/Project Manager
595 enum KEY_JOURNAL = 0x242;    // AL Log/Journal/Timecard
596 enum KEY_CONTROLPANEL = 0x243;    // AL Control Panel
597 enum KEY_APPSELECT = 0x244;    // AL Select Task/Application
598 enum KEY_SCREENSAVER = 0x245;    // AL Screen Saver
599 enum KEY_VOICECOMMAND = 0x246;    // Listening Voice Command
600 
601 enum KEY_BRIGHTNESS_MIN = 0x250;    // Set Brightness to Minimum
602 enum KEY_BRIGHTNESS_MAX = 0x251;    // Set Brightness to Maximum
603 
604 enum KEY_KBDINPUTASSIST_PREV = 0x260;
605 enum KEY_KBDINPUTASSIST_NEXT = 0x261;
606 enum KEY_KBDINPUTASSIST_PREVGROUP = 0x262;
607 enum KEY_KBDINPUTASSIST_NEXTGROUP = 0x263;
608 enum KEY_KBDINPUTASSIST_ACCEPT = 0x264;
609 enum KEY_KBDINPUTASSIST_CANCEL = 0x265;
610 
611 /* Diagonal movement keys */
612 enum KEY_RIGHT_UP = 0x266;
613 enum KEY_RIGHT_DOWN = 0x267;
614 enum KEY_LEFT_UP = 0x268;
615 enum KEY_LEFT_DOWN = 0x269;
616 
617 enum KEY_ROOT_MENU = 0x26a;    // Show Device's Root Menu
618 /* Show Top Menu of the Media (e.g. DVD) */
619 enum KEY_MEDIA_TOP_MENU = 0x26b;
620 enum KEY_NUMERIC_11 = 0x26c;
621 enum KEY_NUMERIC_12 = 0x26d;
622 /*
623  * Toggle Audio Description: refers to an audio service that helps blind and
624  * visually impaired consumers understand the action in a program. Note: in
625  * some countries this is referred to as "Video Description".
626  */
627 enum KEY_AUDIO_DESC = 0x26e;
628 enum KEY_3D_MODE = 0x26f;
629 enum KEY_NEXT_FAVORITE = 0x270;
630 enum KEY_STOP_RECORD = 0x271;
631 enum KEY_PAUSE_RECORD = 0x272;
632 enum KEY_VOD = 0x273;    // Video on Demand
633 enum KEY_UNMUTE = 0x274;
634 enum KEY_FASTREVERSE = 0x275;
635 enum KEY_SLOWREVERSE = 0x276;
636 /*
637  * Control a data application associated with the currently viewed channel,
638  * e.g. teletext or data broadcast application (MHEG, MHP, HbbTV, etc.)
639  */
640 enum KEY_DATA = 0x277;
641 
642 enum BTN_TRIGGER_HAPPY = 0x2c0;
643 enum BTN_TRIGGER_HAPPY1 = 0x2c0;
644 enum BTN_TRIGGER_HAPPY2 = 0x2c1;
645 enum BTN_TRIGGER_HAPPY3 = 0x2c2;
646 enum BTN_TRIGGER_HAPPY4 = 0x2c3;
647 enum BTN_TRIGGER_HAPPY5 = 0x2c4;
648 enum BTN_TRIGGER_HAPPY6 = 0x2c5;
649 enum BTN_TRIGGER_HAPPY7 = 0x2c6;
650 enum BTN_TRIGGER_HAPPY8 = 0x2c7;
651 enum BTN_TRIGGER_HAPPY9 = 0x2c8;
652 enum BTN_TRIGGER_HAPPY10 = 0x2c9;
653 enum BTN_TRIGGER_HAPPY11 = 0x2ca;
654 enum BTN_TRIGGER_HAPPY12 = 0x2cb;
655 enum BTN_TRIGGER_HAPPY13 = 0x2cc;
656 enum BTN_TRIGGER_HAPPY14 = 0x2cd;
657 enum BTN_TRIGGER_HAPPY15 = 0x2ce;
658 enum BTN_TRIGGER_HAPPY16 = 0x2cf;
659 enum BTN_TRIGGER_HAPPY17 = 0x2d0;
660 enum BTN_TRIGGER_HAPPY18 = 0x2d1;
661 enum BTN_TRIGGER_HAPPY19 = 0x2d2;
662 enum BTN_TRIGGER_HAPPY20 = 0x2d3;
663 enum BTN_TRIGGER_HAPPY21 = 0x2d4;
664 enum BTN_TRIGGER_HAPPY22 = 0x2d5;
665 enum BTN_TRIGGER_HAPPY23 = 0x2d6;
666 enum BTN_TRIGGER_HAPPY24 = 0x2d7;
667 enum BTN_TRIGGER_HAPPY25 = 0x2d8;
668 enum BTN_TRIGGER_HAPPY26 = 0x2d9;
669 enum BTN_TRIGGER_HAPPY27 = 0x2da;
670 enum BTN_TRIGGER_HAPPY28 = 0x2db;
671 enum BTN_TRIGGER_HAPPY29 = 0x2dc;
672 enum BTN_TRIGGER_HAPPY30 = 0x2dd;
673 enum BTN_TRIGGER_HAPPY31 = 0x2de;
674 enum BTN_TRIGGER_HAPPY32 = 0x2df;
675 enum BTN_TRIGGER_HAPPY33 = 0x2e0;
676 enum BTN_TRIGGER_HAPPY34 = 0x2e1;
677 enum BTN_TRIGGER_HAPPY35 = 0x2e2;
678 enum BTN_TRIGGER_HAPPY36 = 0x2e3;
679 enum BTN_TRIGGER_HAPPY37 = 0x2e4;
680 enum BTN_TRIGGER_HAPPY38 = 0x2e5;
681 enum BTN_TRIGGER_HAPPY39 = 0x2e6;
682 enum BTN_TRIGGER_HAPPY40 = 0x2e7;
683 
684 /* We avoid low common keys in module aliases so they don't get huge. */
685 enum KEY_MIN_INTERESTING = KEY_MUTE;
686 enum KEY_MAX = 0x2ff;
687 enum KEY_CNT = KEY_MAX+1;
688 
689 /*
690  * Relative axes
691  */
692 
693 enum REL_X = 0x00;
694 enum REL_Y = 0x01;
695 enum REL_Z = 0x02;
696 enum REL_RX = 0x03;
697 enum REL_RY = 0x04;
698 enum REL_RZ = 0x05;
699 enum REL_HWHEEL = 0x06;
700 enum REL_DIAL = 0x07;
701 enum REL_WHEEL = 0x08;
702 enum REL_MISC = 0x09;
703 enum REL_MAX = 0x0f;
704 enum REL_CNT = REL_MAX+1;
705 
706 /*
707  * Absolute axes
708  */
709 
710 enum ABS_X = 0x00;
711 enum ABS_Y = 0x01;
712 enum ABS_Z = 0x02;
713 enum ABS_RX = 0x03;
714 enum ABS_RY = 0x04;
715 enum ABS_RZ = 0x05;
716 enum ABS_THROTTLE = 0x06;
717 enum ABS_RUDDER = 0x07;
718 enum ABS_WHEEL = 0x08;
719 enum ABS_GAS = 0x09;
720 enum ABS_BRAKE = 0x0a;
721 enum ABS_HAT0X = 0x10;
722 enum ABS_HAT0Y = 0x11;
723 enum ABS_HAT1X = 0x12;
724 enum ABS_HAT1Y = 0x13;
725 enum ABS_HAT2X = 0x14;
726 enum ABS_HAT2Y = 0x15;
727 enum ABS_HAT3X = 0x16;
728 enum ABS_HAT3Y = 0x17;
729 enum ABS_PRESSURE = 0x18;
730 enum ABS_DISTANCE = 0x19;
731 enum ABS_TILT_X = 0x1a;
732 enum ABS_TILT_Y = 0x1b;
733 enum ABS_TOOL_WIDTH = 0x1c;
734 
735 enum ABS_VOLUME = 0x20;
736 
737 enum ABS_MISC = 0x28;
738 
739 enum ABS_MT_SLOT = 0x2f;    // MT slot being modified
740 enum ABS_MT_TOUCH_MAJOR = 0x30;    // Major axis of touching ellipse
741 enum ABS_MT_TOUCH_MINOR = 0x31;    // Minor axis (omit if circular)
742 enum ABS_MT_WIDTH_MAJOR = 0x32;    // Major axis of approaching ellipse
743 enum ABS_MT_WIDTH_MINOR = 0x33;    // Minor axis (omit if circular)
744 enum ABS_MT_ORIENTATION = 0x34;    // Ellipse orientation
745 enum ABS_MT_POSITION_X = 0x35;    // Center X touch position
746 enum ABS_MT_POSITION_Y = 0x36;    // Center Y touch position
747 enum ABS_MT_TOOL_TYPE = 0x37;    // Type of touching device
748 enum ABS_MT_BLOB_ID = 0x38;    // Group a set of packets as a blob
749 enum ABS_MT_TRACKING_ID = 0x39;    // Unique ID of initiated contact
750 enum ABS_MT_PRESSURE = 0x3a;    // Pressure on contact area
751 enum ABS_MT_DISTANCE = 0x3b;    // Contact hover distance
752 enum ABS_MT_TOOL_X = 0x3c;    // Center X tool position
753 enum ABS_MT_TOOL_Y = 0x3d;    // Center Y tool position
754 
755 
756 enum ABS_MAX = 0x3f;
757 enum ABS_CNT = ABS_MAX+1;
758 
759 /*
760  * Switch events
761  */
762 
763 enum SW_LID = 0x00 ;                    // set = lid shut
764 enum SW_TABLET_MODE = 0x01 ;            // set = tablet mode
765 enum SW_HEADPHONE_INSERT = 0x02 ;        // set = inserted
766 enum SW_RFKILL_ALL = 0x03;              /+ rfkill master switch, type "any";
767                                            set = radio enabled +/
768 enum SW_RADIO = SW_RFKILL_ALL;            // deprecated
769 enum SW_MICROPHONE_INSERT = 0x04 ;        // set = inserted
770 enum SW_DOCK = 0x05 ;                    // set = plugged into dock
771 enum SW_LINEOUT_INSERT = 0x06 ;            // set = inserted
772 enum SW_JACK_PHYSICAL_INSERT = 0x07 ;    // set = mechanical switch set
773 enum SW_VIDEOOUT_INSERT = 0x08 ;        // set = inserted
774 enum SW_CAMERA_LENS_COVER = 0x09 ;        // set = lens covered
775 enum SW_KEYPAD_SLIDE = 0x0a ;            // set = keypad slide out
776 enum SW_FRONT_PROXIMITY = 0x0b ;        // set = front proximity sensor active
777 enum SW_ROTATE_LOCK = 0x0c ;            // set = rotate locked/disabled
778 enum SW_LINEIN_INSERT = 0x0d ;            // set = inserted
779 enum SW_MUTE_DEVICE = 0x0e ;            // set = device disabled
780 enum SW_PEN_INSERTED = 0x0f ;            // set = pen inserted
781 enum SW_MAX = 0x0f;
782 enum SW_CNT = SW_MAX+1;
783 
784 /*
785  * Misc events
786  */
787 
788 enum MSC_SERIAL = 0x00;
789 enum MSC_PULSELED = 0x01;
790 enum MSC_GESTURE = 0x02;
791 enum MSC_RAW = 0x03;
792 enum MSC_SCAN = 0x04;
793 enum MSC_TIMESTAMP = 0x05;
794 enum MSC_MAX = 0x07;
795 enum MSC_CNT = MSC_MAX+1;
796 
797 /*
798  * LEDs
799  */
800 
801 enum LED_NUML = 0x00;
802 enum LED_CAPSL = 0x01;
803 enum LED_SCROLLL = 0x02;
804 enum LED_COMPOSE = 0x03;
805 enum LED_KANA = 0x04;
806 enum LED_SLEEP = 0x05;
807 enum LED_SUSPEND = 0x06;
808 enum LED_MUTE = 0x07;
809 enum LED_MISC = 0x08;
810 enum LED_MAIL = 0x09;
811 enum LED_CHARGING = 0x0a;
812 enum LED_MAX = 0x0f;
813 enum LED_CNT = LED_MAX+1;
814 
815 /*
816  * Autorepeat values
817  */
818 
819 enum REP_DELAY = 0x00;
820 enum REP_PERIOD = 0x01;
821 enum REP_MAX = 0x01;
822 enum REP_CNT = REP_MAX+1;
823 
824 /*
825  * Sounds
826  */
827 
828 enum SND_CLICK = 0x00;
829 enum SND_BELL = 0x01;
830 enum SND_TONE = 0x02;
831 enum SND_MAX = 0x07;
832 enum SND_CNT = SND_MAX+1;
833