qmk_firmware/docs
..
ChangeLog
de
es
fr-fr
gitbook/images
he-il
ja
pt-br
ru-ru
zh-cn
.nojekyll
_langs.md
_summary.md
adc_driver.md
arm_debugging.md
breaking_changes.md
breaking_changes_instructions.md
cli.md
cli_configuration.md
cli_development.md
CNAME
coding_conventions_c.md
coding_conventions_python.md
compatible_microcontrollers.md
config_options.md
contributing.md
custom_matrix.md
custom_quantum_functions.md
documentation_best_practices.md
documentation_templates.md
driver_installation_zadig.md
eeprom_driver.md
faq_build.md
faq_debug.md
faq_general.md
faq_keymap.md
feature_advanced_keycodes.md
feature_audio.md
feature_auto_shift.md
feature_backlight.md
feature_bluetooth.md
feature_bootmagic.md
feature_combo.md
feature_command.md
feature_debounce_type.md
feature_dip_switch.md
feature_dynamic_macros.md
feature_encoders.md
feature_grave_esc.md
feature_haptic_feedback.md
feature_hd44780.md
feature_key_lock.md
feature_layouts.md
feature_leader_key.md
feature_led_matrix.md
feature_macros.md
feature_mouse_keys.md
feature_oled_driver.md
feature_pointing_device.md
feature_ps2_mouse.md
feature_rgb_matrix.md
feature_rgblight.md
feature_space_cadet.md
feature_split_keyboard.md
feature_stenography.md
feature_swap_hands.md
feature_tap_dance.md
feature_terminal.md
feature_thermal_printer.md
feature_unicode.md
feature_userspace.md
feature_velocikey.md
flashing.md
flashing_bootloadhid.md
fuse.txt
getting_started_getting_help.md
getting_started_github.md
getting_started_introduction.md
getting_started_make_guide.md
getting_started_vagrant.md
hand_wire.md
hardware_avr.md
hardware_drivers.md
hardware_keyboard_guidelines.md
how_keyboards_work.md
i2c_driver.md
index.html
internals_defines.md
internals_gpio_control.md
internals_input_callback_reg.md
internals_midi_device.md
internals_midi_device_setup_process.md
internals_midi_util.md
internals_send_functions.md
internals_sysex_tools.md
isp_flashing_guide.md
keycodes.md
keycodes_basic.md
keycodes_us_ansi_shifted.md
keymap.md
newbs.md
newbs_building_firmware.md
newbs_building_firmware_configurator.md
newbs_flashing.md
newbs_getting_started.md
newbs_git_best_practices.md
newbs_git_resolving_merge_conflicts.md
newbs_git_resynchronize_a_branch.md
newbs_git_using_your_master_branch.md
newbs_learn_more_resources.md
newbs_testing_debugging.md
other_eclipse.md
other_vscode.md
power.txt
proton_c_conversion.md
qmk.css
quantum_keycodes.md
README.md
redirects.json
ref_functions.md
reference_configurator_support.md
reference_glossary.md
reference_info_json.md
sidebar.css
support.md
sw.js
translating.md
understanding_qmk.md
unit_testing.md
usb_nkro.txt
ws2812_driver.md

Quantum Mechanical Keyboard Firmware

Current Version Build Status Discord Docs Status GitHub contributors GitHub forks

What is QMK Firmware?

QMK (Quantum Mechanical Keyboard) is an open source community centered around developing computer input devices. Early on the community was keyboard focused, but has now grown to include mice and MIDI devices as well. The community maintains QMK Firmware, QMK Configurator, QMK Toolbox, qmk.fm, and this documentation.

Get Started

Totally new to QMK? There are two ways to get started:

Make It Yours

QMK has lots of features to explore, and a good deal of reference documentation to dig through. Most features are taken advantage of by modifying your keymap, and changing the keycodes.