Commit Graph

110 Commits

Author SHA1 Message Date
Josh Klar
faa61f7df1
Remove debug leftovers causing failed lints 2018-12-29 07:27:44 -08:00
Josh Klar
e5c8f5587d
Merge unicode handlers with the others. Prove arbitrary Macros are now doable in userspace 2018-12-29 07:10:11 -08:00
Josh Klar
8a21b4135d
Restore Unicode Macro support 2018-12-29 06:58:08 -08:00
Josh Klar
57239e3163
Everything necessary to get this to boot finally. Planck types! 2018-12-29 06:03:31 -08:00
Josh Klar
39a6465658
Checkpoint alpha: Reflow macros and keycodes into a consistent structure. Most internal state functionality largely untouched (just moved) 2018-12-29 04:44:52 -08:00
Josh Klar
be4ca3e734
kitsym4: Support the keeb.io Iris using the ProMicro<->ItsyBitsyM4 converter board
The thumb cluster maps a little goofy and I'd like to clean up the
keymap here - it's ENTIRELY NOT OBVIOUS how this works right now. Using
this keymap as an example, the physical layout of my thumb cluster is
actually:

Far left: Left
Next to the right: Right
Bottom right: Shift
Top right: MO(2)

You can see what this maps to in code, and it's not at all intuitive.

`swap_indicies`, which we already support, is useless here because,
unlike the Planck/Klaranck, these aren't 1:1 key swaps, but an entirely
custom mapping of columns. This will require something like QMK's
solution to fully custom (or at least partially custom) keymaps at a
core level, and isn't something I feel like tackling tonight
necessarily.
2018-12-28 23:20:08 -08:00
Kyle Brown
952f6b7022 Added the extra data pin. Will add docs when it's actually doing something 2018-12-12 15:43:33 -08:00
Kyle Brown
5ef6a7a96a Added docs, and removed some old, not needed docs 2018-12-12 15:43:33 -08:00
Kyle Brown
e6acef9648 Add initial support (untested) for my layout on nyquist with converter board
Unbrick splits completely

Unbrick splits completely
2018-12-12 15:43:33 -08:00
Josh Klar
d6a0538009
kmk.consts: rename UnicodeModes => UnicodeMode
This brings this naming into consistency with both fellow consts in the
same file (ex. LeaderMode is singular) as well as the variables in which
the consts are usually used (usually a `Firmware.unicode_mode` attribute
in a keymap).
2018-12-04 17:03:13 -08:00
Josh Klar
b37f3ecdd9
Resolves #85 by bundling string polyfill directly, simplifying deploys 2018-11-05 22:05:07 -08:00
Josh Klar
94ac6d0cbd
Merge master and reconcile tapdance with splits
This took a bit of brain surgery to firmware.py that deserves its own
commit message beyond the default merge commit message - tl;dr though,
it appears to work fine.
2018-11-05 21:15:23 -08:00
Kyle Brown
15fea0189b Added remote debugger and cleaned up several things Looks good to merge 2018-10-28 15:03:22 -07:00
Kyle Brown
2b28b99503 Finalize docs, and unbreak failed rebase 2018-10-28 15:03:22 -07:00
Kyle Brown
744d7c1f5d Needs docs, but is basically complete. #3 2018-10-28 15:03:22 -07:00
Kyle Brown
8d3e4e0a63 Fully working split. Needs further testing 2018-10-28 15:03:22 -07:00
Kyle Brown
af3eccd715 First keys on slave half actually type! Still needs a bit of work 2018-10-28 15:03:22 -07:00
Kyle Brown
49da93e436 Basic uart split support. Still need docs and testing 2018-10-28 15:03:22 -07:00
Josh Klar
d117005d8d
Add press-and-hold support to TapDance, and clean up various ways of mangling key press states. Remove pending_keys entirely, replaced with a callback timeout) 2018-10-25 21:58:26 -07:00
Josh Klar
0c13806f1c
Add key repeat support for basic alphanumeric tap dance 2018-10-25 21:58:26 -07:00
Josh Klar
b0f8c58828
Beginnings of basic tap dance 2018-10-25 21:58:25 -07:00
Josh Klar
cc1bfc657f
Silly bugfix in ShiftedKeycodes 2018-10-25 21:58:24 -07:00
Josh Klar
74716c4c20
More sane default leader mode 2018-10-19 02:08:13 -07:00
Josh Klar
2d1290a12c
Add LeaderMode.TIMEOUT (QMK default Leader mode)
This allows leader sequences to "time out" rather than requiring an
Enter keypress to end.

