Macros
Keyboard keys

Description

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:

Macros

#define GLFW_KEY_UNKNOWN   -1
 
#define GLFW_KEY_SPACE   32
 
#define GLFW_KEY_APOSTROPHE   39 /* ' */
 
#define GLFW_KEY_COMMA   44 /* , */
 
#define GLFW_KEY_MINUS   45 /* - */
 
#define GLFW_KEY_PERIOD   46 /* . */
 
#define GLFW_KEY_SLASH   47 /* / */
 
#define GLFW_KEY_0   48
 
#define GLFW_KEY_1   49
 
#define GLFW_KEY_2   50
 
#define GLFW_KEY_3   51
 
#define GLFW_KEY_4   52
 
#define GLFW_KEY_5   53
 
#define GLFW_KEY_6   54
 
#define GLFW_KEY_7   55
 
#define GLFW_KEY_8   56
 
#define GLFW_KEY_9   57
 
#define GLFW_KEY_SEMICOLON   59 /* ; */
 
#define GLFW_KEY_EQUAL   61 /* = */
 
#define GLFW_KEY_A   65
 
#define GLFW_KEY_B   66
 
#define GLFW_KEY_C   67
 
#define GLFW_KEY_D   68
 
#define GLFW_KEY_E   69
 
#define GLFW_KEY_F   70
 
#define GLFW_KEY_G   71
 
#define GLFW_KEY_H   72
 
#define GLFW_KEY_I   73
 
#define GLFW_KEY_J   74
 
#define GLFW_KEY_K   75
 
#define GLFW_KEY_L   76
 
#define GLFW_KEY_M   77
 
#define GLFW_KEY_N   78
 
#define GLFW_KEY_O   79
 
#define GLFW_KEY_P   80
 
#define GLFW_KEY_Q   81
 
#define GLFW_KEY_R   82
 
#define GLFW_KEY_S   83
 
#define GLFW_KEY_T   84
 
#define GLFW_KEY_U   85
 
#define GLFW_KEY_V   86
 
#define GLFW_KEY_W   87
 
#define GLFW_KEY_X   88
 
#define GLFW_KEY_Y   89
 
#define GLFW_KEY_Z   90
 
#define GLFW_KEY_LEFT_BRACKET   91 /* [ */
 
#define GLFW_KEY_BACKSLASH   92 /* \ */
 
#define GLFW_KEY_RIGHT_BRACKET   93 /* ] */
 
#define GLFW_KEY_GRAVE_ACCENT   96 /* ` */
 
#define GLFW_KEY_WORLD_1   161 /* non-US #1 */
 
#define GLFW_KEY_WORLD_2   162 /* non-US #2 */
 
#define GLFW_KEY_ESCAPE   256
 
#define GLFW_KEY_ENTER   257
 
#define GLFW_KEY_TAB   258
 
#define GLFW_KEY_BACKSPACE   259
 
#define GLFW_KEY_INSERT   260
 
#define GLFW_KEY_DELETE   261
 
#define GLFW_KEY_RIGHT   262
 
#define GLFW_KEY_LEFT   263
 
#define GLFW_KEY_DOWN   264
 
#define GLFW_KEY_UP   265
 
#define GLFW_KEY_PAGE_UP   266
 
#define GLFW_KEY_PAGE_DOWN   267
 
#define GLFW_KEY_HOME   268
 
#define GLFW_KEY_END   269
 
#define GLFW_KEY_CAPS_LOCK   280
 
#define GLFW_KEY_SCROLL_LOCK   281
 
#define GLFW_KEY_NUM_LOCK   282
 
#define GLFW_KEY_PRINT_SCREEN   283
 
#define GLFW_KEY_PAUSE   284
 
#define GLFW_KEY_F1   290
 
#define GLFW_KEY_F2   291
 
#define GLFW_KEY_F3   292
 
#define GLFW_KEY_F4   293
 
#define GLFW_KEY_F5   294
 
#define GLFW_KEY_F6   295
 
#define GLFW_KEY_F7   296
 
#define GLFW_KEY_F8   297
 
#define GLFW_KEY_F9   298
 
#define GLFW_KEY_F10   299
 
#define GLFW_KEY_F11   300
 
#define GLFW_KEY_F12   301
 
#define GLFW_KEY_F13   302
 
#define GLFW_KEY_F14   303
 
