# QMK Features
QMK has a staggering number of features for building your keyboard. It can take some time to understand all of them and determine which one will achieve your goal.
* [Advanced Keycodes ](feature_advanced_keycodes.md ) - Change layers, dual-action keys, and more. Go beyond typing simple characters.
* [Audio ](feature_audio.md ) - Connect a speaker to your keyboard for audio feedback, midi support, and music mode.
* [Auto Shift ](feature_auto_shift.md ) - Tap for the normal key, hold slightly longer for its shifted state.
* [Backlight ](feature_backlight.md ) - LED lighting support for your keyboard.
* [Bootmagic ](feature_bootmagic.md ) - Adjust the behavior of your keyboard using hotkeys.
* [Combos ](feature_combos.md ) - Custom actions for multiple key holds.
* [Command ](feature_command.md ) - Runtime version of bootmagic (Formerly known as "Magic").
* [Dynamic Macros ](feature_dynamic_macros.md ) - Record and playback macros from the keyboard itself.
* [Grave Escape ](feature_grave_esc.md ) - Lets you use a single key for Esc and Grave.
* [HD44780 LCD Display ](feature_hd44780.md ) - Support for LCD character displays using the HD44780 standard.
* [Key Lock ](feature_key_lock.md ) - Lock a key in the "down" state.
* [Layouts ](feature_layouts.md ) - Use one keymap with any keyboard that supports your layout.
* [Leader Key ](feature_leader_key.md ) - Tap the leader key followed by a sequence to trigger custom behavior.
* [Macros ](feature_macros.md ) - Send multiple key presses when pressing only one physical key.
* [Mouse keys ](feature_mouse_keys.md ) - Control your mouse pointer from your keyboard.
* [One Shot Keys ](feature_advanced_keycodes.md#one-shot-keys ) - Sticky Keys, lets hit a key rather than holding it.
* [Pointing Device ](feature_pointing_device.md ) - Framework for connecting your custom pointing device to your keyboard.
* [PS2 Mouse ](feature_ps2_mouse.md ) - Driver for connecting a PS/2 mouse directly to your keyboard.
* [RGB Light ](feature_rgblight.md ) - RGB lighting for your keyboard.
* [RGB Matrix ](feature_rgb_matrix.md ) - RGB Matrix lights for per key lighting.
* [Space Cadet ](feature_space_cadet_shift.md ) - Use your left/right shift keys to type parenthesis and brackets.
* [Stenography ](feature_stenography.md ) - Put your keyboard into Plover mode for stenography use.
* [Swap Hands ](feature_swap_hands.md ) - Mirror your keyboard for one handed usage.
* [Tap Dance ](feature_tap_dance.md ) - Make a single key do as many things as you want.
* [Terminal ](feature_terminal.md ) - CLI interface to the internals of your keyboard.
* [Thermal Printer ](feature_thermal_printer.md ) - Connect a thermal printer to your keyboard to be able to toggle on a printed log of everything you type.
* [Unicode ](feature_unicode.md ) - Unicode input support.
* [Userspace ](feature_userspace.md ) - Share code between different keymaps and keyboards.