keyboard doesn't have such a list in the docs, or even in the source code. keyboard builds its key information tables at runtime by querying key information from Windows APIs or from dumpkeys, then applying a bit of its own postprocessing.

The key information tables keyboard builds aren't anywhere in its public API, but if you import keyboard, the private keyboard._os_keyboard.from_name table should have all of keyboard's canonical key names. keyboard._canonical_names.canonical_names should have the mapping from non-canonical names to canonical names, if you want that info too, but I'm not sure everything in that table is actually guaranteed to be a supported key.

Answer from user2357112 on Stack Overflow
🌐
Wing Python IDE
wingware.com › doc › custom › key-names
Key Names - Wing Python IDE
Unmodified keys such core western alphabet keys are specified as follows: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z · Digits and most punctuation can be specified but the Shift modifier will be ignored to accomodate different ...
🌐
15. The Menu widget
anzeljg.github.io › rin2 › book2 › 2405 › docs › tkinter › key-names.html
54.5. Key names - a GUI for Python
This table shows only the “Latin-1” set for the usual USA-type 101-key keyboard. For the currently supported set, see the manual page for Tk keysym values. Next: 54.6. Writing your handler: The Event class · Contents: Tkinter 8.5 reference: a GUI for Python ·
🌐
pytz
pythonhosted.org › pyglet › programming_guide › keyboard_events.html
Keyboard events
pyglet has key symbols that are hardware and platform independent for many types of keyboard. These are defined in pyglet.window.key as constants.
🌐
Read the Docs
pynput.readthedocs.io › en › latest › keyboard.html
Handling the keyboard — pynput 1.7.6 documentation
Waits for this listener to become ready. ... A class representing various buttons that may not correspond to letters. This includes modifier keys and function keys.
🌐
GeeksforGeeks
geeksforgeeks.org › python › keyboard-module-in-python
Keyboard module in Python - GeeksforGeeks
April 12, 2025 - It's a small Python library which can hook global events, register hotkeys, simulate key presses and much more. It helps to enter keys, record the keyboard activities and block the keys until a specified key is entered and simulate the keys. It captures all keys, even onscreen keyboard events are also captured. Keyboard module supports complex hotkeys. Using this module we can listen ...
🌐
Keycombiner
keycombiner.com › collections › python
Python Keyboard Shortcuts
A list of keyboard shortcuts for Python. Search and filter shortcuts to find what will speed up your workflow. See all combinations mapped onto a virtual keyboard. Add these shortcuts to your personal collections to build your knowledge base.
🌐
Pygame
pygame.org › docs › ref › key.html
pygame.key — pygame v2.6.0 documentation
pygame Constant ASCII Description --------------------------------- K_BACKSPACE \b backspace K_TAB \t tab K_CLEAR clear K_RETURN \r return K_PAUSE pause K_ESCAPE ^[ escape K_SPACE space K_EXCLAIM ! exclaim K_QUOTEDBL " quotedbl K_HASH # hash K_DOLLAR $ dollar K_AMPERSAND & ampersand K_QUOTE quote K_LEFTPAREN ( left parenthesis K_RIGHTPAREN ) right parenthesis K_ASTERISK * asterisk K_PLUS + plus sign K_COMMA , comma K_MINUS - minus sign K_PERIOD . period K_SLASH / forward slash K_0 0 0 K_1 1 1 K_2 2 2 K_3 3 3 K_4 4 4 K_5 5 5 K_6 6 6 K_7 7 7 K_8 8 8 K_9 9 9 K_COLON : colon K_SEMICOLON ; semicolo
Find elsewhere
🌐
The Python Code
thepythoncode.com › article › control-keyboard-python
Keyboard module: Controlling your Keyboard in Python - The Python Code
For more information about how to use this function to build a keylogger for educational purposes, check this tutorial. Finally, if you want to remove all keyboard hooks in use, including hotkeys, abbreviations, etc: ... I just introduced the module to you; please check the documentation or just type help(keyboard) in a Python interactive shell to learn other functionalities and methods.
🌐
PyPI
pypi.org › project › keyboard
keyboard · PyPI
Python 2 and 3. Complex hotkey support (e.g. ctrl+shift+m, ctrl+space) with controllable timeout. Includes high level API (e.g. record and play, add_abbreviation). Maps keys as they actually are in your layout, with full internationalization support (e.g. Ctrl+ç). Events automatically captured in separate thread, doesn't block main program. Tested and documented. Doesn't break accented dead keys (I'm looking at you, pyHook).
      » pip install keyboard
    
Published   Mar 23, 2020
Version   0.13.5
🌐
Cogsci
osdoc.cogsci.nl › 3.3 › manual › python › keyboard
Keyboard functions // OpenSesame documentation - Cogsci.nl
Collect a key press with a ... a timeout value in milliseconds, or is set to None to disable the timeout. keylist specifies a list of keys that are accepted, or is set to None accept all keys....
🌐
Blender Artists
blenderartists.org › game engine › game engine support and discussion
List of Python key codes? - Game Engine Support and Discussion - Blender Artists Community
September 14, 2014 - Hey guys, I need a list of numeric key codes for BGE Python. The list on tutorialsforblender3d.com seems to have been taken down. And please, give it to me straight. I don’t want “alternate ways of doing it”. I want a list of the numeric key codes.
🌐
Stack Abuse
stackabuse.com › guide-to-pythons-keyboard-module
Guide to Python's keyboard Module
October 24, 2023 - In this guide, we'll take a look at the experimental keyboard module in Python and how to automate keyboard input and keystrokes easily.
🌐
Cogsci
osdoc.cogsci.nl › 4.0 › manual › python › keyboard
Keyboard functions // OpenSesame documentation
# Wait for a 'z' or 'x' key with ... identified either by character or name, and are case-insensitive. For example: ... Click on the 'list available keys' button of the keyboard_response item....
🌐
Nitratine
nitratine.net › blog › post › simulate-keypresses-in-python
Simulate Keypresses In Python - Nitratine
16 Dec 2017 YouTube python keyboard pynput 6 min read · This demonstrates how to press keys with Python. Using pynput we are able to simulate key presses into any window. This will show you how to press and release a key, type special keys and type a sentence. ... If you haven't used or setup pip before, go to my tutorial at how-to-setup-pythons-pip to setup pip. We will be using the pynput module to listen ...
🌐
Python Forum
python-forum.io › thread-39870.html
Keyboard hotkeys
I wanted to assign right sided control key as a hotkey to a function using keyboard.add_hotkey, but unfortunately I am not finding specific code to assign right sided control key. Could anybody please help with this. Thanks in advance
🌐
ItsMyBot
itsmybot.com › home › python programming › shortcut keys in python: the ultimate time-saving guide
20 Must-Know Shortcut Keys in Python for 2025 - ItsMyBot
July 9, 2025 - From quick file management to advanced refactoring, these Python automation shortcuts transform tedious tasks into single keystrokes, empowering you to focus on the logic and creativity behind your code. ... Using these Python keyboard shortcuts consistently will reinforce muscle memory, so you waste less time navigating menus and more time engineering the future. Start integrating a few new shortcuts this week, and watch your productivity soar. Pro Tip: Keep a printed or digital Python shortcuts list pinned near your workspace.
🌐
pytz
pythonhosted.org › pynput › keyboard.html
Handling the keyboard — pynput 1.1.2 documentation
This method will send all key presses and releases necessary to type all characters in the string. class pynput.keyboard.Listener(on_press=None, on_release=None)[source]¶
🌐
PyAutoGUI
pyautogui.readthedocs.io › en › latest › keyboard.html
Keyboard Control Functions — PyAutoGUI documentation
To press these keys, call the press() function and pass it a string from the pyautogui.KEYBOARD_KEYS such as enter, esc, f1.