#define GLFW_KEY_F15   304
 
#define GLFW_KEY_F16   305
 
#define GLFW_KEY_F17   306
 
#define GLFW_KEY_F18   307
 
#define GLFW_KEY_F19   308
 
#define GLFW_KEY_F20   309
 
#define GLFW_KEY_F21   310
 
#define GLFW_KEY_F22   311
 
#define GLFW_KEY_F23   312
 
#define GLFW_KEY_F24   313
 
#define GLFW_KEY_F25   314
 
#define GLFW_KEY_KP_0   320
 
#define GLFW_KEY_KP_1   321
 
#define GLFW_KEY_KP_2   322
 
#define GLFW_KEY_KP_3   323
 
#define GLFW_KEY_KP_4   324
 
#define GLFW_KEY_KP_5   325
 
#define GLFW_KEY_KP_6   326
 
#define GLFW_KEY_KP_7   327
 
#define GLFW_KEY_KP_8   328
 
#define GLFW_KEY_KP_9   329
 
#define GLFW_KEY_KP_DECIMAL   330
 
#define GLFW_KEY_KP_DIVIDE   331
 
#define GLFW_KEY_KP_MULTIPLY   332
 
#define GLFW_KEY_KP_SUBTRACT   333
 
#define GLFW_KEY_KP_ADD   334
 
#define GLFW_KEY_KP_ENTER   335
 
#define GLFW_KEY_KP_EQUAL   336
 
#define GLFW_KEY_LEFT_SHIFT   340
 
#define GLFW_KEY_LEFT_CONTROL   341
 
#define GLFW_KEY_LEFT_ALT   342
 
#define GLFW_KEY_LEFT_SUPER   343
 
#define GLFW_KEY_RIGHT_SHIFT   344
 
#define GLFW_KEY_RIGHT_CONTROL   345
 
#define GLFW_KEY_RIGHT_ALT   346
 
#define GLFW_KEY_RIGHT_SUPER   347
 
#define GLFW_KEY_MENU   348
 
#define GLFW_KEY_LAST   GLFW_KEY_MENU
 

Macro Definition Documentation

◆ GLFW_KEY_0

#define GLFW_KEY_0   48

◆ GLFW_KEY_1

#define GLFW_KEY_1   49

◆ GLFW_KEY_2

#define GLFW_KEY_2   50

◆ GLFW_KEY_3

#define GLFW_KEY_3   51

◆ GLFW_KEY_4

#define GLFW_KEY_4   52

◆ GLFW_KEY_5

#define GLFW_KEY_5   53

◆ GLFW_KEY_6

#define GLFW_KEY_6   54

◆ GLFW_KEY_7

#define GLFW_KEY_7   55

◆ GLFW_KEY_8

#define GLFW_KEY_8   56

◆ GLFW_KEY_9

#define GLFW_KEY_9   57

◆ GLFW_KEY_A

#define GLFW_KEY_A   65

◆ GLFW_KEY_APOSTROPHE

#define GLFW_KEY_APOSTROPHE   39 /* ' */

◆ GLFW_KEY_B

#define GLFW_KEY_B   66

◆ GLFW_KEY_BACKSLASH

#define GLFW_KEY_BACKSLASH   92 /* \ */

◆ GLFW_KEY_BACKSPACE

#define GLFW_KEY_BACKSPACE   259

◆ GLFW_KEY_C

#define GLFW_KEY_C   67

◆ GLFW_KEY_CAPS_LOCK

#define GLFW_KEY_CAPS_LOCK   280

◆ GLFW_KEY_COMMA

#define GLFW_KEY_COMMA   44 /* , */

◆ GLFW_KEY_D

#define GLFW_KEY_D   68

◆ GLFW_KEY_DELETE

#define GLFW_KEY_DELETE   261

◆ GLFW_KEY_DOWN

#define GLFW_KEY_DOWN   264

◆ GLFW_KEY_E

#define GLFW_KEY_E   69

◆ GLFW_KEY_END

#define GLFW_KEY_END   269

◆ GLFW_KEY_ENTER

#define GLFW_KEY_ENTER   257

◆ GLFW_KEY_EQUAL

#define GLFW_KEY_EQUAL   61 /* = */

◆ GLFW_KEY_ESCAPE

#define GLFW_KEY_ESCAPE   256

◆ GLFW_KEY_F

#define GLFW_KEY_F   70

◆ GLFW_KEY_F1

#define GLFW_KEY_F1   290

◆ GLFW_KEY_F10

#define GLFW_KEY_F10   299

◆ GLFW_KEY_F11

#define GLFW_KEY_F11   300

◆ GLFW_KEY_F12

#define GLFW_KEY_F12   301

◆ GLFW_KEY_F13

#define GLFW_KEY_F13   302

◆ GLFW_KEY_F14

#define GLFW_KEY_F14   303

◆ GLFW_KEY_F15

#define GLFW_KEY_F15   304

◆ GLFW_KEY_F16

#define GLFW_KEY_F16   305

◆ GLFW_KEY_F17

#define GLFW_KEY_F17   306

◆ GLFW_KEY_F18

#define GLFW_KEY_F18   307

◆ GLFW_KEY_F19

#define GLFW_KEY_F19   308

◆ GLFW_KEY_F2

#define GLFW_KEY_F2   291

◆ GLFW_KEY_F20

#define GLFW_KEY_F20   309

◆ GLFW_KEY_F21

#define GLFW_KEY_F21   310

◆ GLFW_KEY_F22

#define GLFW_KEY_F22   311

◆ GLFW_KEY_F23

#define GLFW_KEY_F23   312

◆ GLFW_KEY_F24

#define GLFW_KEY_F24   313

◆ GLFW_KEY_F25

#define GLFW_KEY_F25   314

◆ GLFW_KEY_F3

#define GLFW_KEY_F3   292

◆ GLFW_KEY_F4

#define GLFW_KEY_F4   293

◆ GLFW_KEY_F5

#define GLFW_KEY_F5   294

◆ GLFW_KEY_F6

#define GLFW_KEY_F6   295

◆ GLFW_KEY_F7

#define GLFW_KEY_F7   296

◆ GLFW_KEY_F8

#define GLFW_KEY_F8   297

◆ GLFW_KEY_F9

#define GLFW_KEY_F9   298

◆ GLFW_KEY_G

#define GLFW_KEY_G   71

◆ GLFW_KEY_GRAVE_ACCENT

#define GLFW_KEY_GRAVE_ACCENT   96 /* ` */

◆ GLFW_KEY_H

#define GLFW_KEY_H   72

◆ GLFW_KEY_HOME

#define GLFW_KEY_HOME   268

◆ GLFW_KEY_I

#define GLFW_KEY_I   73

◆ GLFW_KEY_INSERT

#define GLFW_KEY_INSERT   260

◆ GLFW_KEY_J

#define GLFW_KEY_J   74

◆ GLFW_KEY_K

#define GLFW_KEY_K   75

◆ GLFW_KEY_KP_0

#define GLFW_KEY_KP_0   320

◆ GLFW_KEY_KP_1

#define GLFW_KEY_KP_1   321

◆ GLFW_KEY_KP_2

#define GLFW_KEY_KP_2   322

◆ GLFW_KEY_KP_3

#define GLFW_KEY_KP_3   323

◆ GLFW_KEY_KP_4

#define GLFW_KEY_KP_4   324

◆ GLFW_KEY_KP_5

#define GLFW_KEY_KP_5   325

◆ GLFW_KEY_KP_6

#define GLFW_KEY_KP_6   326

◆ GLFW_KEY_KP_7

#define GLFW_KEY_KP_7   327

◆ GLFW_KEY_KP_8

#define GLFW_KEY_KP_8   328

◆ GLFW_KEY_KP_9

#define GLFW_KEY_KP_9   329

◆ GLFW_KEY_KP_ADD

#define GLFW_KEY_KP_ADD   334

◆ GLFW_KEY_KP_DECIMAL

#define GLFW_KEY_KP_DECIMAL   330

◆ GLFW_KEY_KP_DIVIDE

#define GLFW_KEY_KP_DIVIDE   331

◆ GLFW_KEY_KP_ENTER

#define GLFW_KEY_KP_ENTER   335

◆ GLFW_KEY_KP_EQUAL

#define GLFW_KEY_KP_EQUAL   336

◆ GLFW_KEY_KP_MULTIPLY

#define GLFW_KEY_KP_MULTIPLY   332

◆ GLFW_KEY_KP_SUBTRACT

#define GLFW_KEY_KP_SUBTRACT   333

◆ GLFW_KEY_L

#define GLFW_KEY_L   76

◆ GLFW_KEY_LAST

#define GLFW_KEY_LAST   GLFW_KEY_MENU

◆ GLFW_KEY_LEFT

#define GLFW_KEY_LEFT   263

◆ GLFW_KEY_LEFT_ALT

#define GLFW_KEY_LEFT_ALT   342

◆ GLFW_KEY_LEFT_BRACKET

#define GLFW_KEY_LEFT_BRACKET   91 /* [ */

◆ GLFW_KEY_LEFT_CONTROL

#define GLFW_KEY_LEFT_CONTROL   341

◆ GLFW_KEY_LEFT_SHIFT

#define GLFW_KEY_LEFT_SHIFT   340

◆ GLFW_KEY_LEFT_SUPER

#define GLFW_KEY_LEFT_SUPER   343

◆ GLFW_KEY_M

#define GLFW_KEY_M   77

◆ GLFW_KEY_MENU

#define GLFW_KEY_MENU   348

◆ GLFW_KEY_MINUS

#define GLFW_KEY_MINUS   45 /* - */

◆ GLFW_KEY_N

#define GLFW_KEY_N   78

◆ GLFW_KEY_NUM_LOCK

#define GLFW_KEY_NUM_LOCK   282

◆ GLFW_KEY_O

#define GLFW_KEY_O   79

◆ GLFW_KEY_P

#define GLFW_KEY_P   80

◆ GLFW_KEY_PAGE_DOWN

#define GLFW_KEY_PAGE_DOWN   267

◆ GLFW_KEY_PAGE_UP

#define GLFW_KEY_PAGE_UP   266

◆ GLFW_KEY_PAUSE

#define GLFW_KEY_PAUSE   284

◆ GLFW_KEY_PERIOD

#define GLFW_KEY_PERIOD   46 /* . */

◆ GLFW_KEY_PRINT_SCREEN

#define GLFW_KEY_PRINT_SCREEN   283

◆ GLFW_KEY_Q

#define GLFW_KEY_Q   81

◆ GLFW_KEY_R

#define GLFW_KEY_R   82

◆ GLFW_KEY_RIGHT

#define GLFW_KEY_RIGHT   262

◆ GLFW_KEY_RIGHT_ALT

#define GLFW_KEY_RIGHT_ALT   346

◆ GLFW_KEY_RIGHT_BRACKET

#define GLFW_KEY_RIGHT_BRACKET   93 /* ] */

◆ GLFW_KEY_RIGHT_CONTROL

#define GLFW_KEY_RIGHT_CONTROL   345

◆ GLFW_KEY_RIGHT_SHIFT

#define GLFW_KEY_RIGHT_SHIFT   344

◆ GLFW_KEY_RIGHT_SUPER

#define GLFW_KEY_RIGHT_SUPER   347

◆ GLFW_KEY_S

#define GLFW_KEY_S   83

◆ GLFW_KEY_SCROLL_LOCK

#define GLFW_KEY_SCROLL_LOCK   281

◆ GLFW_KEY_SEMICOLON

#define GLFW_KEY_SEMICOLON   59 /* ; */

◆ GLFW_KEY_SLASH

#define GLFW_KEY_SLASH   47 /* / */

◆ GLFW_KEY_SPACE

#define GLFW_KEY_SPACE   32

◆ GLFW_KEY_T

#define GLFW_KEY_T   84

◆ GLFW_KEY_TAB

#define GLFW_KEY_TAB   258

◆ GLFW_KEY_U

#define GLFW_KEY_U   85

◆ GLFW_KEY_UNKNOWN

#define GLFW_KEY_UNKNOWN   -1

◆ GLFW_KEY_UP

#define GLFW_KEY_UP   265

◆ GLFW_KEY_V

#define GLFW_KEY_V   86

◆ GLFW_KEY_W

#define GLFW_KEY_W   87

◆ GLFW_KEY_WORLD_1

#define GLFW_KEY_WORLD_1   161 /* non-US #1 */

◆ GLFW_KEY_WORLD_2

#define GLFW_KEY_WORLD_2   162 /* non-US #2 */

◆ GLFW_KEY_X

#define GLFW_KEY_X   88

◆ GLFW_KEY_Y

#define GLFW_KEY_Y   89

◆ GLFW_KEY_Z

#define GLFW_KEY_Z   90