QMK (Quantum Mechanical Keyboard) Firmware is a [[GPLv2]] licensed keyboard firmware written in [[3. Reference/Software/Programming Languages/C|C]].
- [Website](https://qmk.fm/)
- [GitHub](https://github.com/qmk/qmk_firmware)
- [Documentation](https://docs.qmk.fm)
- [Configurator](https://config.qmk.fm)
> QMK (_Quantum Mechanical Keyboard_) is an open source community centered around developing computer input devices. The community encompasses all sorts of input devices, such as keyboards, mice, and MIDI devices.
# Notability
Used by many keyboards, including the [[ErgoDox EZ]] that I own.
The development is primarily maintained by a developer from [[OLKB]] behind the [[Planck]] and [[ZSA]], the company behind the [[ErgoDox EZ]], and others.
# Philosophy
QMK is a hard fork of [[TMK]] by keyboard manufacturers and is structurally very different at this point. I'm not aware of any animosity between the developers.
> QMK started as [Jack Humbert](https://github.com/jackhumbert)‘s fork of TMK for the Planck. After a while Jack’s fork had diverged quite a bit from TMK, and in 2015 Jack decided to rename his fork to QMK.
\- Official QMK Docs
The upside of QMK vs TMK is that QMK has been designed to support a wide variety of different keyboards and can keep all of their configurations rather simple and part of the mainline codebase, ensuring that all keyboards benefit from improvements without each keyboard creator needing to update from upstream and maintain their own forks in perpetuity.
Despite [[ZSA]] being a first party developer of the QMK firmware, they also have their own [fork](https://github.com/zsa/qmk_firmware) of QMK "for stability and legal purposes".
# Hardware Support
Officially supports the keyboards of its creators as well as dozens (if not hundreds) [more](https://github.com/qmk/qmk_firmware/tree/master/keyboards).
# Features
# Tips
# References