29f64d7a93
This reworks how the tap-dance feature works: instead of one global state, we have a state for each tap-dance key, so we can cancel them when another tap-dance key is in flight. This fixes #527. Since we have a state for each key, we can avoid situation where a keyup would mess with our global state. This fixes #563. And while here, we also make sure to fire events only once, and this fixes #574. There is one breaking change, though: tap-dance debugging support was removed, because dumping the whole state would increase the firmware size too much. Any keymap that made use of this, will have to be updated (but there's no such keymap in the repo). Also, there's a nice trick used in this rework: we need to iterate through tap_dance_actions in a few places, to check for timeouts, and so on. For this, we'd need to know the size of the array. We can't discover that at compile-time, because tap-dance gets compiled separately. We'd like to avoid having to terminate the list with a sentinel value, because that would require updates to all keymaps that use the feature. So, we keep track of the highest tap-dance code seen so far, and iterate until that index. Signed-off-by: Gergely Nagy <algernon@madhouse-project.org> |
||
---|---|---|
.. | ||
keymaps | ||
config.h | ||
Makefile | ||
preonic.c | ||
preonic.h | ||
readme.md |
Preonic keyboard firmware
DIY/Assembled compact ortholinear 50% keyboard by Ortholinear Keyboards.
Quantum MK Firmware
For the full Quantum feature list, see the parent readme.md.
Building
Download or clone the whole firmware and navigate to the keyboards/preonic folder. Once your dev env is setup, you'll be able to type make
to generate your .hex - you can then use make dfu
to program your PCB once you hit the reset button.
Depending on which keymap you would like to use, you will have to compile slightly differently.
Default
To build with the default keymap, simply run make
.
Other Keymaps
Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap, create a file in the keymaps folder named <name>.c
and see keymap document (you can find in top readme.md) and existent keymap files.
To build the firmware binary hex file with a keymap just do make
with KEYMAP
option like:
$ make KEYMAP=[default|jack|<name>]
Keymaps follow the format <name>.c and are stored in the keymaps
folder.