* Option to use function for KEYCODE2 routines. Convert the KEYCODE2SYSTEM and KEYCODE2CONSUMER macros to functions, defaulting to using the macros. The function form allows the compiler to optimize the switch statement itself, over the macro nested ternaries. To enable this feature, #define USE_KEYCODE2_FUNCTION. Testing against a random selection of avr-based keyboards, this increased available flash by ~500 bytes. For arm-based keyboards, the available flash increased by ~400 bytes. * Replace macro with function entirely. As zvecr states, go bold and just commit to using the function instead of the macro. * Reformat whitespace now that functional review is done Verified against clang-format output.
ZSA's fork of QMK Firmware
This purpose of this fork is maintain a clean repo that only contains the keyboard code that we need, and as little else as possible. This is to keep it lightweight, since we only need a couple of keyboards. This is the repo that the EZ Configurator will pull from.
Supported Keyboards
Maintainers
QMK is developed and maintained by Jack Humbert of OLKB with contributions from the community, and of course, Hasu. The ZSA branch is maintained by Drashna, ZSA's official QMK Liaison, and by Florian Didron, ZSA's lead developer, with input from Erez Zukerman (ZSA CEO).
Update Process
- Check out branch from ZSA's master branch:
git remote add zsa https://github.com/ErgoDox-EZ/qmk_firmware.gitgit fetch --allgit checkout -B branchname zsa/mastergit push -u zsa branchname
- Check for core changes:
- https://github.com/qmk/qmk_firmware/commits/master/quantum
- https://github.com/qmk/qmk_firmware/commits/master/tmk_core
- https://github.com/qmk/qmk_firmware/commits/master/util
- https://github.com/qmk/qmk_firmware/commits/master/drivers
- https://github.com/qmk/qmk_firmware/commits/master/lib
- These folders are the important ones for maintaining the repo and keeping it properly up to date. Most, but not all, changes on this list should be pulled into our repo.
git cherry-pickthe commits we wantgit rm docs/* -rto remove the document updates when cherry picking. Repeat for any keyboard/keymap/etc that have changes that we aren't interested in
- Commit update
- Include commit info in
[changelog.md](http://changelog.md)
- Include commit info in
- Open Pull request, and include information about the commit
Strategy
To keep PRs small and easier to test, they should ideally be 1:1 with commits from QMK Firmware master. They should only group commits if/when it makes sense. Such as multiple commits for a specific feature (split RGB support, for instance)
Merging
Pull Requests should be merged/rebased, not squashed, so we can maintain a commit history that is close to QMK Firmware's, for ease of reference.