# Keycodes Overview When defining a [keymap](keymap.md) each key needs a valid key definition. This page documents the symbols that correspond to keycodes that are available to you in QMK. This is a reference only. Each group of keys links to the page documenting their functionality in more detail. ## [Basic Keycodes](keycodes_basic.md) |Key |Aliases |Description | |-----------------------|------------------------------|-----------------------------------------------| |`KC_NO` |`XXXXXXX` |Ignore this key (NOOP) | |`KC_TRANSPARENT` |`KC_TRNS`, `_______` |Use the next lowest non-transparent key | |`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 `%`
`ifdef GUARD_5
module top;
wire x;
endmodule
`elsif GUARD_4
`define GUARD_5
`include "include_self.v"
`elsif GUARD_3
`define GUARD_4
`include "include_self.v"
`elsif GUARD_2
`define GUARD_3
`include "include_self.v"
`elsif GUARD_1
`define GUARD_2
`include "include_self.v"
`elsif GUARD_0
`define GUARD_1
`include "include_self.v"
`else
`define GUARD_0
`include "include_self.v"
`endif