Last active
April 27, 2026 14:31
-
-
Save xypron/8527d444d4427d68f79747b9d17145b8 to your computer and use it in GitHub Desktop.
linux-keymap.c
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // SPDX-License-Identifier: MIT | |
| /** | |
| * The layout of Google crosswire keyboards (compatible = "google,cros-ec-keyb") | |
| * are described in the device-tree by the linux,keymap property. | |
| * | |
| * The program below shows how to translate the property to human readable form. | |
| */ | |
| #include <stdio.h> | |
| struct keydef { | |
| const char *name; | |
| const int value; | |
| }; | |
| // Keymap entries from device-tree followed by 0x0 to mark the table end. | |
| int keymap[] = { | |
| 0x2e, 0x1006f, 0x20010, 0x30064, 0x5002d, 0x6002f, | |
| 0x70032, 0x80034, 0x90036, 0xa0033, 0xc0061, 0xd0035, | |
| 0xe0028, 0x1030038, 0x1040039, 0x105002c, 0x1060030, 0x1070031, | |
| 0x108006c, 0x109002a, 0x10c001d, 0x10d0067, 0x10e001c, 0x10f0042, | |
| 0x20201d0, 0x2040012, 0x205003c, 0x2060022, 0x2070023, 0x208002b, | |
| 0x20a0041, 0x20d000c, 0x20f006a, 0x301007d, 0x302000f, 0x304003e, | |
| 0x305003b, 0x3060014, 0x3070015, 0x3080018, 0x30a0040, 0x30b0043, | |
| 0x30d0058, 0x4020029, 0x404003a, 0x405001f, 0x4060006, 0x4070007, | |
| 0x4080044, 0x40a003f, 0x40d000b, 0x40e000d, 0x5020002, 0x5040004, | |
| 0x5050003, 0x5060005, 0x5070008, 0x508000a, 0x50a0009, 0x50b0056, | |
| 0x50d0019, 0x50e000e, 0x604003d, 0x6050011, 0x6060013, 0x6070016, | |
| 0x6080057, 0x60a0017, 0x60b0069, 0x60d001a, 0x60e001b, 0x702001e, | |
| 0x7050001, 0x7060021, 0x7070024, 0x7080026, 0x70a0025, 0x70d0027, | |
| 0x70e0020, 0x801006e, 0x908006d, 0x90d0068, 0x90f00e1, 0xa050072, | |
| 0xa0a00e0, 0xa0f006b, 0xb0400a5, 0xb050071, 0xb0a00a3, 0xb0b00e3, | |
| 0xb0d00ab, 0xc0800f7, 0xc0a00a4, 0xe040073, 0xe080063, 0xe0b0066, | |
| 0 | |
| }; | |
| // Key constants from Linux include/uapi/linux/input-event-codes.h | |
| struct keydef keydefs[] = { | |
| { "KEY_RESERVED", 0 }, | |
| { "KEY_ESC", 1 }, | |
| { "KEY_1", 2 }, | |
| { "KEY_2", 3 }, | |
| { "KEY_3", 4 }, | |
| { "KEY_4", 5 }, | |
| { "KEY_5", 6 }, | |
| { "KEY_6", 7 }, | |
| { "KEY_7", 8 }, | |
| { "KEY_8", 9 }, | |
| { "KEY_9", 10 }, | |
| { "KEY_0", 11 }, | |
| { "KEY_MINUS", 12 }, | |
| { "KEY_EQUAL", 13 }, | |
| { "KEY_BACKSPACE", 14 }, | |
| { "KEY_TAB", 15 }, | |
| { "KEY_Q", 16 }, | |
| { "KEY_W", 17 }, | |
| { "KEY_E", 18 }, | |
| { "KEY_R", 19 }, | |
| { "KEY_T", 20 }, | |
| { "KEY_Y", 21 }, | |
| { "KEY_U", 22 }, | |
| { "KEY_I", 23 }, | |
| { "KEY_O", 24 }, | |
| { "KEY_P", 25 }, | |
| { "KEY_LEFTBRACE", 26 }, | |
| { "KEY_RIGHTBRACE", 27 }, | |
| { "KEY_ENTER", 28 }, | |
| { "KEY_LEFTCTRL", 29 }, | |
| { "KEY_A", 30 }, | |
| { "KEY_S", 31 }, | |
| { "KEY_D", 32 }, | |
| { "KEY_F", 33 }, | |
| { "KEY_G", 34 }, | |
| { "KEY_H", 35 }, | |
| { "KEY_J", 36 }, | |
| { "KEY_K", 37 }, | |
| { "KEY_L", 38 }, | |
| { "KEY_SEMICOLON", 39 }, | |
| { "KEY_APOSTROPHE", 40 }, | |
| { "KEY_GRAVE", 41 }, | |
| { "KEY_LEFTSHIFT", 42 }, | |
| { "KEY_BACKSLASH", 43 }, | |
| { "KEY_Z", 44 }, | |
| { "KEY_X", 45 }, | |
| { "KEY_C", 46 }, | |
| { "KEY_V", 47 }, | |
| { "KEY_B", 48 }, | |
| { "KEY_N", 49 }, | |
| { "KEY_M", 50 }, | |
| { "KEY_COMMA", 51 }, | |
| { "KEY_DOT", 52 }, | |
| { "KEY_SLASH", 53 }, | |
| { "KEY_RIGHTSHIFT", 54 }, | |
| { "KEY_KPASTERISK", 55 }, | |
| { "KEY_LEFTALT", 56 }, | |
| { "KEY_SPACE", 57 }, | |
| { "KEY_CAPSLOCK", 58 }, | |
| { "KEY_F1", 59 }, | |
| { "KEY_F2", 60 }, | |
| { "KEY_F3", 61 }, | |
| { "KEY_F4", 62 }, | |
| { "KEY_F5", 63 }, | |
| { "KEY_F6", 64 }, | |
| { "KEY_F7", 65 }, | |
| { "KEY_F8", 66 }, | |
| { "KEY_F9", 67 }, | |
| { "KEY_F10", 68 }, | |
| { "KEY_NUMLOCK", 69 }, | |
| { "KEY_SCROLLLOCK", 70 }, | |
| { "KEY_KP7", 71 }, | |
| { "KEY_KP8", 72 }, | |
| { "KEY_KP9", 73 }, | |
| { "KEY_KPMINUS", 74 }, | |
| { "KEY_KP4", 75 }, | |
| { "KEY_KP5", 76 }, | |
| { "KEY_KP6", 77 }, | |
| { "KEY_KPPLUS", 78 }, | |
| { "KEY_KP1", 79 }, | |
| { "KEY_KP2", 80 }, | |
| { "KEY_KP3", 81 }, | |
| { "KEY_KP0", 82 }, | |
| { "KEY_KPDOT", 83 }, | |
| { "KEY_ZENKAKUHANKAKU", 85 }, | |
| { "KEY_102ND", 86 }, | |
| { "KEY_F11", 87 }, | |
| { "KEY_F12", 88 }, | |
| { "KEY_RO", 89 }, | |
| { "KEY_KATAKANA", 90 }, | |
| { "KEY_HIRAGANA", 91 }, | |
| { "KEY_HENKAN", 92 }, | |
| { "KEY_KATAKANAHIRAGANA", 93 }, | |
| { "KEY_MUHENKAN", 94 }, | |
| { "KEY_KPJPCOMMA", 95 }, | |
| { "KEY_KPENTER", 96 }, | |
| { "KEY_RIGHTCTRL", 97 }, | |
| { "KEY_KPSLASH", 98 }, | |
| { "KEY_SYSRQ", 99 }, | |
| { "KEY_RIGHTALT", 100 }, | |
| { "KEY_LINEFEED", 101 }, | |
| { "KEY_HOME", 102 }, | |
| { "KEY_UP", 103 }, | |
| { "KEY_PAGEUP", 104 }, | |
| { "KEY_LEFT", 105 }, | |
| { "KEY_RIGHT", 106 }, | |
| { "KEY_END", 107 }, | |
| { "KEY_DOWN", 108 }, | |
| { "KEY_PAGEDOWN", 109 }, | |
| { "KEY_INSERT", 110 }, | |
| { "KEY_DELETE", 111 }, | |
| { "KEY_MACRO", 112 }, | |
| { "KEY_MUTE", 113 }, | |
| { "KEY_VOLUMEDOWN", 114 }, | |
| { "KEY_VOLUMEUP", 115 }, | |
| { "KEY_POWER", 116 }, | |
| { "KEY_KPEQUAL", 117 }, | |
| { "KEY_KPPLUSMINUS", 118 }, | |
| { "KEY_PAUSE", 119 }, | |
| { "KEY_SCALE", 120 }, | |
| { "KEY_KPCOMMA", 121 }, | |
| { "KEY_HANGEUL", 122 }, | |
| { "KEY_HANJA", 123 }, | |
| { "KEY_YEN", 124 }, | |
| { "KEY_LEFTMETA", 125 }, | |
| { "KEY_RIGHTMETA", 126 }, | |
| { "KEY_COMPOSE", 127 }, | |
| { "KEY_STOP", 128 }, | |
| { "KEY_AGAIN", 129 }, | |
| { "KEY_PROPS", 130 }, | |
| { "KEY_UNDO", 131 }, | |
| { "KEY_FRONT", 132 }, | |
| { "KEY_COPY", 133 }, | |
| { "KEY_OPEN", 134 }, | |
| { "KEY_PASTE", 135 }, | |
| { "KEY_FIND", 136 }, | |
| { "KEY_CUT", 137 }, | |
| { "KEY_HELP", 138 }, | |
| { "KEY_MENU", 139 }, | |
| { "KEY_CALC", 140 }, | |
| { "KEY_SETUP", 141 }, | |
| { "KEY_SLEEP", 142 }, | |
| { "KEY_WAKEUP", 143 }, | |
| { "KEY_FILE", 144 }, | |
| { "KEY_SENDFILE", 145 }, | |
| { "KEY_DELETEFILE", 146 }, | |
| { "KEY_XFER", 147 }, | |
| { "KEY_PROG1", 148 }, | |
| { "KEY_PROG2", 149 }, | |
| { "KEY_WWW", 150 }, | |
| { "KEY_MSDOS", 151 }, | |
| { "KEY_COFFEE", 152 }, | |
| { "KEY_CYCLEWINDOWS", 154 }, | |
| { "KEY_MAIL", 155 }, | |
| { "KEY_BOOKMARKS", 156 }, | |
| { "KEY_COMPUTER", 157 }, | |
| { "KEY_BACK", 158 }, | |
| { "KEY_FORWARD", 159 }, | |
| { "KEY_CLOSECD", 160 }, | |
| { "KEY_EJECTCD", 161 }, | |
| { "KEY_EJECTCLOSECD", 162 }, | |
| { "KEY_NEXTSONG", 163 }, | |
| { "KEY_PLAYPAUSE", 164 }, | |
| { "KEY_PREVIOUSSONG", 165 }, | |
| { "KEY_STOPCD", 166 }, | |
| { "KEY_RECORD", 167 }, | |
| { "KEY_REWIND", 168 }, | |
| { "KEY_PHONE", 169 }, | |
| { "KEY_ISO", 170 }, | |
| { "KEY_CONFIG", 171 }, | |
| { "KEY_HOMEPAGE", 172 }, | |
| { "KEY_REFRESH", 173 }, | |
| { "KEY_EXIT", 174 }, | |
| { "KEY_MOVE", 175 }, | |
| { "KEY_EDIT", 176 }, | |
| { "KEY_SCROLLUP", 177 }, | |
| { "KEY_SCROLLDOWN", 178 }, | |
| { "KEY_KPLEFTPAREN", 179 }, | |
| { "KEY_KPRIGHTPAREN", 180 }, | |
| { "KEY_NEW", 181 }, | |
| { "KEY_REDO", 182 }, | |
| { "KEY_F13", 183 }, | |
| { "KEY_F14", 184 }, | |
| { "KEY_F15", 185 }, | |
| { "KEY_F16", 186 }, | |
| { "KEY_F17", 187 }, | |
| { "KEY_F18", 188 }, | |
| { "KEY_F19", 189 }, | |
| { "KEY_F20", 190 }, | |
| { "KEY_F21", 191 }, | |
| { "KEY_F22", 192 }, | |
| { "KEY_F23", 193 }, | |
| { "KEY_F24", 194 }, | |
| { "KEY_PLAYCD", 200 }, | |
| { "KEY_PAUSECD", 201 }, | |
| { "KEY_PROG3", 202 }, | |
| { "KEY_PROG4", 203 }, | |
| { "KEY_ALL_APPLICATIONS", 204 }, | |
| { "KEY_SUSPEND", 205 }, | |
| { "KEY_CLOSE", 206 }, | |
| { "KEY_PLAY", 207 }, | |
| { "KEY_FASTFORWARD", 208 }, | |
| { "KEY_BASSBOOST", 209 }, | |
| { "KEY_PRINT", 210 }, | |
| { "KEY_HP", 211 }, | |
| { "KEY_CAMERA", 212 }, | |
| { "KEY_SOUND", 213 }, | |
| { "KEY_QUESTION", 214 }, | |
| { "KEY_EMAIL", 215 }, | |
| { "KEY_CHAT", 216 }, | |
| { "KEY_SEARCH", 217 }, | |
| { "KEY_CONNECT", 218 }, | |
| { "KEY_FINANCE", 219 }, | |
| { "KEY_SPORT", 220 }, | |
| { "KEY_SHOP", 221 }, | |
| { "KEY_ALTERASE", 222 }, | |
| { "KEY_CANCEL", 223 }, | |
| { "KEY_BRIGHTNESSDOWN", 224 }, | |
| { "KEY_BRIGHTNESSUP", 225 }, | |
| { "KEY_MEDIA", 226 }, | |
| { "KEY_SWITCHVIDEOMODE", 227 }, | |
| { "KEY_KBDILLUMTOGGLE", 228 }, | |
| { "KEY_KBDILLUMDOWN", 229 }, | |
| { "KEY_KBDILLUMUP", 230 }, | |
| { "KEY_SEND", 231 }, | |
| { "KEY_REPLY", 232 }, | |
| { "KEY_FORWARDMAIL", 233 }, | |
| { "KEY_SAVE", 234 }, | |
| { "KEY_DOCUMENTS", 235 }, | |
| { "KEY_BATTERY", 236 }, | |
| { "KEY_BLUETOOTH", 237 }, | |
| { "KEY_WLAN", 238 }, | |
| { "KEY_UWB", 239 }, | |
| { "KEY_UNKNOWN", 240 }, | |
| { "KEY_VIDEO_NEXT", 241 }, | |
| { "KEY_VIDEO_PREV", 242 }, | |
| { "KEY_BRIGHTNESS_CYCLE", 243 }, | |
| { "KEY_BRIGHTNESS_AUTO", 244 }, | |
| { "KEY_DISPLAY_OFF", 245 }, | |
| { "KEY_WWAN", 246 }, | |
| { "KEY_RFKILL", 247 }, | |
| { "KEY_MICMUTE", 248 }, | |
| { "KEY_OK", 0x160 }, | |
| { "KEY_SELECT", 0x161 }, | |
| { "KEY_GOTO", 0x162 }, | |
| { "KEY_CLEAR", 0x163 }, | |
| { "KEY_POWER2", 0x164 }, | |
| { "KEY_OPTION", 0x165 }, | |
| { "KEY_INFO", 0x166 }, | |
| { "KEY_TIME", 0x167 }, | |
| { "KEY_VENDOR", 0x168 }, | |
| { "KEY_ARCHIVE", 0x169 }, | |
| { "KEY_PROGRAM", 0x16a }, | |
| { "KEY_CHANNEL", 0x16b }, | |
| { "KEY_FAVORITES", 0x16c }, | |
| { "KEY_EPG", 0x16d }, | |
| { "KEY_PVR", 0x16e }, | |
| { "KEY_MHP", 0x16f }, | |
| { "KEY_LANGUAGE", 0x170 }, | |
| { "KEY_TITLE", 0x171 }, | |
| { "KEY_SUBTITLE", 0x172 }, | |
| { "KEY_ANGLE", 0x173 }, | |
| { "KEY_FULL_SCREEN", 0x174 }, | |
| { "KEY_MODE", 0x175 }, | |
| { "KEY_KEYBOARD", 0x176 }, | |
| { "KEY_ASPECT_RATIO", 0x177 }, | |
| { "KEY_PC", 0x178 }, | |
| { "KEY_TV", 0x179 }, | |
| { "KEY_TV2", 0x17a }, | |
| { "KEY_VCR", 0x17b }, | |
| { "KEY_VCR2", 0x17c }, | |
| { "KEY_SAT", 0x17d }, | |
| { "KEY_SAT2", 0x17e }, | |
| { "KEY_CD", 0x17f }, | |
| { "KEY_TAPE", 0x180 }, | |
| { "KEY_RADIO", 0x181 }, | |
| { "KEY_TUNER", 0x182 }, | |
| { "KEY_PLAYER", 0x183 }, | |
| { "KEY_TEXT", 0x184 }, | |
| { "KEY_DVD", 0x185 }, | |
| { "KEY_AUX", 0x186 }, | |
| { "KEY_MP3", 0x187 }, | |
| { "KEY_AUDIO", 0x188 }, | |
| { "KEY_VIDEO", 0x189 }, | |
| { "KEY_DIRECTORY", 0x18a }, | |
| { "KEY_LIST", 0x18b }, | |
| { "KEY_MEMO", 0x18c }, | |
| { "KEY_CALENDAR", 0x18d }, | |
| { "KEY_RED", 0x18e }, | |
| { "KEY_GREEN", 0x18f }, | |
| { "KEY_YELLOW", 0x190 }, | |
| { "KEY_BLUE", 0x191 }, | |
| { "KEY_CHANNELUP", 0x192 }, | |
| { "KEY_CHANNELDOWN", 0x193 }, | |
| { "KEY_FIRST", 0x194 }, | |
| { "KEY_LAST", 0x195 }, | |
| { "KEY_AB", 0x196 }, | |
| { "KEY_NEXT", 0x197 }, | |
| { "KEY_RESTART", 0x198 }, | |
| { "KEY_SLOW", 0x199 }, | |
| { "KEY_SHUFFLE", 0x19a }, | |
| { "KEY_BREAK", 0x19b }, | |
| { "KEY_PREVIOUS", 0x19c }, | |
| { "KEY_DIGITS", 0x19d }, | |
| { "KEY_TEEN", 0x19e }, | |
| { "KEY_TWEN", 0x19f }, | |
| { "KEY_VIDEOPHONE", 0x1a0 }, | |
| { "KEY_GAMES", 0x1a1 }, | |
| { "KEY_ZOOMIN", 0x1a2 }, | |
| { "KEY_ZOOMOUT", 0x1a3 }, | |
| { "KEY_ZOOMRESET", 0x1a4 }, | |
| { "KEY_WORDPROCESSOR", 0x1a5 }, | |
| { "KEY_EDITOR", 0x1a6 }, | |
| { "KEY_SPREADSHEET", 0x1a7 }, | |
| { "KEY_GRAPHICSEDITOR", 0x1a8 }, | |
| { "KEY_PRESENTATION", 0x1a9 }, | |
| { "KEY_DATABASE", 0x1aa }, | |
| { "KEY_NEWS", 0x1ab }, | |
| { "KEY_VOICEMAIL", 0x1ac }, | |
| { "KEY_ADDRESSBOOK", 0x1ad }, | |
| { "KEY_MESSENGER", 0x1ae }, | |
| { "KEY_DISPLAYTOGGLE", 0x1af }, | |
| { "KEY_SPELLCHECK", 0x1b0 }, | |
| { "KEY_LOGOFF", 0x1b1 }, | |
| { "KEY_DOLLAR", 0x1b2 }, | |
| { "KEY_EURO", 0x1b3 }, | |
| { "KEY_FRAMEBACK", 0x1b4 }, | |
| { "KEY_FRAMEFORWARD", 0x1b5 }, | |
| { "KEY_CONTEXT_MENU", 0x1b6 }, | |
| { "KEY_MEDIA_REPEAT", 0x1b7 }, | |
| { "KEY_10CHANNELSUP", 0x1b8 }, | |
| { "KEY_10CHANNELSDOWN", 0x1b9 }, | |
| { "KEY_IMAGES", 0x1ba }, | |
| { "KEY_NOTIFICATION_CENTER", 0x1bc }, | |
| { "KEY_PICKUP_PHONE", 0x1bd }, | |
| { "KEY_HANGUP_PHONE", 0x1be }, | |
| { "KEY_LINK_PHONE", 0x1bf }, | |
| { "KEY_DEL_EOL", 0x1c0 }, | |
| { "KEY_DEL_EOS", 0x1c1 }, | |
| { "KEY_INS_LINE", 0x1c2 }, | |
| { "KEY_DEL_LINE", 0x1c3 }, | |
| { "KEY_FN", 0x1d0 }, | |
| { "KEY_FN_ESC", 0x1d1 }, | |
| { "KEY_FN_F1", 0x1d2 }, | |
| { "KEY_FN_F2", 0x1d3 }, | |
| { "KEY_FN_F3", 0x1d4 }, | |
| { "KEY_FN_F4", 0x1d5 }, | |
| { "KEY_FN_F5", 0x1d6 }, | |
| { "KEY_FN_F6", 0x1d7 }, | |
| { "KEY_FN_F7", 0x1d8 }, | |
| { "KEY_FN_F8", 0x1d9 }, | |
| { "KEY_FN_F9", 0x1da }, | |
| { "KEY_FN_F10", 0x1db }, | |
| { "KEY_FN_F11", 0x1dc }, | |
| { "KEY_FN_F12", 0x1dd }, | |
| { "KEY_FN_1", 0x1de }, | |
| { "KEY_FN_2", 0x1df }, | |
| { "KEY_FN_D", 0x1e0 }, | |
| { "KEY_FN_E", 0x1e1 }, | |
| { "KEY_FN_F", 0x1e2 }, | |
| { "KEY_FN_S", 0x1e3 }, | |
| { "KEY_FN_B", 0x1e4 }, | |
| { "KEY_FN_RIGHT_SHIFT", 0x1e5 }, | |
| { "KEY_BRL_DOT1", 0x1f1 }, | |
| { "KEY_BRL_DOT2", 0x1f2 }, | |
| { "KEY_BRL_DOT3", 0x1f3 }, | |
| { "KEY_BRL_DOT4", 0x1f4 }, | |
| { "KEY_BRL_DOT5", 0x1f5 }, | |
| { "KEY_BRL_DOT6", 0x1f6 }, | |
| { "KEY_BRL_DOT7", 0x1f7 }, | |
| { "KEY_BRL_DOT8", 0x1f8 }, | |
| { "KEY_BRL_DOT9", 0x1f9 }, | |
| { "KEY_BRL_DOT10", 0x1fa }, | |
| { "KEY_NUMERIC_0", 0x200 }, | |
| { "KEY_NUMERIC_1", 0x201 }, | |
| { "KEY_NUMERIC_2", 0x202 }, | |
| { "KEY_NUMERIC_3", 0x203 }, | |
| { "KEY_NUMERIC_4", 0x204 }, | |
| { "KEY_NUMERIC_5", 0x205 }, | |
| { "KEY_NUMERIC_6", 0x206 }, | |
| { "KEY_NUMERIC_7", 0x207 }, | |
| { "KEY_NUMERIC_8", 0x208 }, | |
| { "KEY_NUMERIC_9", 0x209 }, | |
| { "KEY_NUMERIC_STAR", 0x20a }, | |
| { "KEY_NUMERIC_POUND", 0x20b }, | |
| { "KEY_NUMERIC_A", 0x20c }, | |
| { "KEY_NUMERIC_B", 0x20d }, | |
| { "KEY_NUMERIC_C", 0x20e }, | |
| { "KEY_NUMERIC_D", 0x20f }, | |
| { "KEY_CAMERA_FOCUS", 0x210 }, | |
| { "KEY_WPS_BUTTON", 0x211 }, | |
| { "KEY_TOUCHPAD_TOGGLE", 0x212 }, | |
| { "KEY_TOUCHPAD_ON", 0x213 }, | |
| { "KEY_TOUCHPAD_OFF", 0x214 }, | |
| { "KEY_CAMERA_ZOOMIN", 0x215 }, | |
| { "KEY_CAMERA_ZOOMOUT", 0x216 }, | |
| { "KEY_CAMERA_UP", 0x217 }, | |
| { "KEY_CAMERA_DOWN", 0x218 }, | |
| { "KEY_CAMERA_LEFT", 0x219 }, | |
| { "KEY_CAMERA_RIGHT", 0x21a }, | |
| { "KEY_ATTENDANT_ON", 0x21b }, | |
| { "KEY_ATTENDANT_OFF", 0x21c }, | |
| { "KEY_ATTENDANT_TOGGLE", 0x21d }, | |
| { "KEY_LIGHTS_TOGGLE", 0x21e }, | |
| { "KEY_ALS_TOGGLE", 0x230 }, | |
| { "KEY_ROTATE_LOCK_TOGGLE", 0x231 }, | |
| { "KEY_REFRESH_RATE_TOGGLE", 0x232 }, | |
| { "KEY_BUTTONCONFIG", 0x240 }, | |
| { "KEY_TASKMANAGER", 0x241 }, | |
| { "KEY_JOURNAL", 0x242 }, | |
| { "KEY_CONTROLPANEL", 0x243 }, | |
| { "KEY_APPSELECT", 0x244 }, | |
| { "KEY_SCREENSAVER", 0x245 }, | |
| { "KEY_VOICECOMMAND", 0x246 }, | |
| { "KEY_ASSISTANT", 0x247 }, | |
| { "KEY_KBD_LAYOUT_NEXT", 0x248 }, | |
| { "KEY_EMOJI_PICKER", 0x249 }, | |
| { "KEY_DICTATE", 0x24a }, | |
| { "KEY_CAMERA_ACCESS_ENABLE", 0x24b }, | |
| { "KEY_CAMERA_ACCESS_DISABLE", 0x24c }, | |
| { "KEY_CAMERA_ACCESS_TOGGLE", 0x24d }, | |
| { "KEY_ACCESSIBILITY", 0x24e }, | |
| { "KEY_DO_NOT_DISTURB", 0x24f }, | |
| { "KEY_BRIGHTNESS_MIN", 0x250 }, | |
| { "KEY_BRIGHTNESS_MAX", 0x251 }, | |
| { "KEY_EPRIVACY_SCREEN_ON", 0x252 }, | |
| { "KEY_EPRIVACY_SCREEN_OFF", 0x253 }, | |
| { "KEY_KBDINPUTASSIST_PREV", 0x260 }, | |
| { "KEY_KBDINPUTASSIST_NEXT", 0x261 }, | |
| { "KEY_KBDINPUTASSIST_PREVGROUP", 0x262 }, | |
| { "KEY_KBDINPUTASSIST_NEXTGROUP", 0x263 }, | |
| { "KEY_KBDINPUTASSIST_ACCEPT", 0x264 }, | |
| { "KEY_KBDINPUTASSIST_CANCEL", 0x265 }, | |
| { "KEY_RIGHT_UP", 0x266 }, | |
| { "KEY_RIGHT_DOWN", 0x267 }, | |
| { "KEY_LEFT_UP", 0x268 }, | |
| { "KEY_LEFT_DOWN", 0x269 }, | |
| { "KEY_ROOT_MENU", 0x26a }, | |
| { "KEY_MEDIA_TOP_MENU", 0x26b }, | |
| { "KEY_NUMERIC_11", 0x26c }, | |
| { "KEY_NUMERIC_12", 0x26d }, | |
| { "KEY_AUDIO_DESC", 0x26e }, | |
| { "KEY_3D_MODE", 0x26f }, | |
| { "KEY_NEXT_FAVORITE", 0x270 }, | |
| { "KEY_STOP_RECORD", 0x271 }, | |
| { "KEY_PAUSE_RECORD", 0x272 }, | |
| { "KEY_VOD", 0x273 }, | |
| { "KEY_UNMUTE", 0x274 }, | |
| { "KEY_FASTREVERSE", 0x275 }, | |
| { "KEY_SLOWREVERSE", 0x276 }, | |
| { "KEY_DATA", 0x277 }, | |
| { "KEY_ONSCREEN_KEYBOARD", 0x278 }, | |
| { "KEY_PRIVACY_SCREEN_TOGGLE", 0x279 }, | |
| { "KEY_SELECTIVE_SCREENSHOT", 0x27a }, | |
| { "KEY_NEXT_ELEMENT", 0x27b }, | |
| { "KEY_PREVIOUS_ELEMENT", 0x27c }, | |
| { "KEY_AUTOPILOT_ENGAGE_TOGGLE", 0x27d }, | |
| { "KEY_MARK_WAYPOINT", 0x27e }, | |
| { "KEY_SOS", 0x27f }, | |
| { "KEY_NAV_CHART", 0x280 }, | |
| { "KEY_FISHING_CHART", 0x281 }, | |
| { "KEY_SINGLE_RANGE_RADAR", 0x282 }, | |
| { "KEY_DUAL_RANGE_RADAR", 0x283 }, | |
| { "KEY_RADAR_OVERLAY", 0x284 }, | |
| { "KEY_TRADITIONAL_SONAR", 0x285 }, | |
| { "KEY_CLEARVU_SONAR", 0x286 }, | |
| { "KEY_SIDEVU_SONAR", 0x287 }, | |
| { "KEY_NAV_INFO", 0x288 }, | |
| { "KEY_BRIGHTNESS_MENU", 0x289 }, | |
| { "KEY_MACRO1", 0x290 }, | |
| { "KEY_MACRO2", 0x291 }, | |
| { "KEY_MACRO3", 0x292 }, | |
| { "KEY_MACRO4", 0x293 }, | |
| { "KEY_MACRO5", 0x294 }, | |
| { "KEY_MACRO6", 0x295 }, | |
| { "KEY_MACRO7", 0x296 }, | |
| { "KEY_MACRO8", 0x297 }, | |
| { "KEY_MACRO9", 0x298 }, | |
| { "KEY_MACRO10", 0x299 }, | |
| { "KEY_MACRO11", 0x29a }, | |
| { "KEY_MACRO12", 0x29b }, | |
| { "KEY_MACRO13", 0x29c }, | |
| { "KEY_MACRO14", 0x29d }, | |
| { "KEY_MACRO15", 0x29e }, | |
| { "KEY_MACRO16", 0x29f }, | |
| { "KEY_MACRO17", 0x2a0 }, | |
| { "KEY_MACRO18", 0x2a1 }, | |
| { "KEY_MACRO19", 0x2a2 }, | |
| { "KEY_MACRO20", 0x2a3 }, | |
| { "KEY_MACRO21", 0x2a4 }, | |
| { "KEY_MACRO22", 0x2a5 }, | |
| { "KEY_MACRO23", 0x2a6 }, | |
| { "KEY_MACRO24", 0x2a7 }, | |
| { "KEY_MACRO25", 0x2a8 }, | |
| { "KEY_MACRO26", 0x2a9 }, | |
| { "KEY_MACRO27", 0x2aa }, | |
| { "KEY_MACRO28", 0x2ab }, | |
| { "KEY_MACRO29", 0x2ac }, | |
| { "KEY_MACRO30", 0x2ad }, | |
| { "KEY_MACRO_RECORD_START", 0x2b0 }, | |
| { "KEY_MACRO_RECORD_STOP", 0x2b1 }, | |
| { "KEY_MACRO_PRESET_CYCLE", 0x2b2 }, | |
| { "KEY_MACRO_PRESET1", 0x2b3 }, | |
| { "KEY_MACRO_PRESET2", 0x2b4 }, | |
| { "KEY_MACRO_PRESET3", 0x2b5 }, | |
| { "KEY_KBD_LCD_MENU1", 0x2b8 }, | |
| { "KEY_KBD_LCD_MENU2", 0x2b9 }, | |
| { "KEY_KBD_LCD_MENU3", 0x2ba }, | |
| { "KEY_KBD_LCD_MENU4", 0x2bb }, | |
| { "KEY_KBD_LCD_MENU5", 0x2bc }, | |
| { "KEY_PERFORMANCE", 0x2bd }, | |
| { "KEY_MIN_INTERESTING", 113 }, | |
| { NULL, 0 }, | |
| }; | |
| int main(int argc, const char *argv[]) | |
| { | |
| printf("map-entry : row col val name\n"); | |
| for (int *pos = keymap; *pos; ++pos) { | |
| int val = *pos; | |
| int key = val & 0xffff; | |
| int col = (val >> 16) & 0xff; | |
| int row = (val >> 24) & 0xff; | |
| const char *name = "NOT FOUND"; | |
| for (struct keydef *def = keydefs; def->name; ++def) { | |
| if (def->value == key) { | |
| name = def->name; | |
| break; | |
| } | |
| } | |
| printf("0x%08x: %3d %3d %3d %s\n", val, row, col, key, name); | |
| } | |
| return 0; | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment