Keyboard keys

Overview

See key input for how these are used.

These key codes are inspired by the USB HID Usage Tables v1.12 (p. 53-60), but re-arranged to map to 7-bit ASCII for printable keys (function keys are put in the 256+ range).

The naming of the key codes follow these rules:

  • The US keyboard layout is used

  • Names of printable alpha-numeric characters are used (e.g. “A”, “R”, “3”, etc.)

  • For non-alphanumeric characters, Unicode:ish names are used (e.g. “COMMA”, “LEFT_SQUARE_BRACKET”, etc.). Note that some names do not correspond to the Unicode standard (usually for brevity)

  • Keys that lack a clear US mapping are named “WORLD_x”

  • For non-printable keys, custom names are used (e.g. “F4”, “BACKSPACE”, etc.)

// macros

#define GLFW_KEY_0
#define GLFW_KEY_1
#define GLFW_KEY_2
#define GLFW_KEY_3
#define GLFW_KEY_4
#define GLFW_KEY_5
#define GLFW_KEY_6
#define GLFW_KEY_7
#define GLFW_KEY_8
#define GLFW_KEY_9
#define GLFW_KEY_A
#define GLFW_KEY_APOSTROPHE
#define GLFW_KEY_B
#define GLFW_KEY_BACKSLASH
#define GLFW_KEY_BACKSPACE
#define GLFW_KEY_C
#define GLFW_KEY_CAPS_LOCK
#define GLFW_KEY_COMMA
#define GLFW_KEY_D
#define GLFW_KEY_DELETE
#define GLFW_KEY_DOWN
#define GLFW_KEY_E
#define GLFW_KEY_END
#define GLFW_KEY_ENTER
#define GLFW_KEY_EQUAL
#define GLFW_KEY_ESCAPE
#define GLFW_KEY_F
#define GLFW_KEY_F1
#define GLFW_KEY_F10
#define GLFW_KEY_F11
#define GLFW_KEY_F12
#define GLFW_KEY_F13
#define GLFW_KEY_F14
#define GLFW_KEY_F15
#define GLFW_KEY_F16
#define GLFW_KEY_F17
#define GLFW_KEY_F18
#define GLFW_KEY_F19
#define GLFW_KEY_F2
#define GLFW_KEY_F20
#define GLFW_KEY_F21
#define GLFW_KEY_F22
#define GLFW_KEY_F23
#define GLFW_KEY_F24
#define GLFW_KEY_F25
#define GLFW_KEY_F3
#define GLFW_KEY_F4
#define GLFW_KEY_F5
#define GLFW_KEY_F6
#define GLFW_KEY_F7
#define GLFW_KEY_F8
#define GLFW_KEY_F9
#define GLFW_KEY_G
#define GLFW_KEY_GRAVE_ACCENT
#define GLFW_KEY_H
#define GLFW_KEY_HOME
#define GLFW_KEY_I
#define GLFW_KEY_INSERT
#define GLFW_KEY_J
#define GLFW_KEY_K
#define GLFW_KEY_KP_0
#define GLFW_KEY_KP_1
#define GLFW_KEY_KP_2
#define GLFW_KEY_KP_3
#define GLFW_KEY_KP_4
#define GLFW_KEY_KP_5
#define GLFW_KEY_KP_6
#define GLFW_KEY_KP_7
#define GLFW_KEY_KP_8
#define GLFW_KEY_KP_9
#define GLFW_KEY_KP_ADD
#define GLFW_KEY_KP_DECIMAL
#define GLFW_KEY_KP_DIVIDE
#define GLFW_KEY_KP_ENTER
#define GLFW_KEY_KP_EQUAL
#define GLFW_KEY_KP_MULTIPLY
#define GLFW_KEY_KP_SUBTRACT
#define GLFW_KEY_L
#define GLFW_KEY_LAST
#define GLFW_KEY_LEFT
#define GLFW_KEY_LEFT_ALT
#define GLFW_KEY_LEFT_BRACKET
#define GLFW_KEY_LEFT_CONTROL
#define GLFW_KEY_LEFT_SHIFT
#define GLFW_KEY_LEFT_SUPER
#define GLFW_KEY_M
#define GLFW_KEY_MENU
#define GLFW_KEY_MINUS
#define GLFW_KEY_N
#define GLFW_KEY_NUM_LOCK
#define GLFW_KEY_O
#define GLFW_KEY_P
#define GLFW_KEY_PAGE_DOWN
#define GLFW_KEY_PAGE_UP
#define GLFW_KEY_PAUSE
#define GLFW_KEY_PERIOD
#define GLFW_KEY_PRINT_SCREEN
#define GLFW_KEY_Q
#define GLFW_KEY_R
#define GLFW_KEY_RIGHT
#define GLFW_KEY_RIGHT_ALT
#define GLFW_KEY_RIGHT_BRACKET
#define GLFW_KEY_RIGHT_CONTROL
#define GLFW_KEY_RIGHT_SHIFT
#define GLFW_KEY_RIGHT_SUPER
#define GLFW_KEY_S
#define GLFW_KEY_SCROLL_LOCK
#define GLFW_KEY_SEMICOLON
#define GLFW_KEY_SLASH
#define GLFW_KEY_SPACE
#define GLFW_KEY_T
#define GLFW_KEY_TAB
#define GLFW_KEY_U
#define GLFW_KEY_UNKNOWN
#define GLFW_KEY_UP
#define GLFW_KEY_V
#define GLFW_KEY_W
#define GLFW_KEY_WORLD_1
#define GLFW_KEY_WORLD_2
#define GLFW_KEY_X
#define GLFW_KEY_Y
#define GLFW_KEY_Z