This also rolls back some unnecessary changes from #72 to the matrix
scanner for performance reasons.

In theory we can use this in the future for Tap Dance support (#40)

Resolves #1
Resolves #37
2018-10-19 01:49:37 -07:00
Josh Klar
54f7117712
Resolves #38: Add KC.DEBUG to toggle log spew at runtime 2018-10-19 00:58:17 -07:00
Josh Klar
85ab403d22
More clear matrix scan function 2018-10-18 23:33:04 -07:00
Josh Klar
9089106316
Work out some bugs where I could get stuck on layers. Add more debugging output 2018-10-18 23:24:19 -07:00
Josh Klar
6c5a111d65
Import hacks MUST be in non-isort order 2018-10-18 12:56:02 -07:00
Josh Klar
e2ed95556a
Try to fix various advanced layers 2018-10-16 23:11:50 -07:00
Josh Klar
b92aceb682
Fix linting 2018-10-16 22:43:47 -07:00
Josh Klar
bf500d37ff
unbreak tap time 2018-10-16 22:39:17 -07:00
Josh Klar
d042b458f0
Fix Kyle board, and unbreak MO-dependent layers 2018-10-16 22:36:01 -07:00
Josh Klar
0d94bf4c06
Maybe surface errors in the right order 2018-10-16 22:30:33 -07:00
Josh Klar
16c82b1c0c
OMEGA REFACTOR! Perf grind basically complete.
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.
2018-10-16 22:21:45 -07:00
Josh Klar
0c72554773
Add support for a Planck Rev 6 spidered to a Feather M4 Express 2018-10-16 01:05:32 -07:00
Josh Klar
ebc45d59dc
Address #52 almost entirely - target upstream builds of CircuitPython and simply copy (rsync) KMK source, a basic main.py, and the user's keymap to the CIRCUITPY drive 2018-10-15 02:49:12 -07:00
Kyle Brown
d295dc52e6
Small fix for leaving leader 2018-10-15 00:16:34 -07:00
Josh Klar
b296148631
Merge branch 'master' into topic-low-hanging-fruit 2018-10-11 20:42:03 -07:00
Kyle Brown
5313e5f5b5 Fixed caps issue on leader_dictionary and debug_enable 2018-10-11 20:41:52 -07:00
Kyle Brown
37aeeac10a Should have been caps as these are const 2018-10-11 20:41:52 -07:00
Josh Klar
cd2eb3f1cc
Merge branch 'master' into topic-low-hanging-fruit 2018-10-11 20:41:34 -07:00
Kyle Brown
e6ddaf847f
Remove cruft 2018-10-11 20:33:47 -07:00
Josh Klar
98dfb53a83
Resolve #59, adds MEH and HYPER modifiers
This also cleans up some weird potentially-buggy logic paths within the
ModifierKeycode creation and handling. I can now press a free-floating
HYPER in my keymap and see the appropriate codes in `xev` for press and
release events.
2018-10-11 19:41:00 -07:00
Josh Klar
b763dd9c4b
Resolves #53 by removing InternalState.update and moving its still-unused functionality up the stack a bit 2018-10-11 19:20:03 -07:00
Josh Klar
b14c56f708
Unbreak SAMD51 by deferring imports to runtime in the entrypoint (ref #52) 2018-10-11 19:09:07 -07:00
Josh Klar
00899d1b0f
Resolves #56 by moving kmk.common.* up a level to kmk.* 2018-10-11 18:13:29 -07:00
Josh Klar
d5a2be38ef
Default rotary encoder to raw no-slop access, opt-in in keymap. Feels WAY better now. 2018-10-11 13:38:33 -07:00
Josh Klar
6589982eda
Support a special form of macro based on rotary encoder directions 2018-10-11 13:38:32 -07:00
Josh Klar
e2c9567bbf
Raw rotary encoder support 2018-10-11 13:38:32 -07:00
Josh Klar
3b0cd6c421
Refactor MatrixScanner to use enhanced Pins abstraction; add DEBUG_ENABLED to SAMD51 boards 2018-10-11 13:38:31 -07:00