Go to file
Drashna Jaelre 542cb0a8ce [Core] Convert Dynamic Macro to a Core Feature (#5948)
* Convert Dynamic Macro to a Core Feature

This imports the code from Dynamic Macro into the core code, and handles it, as such.

This deprecates the old method but does not remove it, for legacy support. This way, no existing user files need to be touched.

Additionally, this reorganizes the documentation to better reflect the changes.

Also, it adds user hooks to the feature so users can customize the existing functionality.

Based heavily on and closes #2976

* Apply suggestions from code review

Co-Authored-By: fauxpark <fauxpark@gmail.com>
Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Cleanup based on feedback

* Add short-form keycodes and document them

- add short-form keycodes to quantum/quantum_keycodes.h
- document the new aliases in docs/feature_dynamic_macros.md

* Add Dynamic Macros section and keycodes to docs/keycodes.md

* Make anti-nesting optional

* Add documentation for DYNAMIC_MACRO_NO_NESTING option

* Fix Merge artifacts

* Fix formatting typo in docs

Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com>

* Remove DYNAMIC_MACRO_RANGE as it's not needed

* Fix includes and layer var type
2019-11-04 22:59:13 -08:00
.github Revert "Initial actions/labeler config (#7091)" (#7156) 2019-10-26 00:27:17 +01:00
.vscode Generalize Tap Dance Layer functions (#6629) 2019-09-21 11:22:27 -07:00
bin Fix "could not find module" error message formatting (#7219) 2019-10-30 22:50:45 -07:00
docs [Core] Convert Dynamic Macro to a Core Feature (#5948) 2019-11-04 22:59:13 -08:00
drivers Adds raw write functions to the OLED driver (#7237) 2019-11-03 14:34:47 -08:00
keyboards Switch Quefrency to serial for independent halves (#7262) 2019-11-05 17:37:54 +11:00
layouts [Keymap] Moar personal keymap and userspace tweaks (#7238) 2019-11-01 18:48:58 -07:00
lib Fix the CLI docs (#6979) 2019-10-29 01:24:36 +00:00
quantum [Core] Convert Dynamic Macro to a Core Feature (#5948) 2019-11-04 22:59:13 -08:00
tests clang-format changes 2019-08-30 15:01:52 -07:00
tmk_core Fixes #7256: USB descriptor to identify correctly as MIDI device. (#7258) 2019-11-05 00:02:42 +00:00
users [Keymap] Add new LED/RGB key codes (#7254) 2019-11-04 13:47:52 -08:00
util CI - Fix change detection (#7038) 2019-11-04 16:18:57 -08:00
.clang-format fix indent size 2019-06-11 01:51:40 -07:00
.clang_complete Vim Layout for Ergodox-EZ (mac only) (#2112) 2017-12-11 21:06:05 -05:00
.editorconfig QMK CLI and JSON keymap support (#6176) 2019-07-15 12:14:27 -07:00
.gitattributes Set eep files to binary mode 2016-08-27 18:37:28 +03:00
.gitignore [Docs] Update hand wire guide (#7044) 2019-10-25 11:48:59 -07:00
.gitmodules add lufa as a submodule 2019-08-30 15:01:52 -07:00
.travis.yml CI - Fix change detection (#7038) 2019-11-04 16:18:57 -08:00
CODE_OF_CONDUCT.md updates the coc 2019-08-24 12:43:39 -04:00
Dockerfile Update docker util script and travis to use new base container 2019-07-14 21:01:38 -07:00
Doxyfile Generate API docs from source code comments (#2491) 2018-03-22 02:50:38 -04:00
LICENSE add an explicit lisence file for github to pickup 2017-11-13 20:50:54 -05:00
Makefile Add list-keymaps make target (#5563) 2019-09-21 00:00:58 -07:00
Vagrantfile Configure Vagrant to use qmk_base_container (#6194) 2019-07-16 01:20:34 -07:00
autocomplete.sh Make arguments redo, subproject elimination (#1784) 2017-10-14 11:32:19 -10:00
book.json adds redirects for docs 2017-08-19 08:31:54 -04:00
bootloader.mk Update bootloader.mk (#6698) 2019-09-18 09:48:58 +10:00
build_full_test.mk Add SRC and OPT_DEFS when building tests 2017-07-20 10:17:31 -04:00
build_json.mk Configuration system for CLI (#6708) 2019-09-22 13:25:33 -07:00
build_keyboard.mk add 'objs-size' target into tmk_core/avr.mk (#5490) 2019-07-15 22:45:31 -07:00
build_layout.mk Add a mechanism for force building a particular community layout (#5027) 2019-02-14 20:14:26 -08:00
build_test.mk Split common.mk into common.mk and common_features.mk 2017-06-18 21:22:22 +03:00
common.mk Move Split Common VPATH addition (#4716) 2018-12-31 08:45:44 -08:00
common_features.mk [Core] Convert Dynamic Macro to a Core Feature (#5948) 2019-11-04 22:59:13 -08:00
doxygen-todo Generate API docs from source code comments (#2491) 2018-03-22 02:50:38 -04:00
license_GPLv2.md Clarify the quantum license (#1042) 2017-03-28 15:20:36 -07:00
license_GPLv3.md Clarify the quantum license (#1042) 2017-03-28 15:20:36 -07:00
license_Modified_BSD.md Clarify the quantum license (#1042) 2017-03-28 15:20:36 -07:00
message.mk Add list-keymaps make target (#5563) 2019-09-21 00:00:58 -07:00
nose2.cfg Setup a python test framework 2019-09-07 07:58:41 -07:00
readme.md [Docs] Fix missing link in readme (#6958) 2019-10-08 21:59:11 -07:00
requirements.txt Configuration system for CLI (#6708) 2019-09-22 13:25:33 -07:00
secrets.tar.enc update building for .hex, secrets moving 2017-08-21 21:57:46 -04:00
setup.cfg QMK CLI and JSON keymap support (#6176) 2019-07-15 12:14:27 -07:00
shell.nix add python3 to shell.nix (#6774) 2019-09-21 11:59:18 -07:00
show_options.mk Add Dip Switch as a core feature (#6140) 2019-09-03 08:34:31 -07:00
testlist.mk Add basic infrastrucure for building full tests 2017-06-18 21:08:23 +03:00

readme.md

Quantum Mechanical Keyboard Firmware

Current Version Build Status Discord Docs Status GitHub contributors GitHub forks

This is a keyboard firmware based on the tmk_keyboard firmware with some useful features for Atmel AVR and ARM controllers, and more specifically, the OLKB product line, the ErgoDox EZ keyboard, and the Clueboard product line.

Documentation

The docs are powered by Docsify and hosted on GitHub. You can request changes by making a fork and pull request, or by clicking the "Edit Document" link at the bottom of any page.

Supported Keyboards

The project also includes community support for lots of other keyboards.

Maintainers

QMK is developed and maintained by Jack Humbert of OLKB with contributions from the community, and of course, Hasu. The OLKB product firmwares are maintained by Jack Humbert, the Ergodox EZ by ZSA Technology Labs, the Clueboard by Zach White, and the Atreus by Phil Hagelberg.

Official Website

qmk.fm is the official website of QMK, where you can find links to this page, the documentation, and the keyboards supported by QMK.