Resolves#70, Resolves#67
Still needs some regression testing in general, and a definite
regression is that rotary encoders are no longer (for the immediate time
being) supported.
Moves to a much simpler internal state tracking system, and FAR lighter
matrix scan.
Removes MicroPython support entirely.
This backports from topic-docker the base image, which we can now use in
Circle to MASSIVELY speed up our CI situation.
The base image can currently only be pushed by @klardotsh as nobody else
has access to the Docker Hub org, but that can change in the future.
This removes the need for the user to define... most things, honestly.
Notably, `main()` is no longer the end user's responsibility. This also
allows us to do fun stuff going forward like validating keymaps for
sanity (ex: the key assigned to `KC_MO(x)` should be assigned to
`KC_TRNS` on the target layer or the user will never be able to escape
that layer).
This also disambiguates `BOARD` to always refer to an actual slab of
silicon, renaming to `USER_KEYMAP`.
Entrypoints are now a bit more wild, and mostly-unsupported boards no
longer have working entrypoints. It's probably just time to scrap those
boards for now (until we have BLE HID and/or bitbang USB HID, at least).
- Lock our vendored dependencies (also pull in some new ones I will be
needing soon)
- Ensure we have a sane way of pulling those vendored dependencies into
the DFU-flashable images (upy-freeze.txt)
- Break up the Makefile into a bunch of smaller, sometimes reusable
chunks
- Add a noop keyboard that simply exits, so we can flash a "keyboard"
that just dumps us straight to REPL
- Remove my personal ampy config since that's not portable at all