# Basic Keycodes The basic set of keycodes are based on the [HID Keyboard/Keypad Usage Page (0x07)](https://www.usb.org/sites/default/files/documents/hut1_12v2.pdf) with the exception of `KC_NO`, `KC_TRNS` and keycodes in the `0xA5-DF` range. See below for more details. ## Letters and Numbers |Key |Description| |------|-----------| |`KC_A`|`a` and `A`| |`KC_B`|`b` and `B`| |`KC_C`|`c` and `C`| |`KC_D`|`d` and `D`| |`KC_E`|`e` and `E`| |`KC_F`|`f` and `F`| |`KC_G`|`g` and `G`| |`KC_H`|`h` and `H`| |`KC_I`|`i` and `I`| |`KC_J`|`j` and `J`| |`KC_K`|`k` and `K`| |`KC_L`|`l` and `L`| |`KC_M`|`m` and `M`| |`KC_N`|`n` and `N`| |`KC_O`|`o` and `O`| |`KC_P`|`p` and `P`| |`KC_Q`|`q` and `Q`| |`KC_R`|`r` and `R`| |`KC_S`|`s` and `S`| |`KC_T`|`t` and `T`| |`KC_U`|`u` and `U`| |`KC_V`|`v` and `V`| |`KC_W`|`w` and `W`| |`KC_X`|`x` and `X`| |`KC_Y`|`y` and `Y`| |`KC_Z`|`z` and `Z`| |`KC_1`|`1` and `!`| |`KC_2`|`2` and `@`| |`KC_3`|`3` and `#`| |`KC_4`|`4` and `$`| |`KC_5`|`5` and `%`| |`KC_6`|`6` and `^`| |`KC_7`|`7` and `&`| |`KC_8`|`8` and `*`| |`KC_9`|`9` and `(`| |`KC_0`|`0` and `)`| ## F Keys |Key |Description| |--------|-----------| |`KC_F1` |F1 | |`KC_F2` |F2 | |`KC_F3` |F3 | |`KC_F4` |F4 | |`KC_F5` |F5 | |`KC_F6` |F6 | |`KC_F7` |F7 | |`KC_F8` |F8 | |`KC_F9` |F9 | |`KC_F10`|F10 | |`KC_F11`|F11 | |`KC_F12`|F12 | |`KC_F13`|F13 | |`KC_F14`|F14 | |`KC_F15`|F15 | |`KC_F16`|F16 | |`KC_F17`|F17 | |`KC_F18`|F18 | |`KC_F19`|F19 | |`KC_F20`|F20 | |`KC_F21`|F21 | |`KC_F22`|F22 | |`KC_F23`|F23 | |`KC_F24`|F24 | ## Punctuation |Key |Aliases |Description | |-----------------|-------------------|-----------------------------------------------| |`KC_ENTER` |`KC_ENT` |Return (Enter) | |`KC_ESCAPE` |`KC_ESC` |Escape | |`KC_BSPACE` |`KC_BSPC` |Delete (Backspace) | |`KC_TAB` | |Tab | |`KC_SPACE` |`KC_SPC` |Spacebar | |`KC_MINUS` |`KC_MINS` |`-` and `_` | |`KC_EQUAL` |`KC_EQL` |`=` and `+` | |`KC_LBRACKET` |`KC_LBRC` |`[` and `{` | |`KC_RBRACKET` |`KC_RBRC` |`]` and `}` | |`KC_BSLASH` |`KC_BSLS` |`\` and | | |`KC_NONUS_HASH` |`KC_NUHS` |Non-US `#` and `~` | |`KC_SCOLON` |`KC_SCLN` |`;` and `:` | |`KC_QUOTE` |`KC_QUOT` |`'` and `"` | |`KC_GRAVE` |`KC_GRV`, `KC_ZKHK`|` and `~`, JIS Zenkaku/Hankaku| |`KC_COMMA` |`KC_COMM` |`,` and `<` | |`KC_DOT` | |`.` and `>` | |`KC_SLASH` |`KC_SLSH` |`/` and `?` | |`KC_NONUS_BSLASH`|`KC_NUBS` |Non-US `\` and | | ## Lock Keys |Key |Aliases |Description | |-------------------|--------------------|-------------------------| |`KC_CAPSLOCK` |`KC_CLCK`, `KC_CAPS`|Caps Lock | |`KC_SCROLLLOCK` |`KC_SLCK` |Scroll Lock | |`KC_NUMLOCK` |`KC_NLCK` |Keypad Num Lock and Clear| |`KC_LOCKING_CAPS` |`KC_LCAP` |Locking Caps Lock | |`KC_LOCKING_NUM` |`KC_LNUM` |Locking Num Lock | |`KC_LOCKING_SCROLL`|`KC_LSCR` |Locking Scroll Lock | ## Modifiers |Key |Aliases |Description | |-----------|--------------------|---------------------
/* Copyright 2017 Jack Humbert
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

#ifndef PROCESS_TERMINAL_H
#define PROCESS_TERMINAL_H

#include "quantum.h"

extern const char keycode_to_ascii_lut[58];
extern const char shifted_keycode_to_ascii_lut[58];
extern const char terminal_prompt[8];
bool process_terminal(uint16_t keycode, keyrecord_t *record);

#endif
| |`KC_KP_9` |`KC_P9` |Keypad `9` and Page Up | |`KC_KP_0` |`KC_P0` |Keypad `0` and Insert | |`KC_KP_DOT` |`KC_PDOT`|Keypad `.` and Delete | |`KC_KP_EQUAL` |`KC_PEQL`|Keypad `=` | |`KC_KP_COMMA` |`KC_PCMM`|Keypad `,` | |`KC_KP_EQUAL_AS400`| |Keypad `=` on AS/400 keyboards| ## Special Keys In addition to these, keycodes in the range of `0xA5-DF` are reserved for internal use by TMK. |Key |Aliases |Description | |----------------|--------------------|---------------------------------------| |`KC_NO` |`XXXXXXX` |Ignore this key (NOOP) | |`KC_TRANSPARENT`|`KC_TRNS`, `_______`|Use the next lowest non-transparent key|