xs5871
63973e4a6e
fix late release of oneshot keys
2022-04-17 18:33:24 -07:00
xs5871
f7dac9e96e
add documentation
2022-04-17 18:33:14 -07:00
xs5871
7ff77b97bb
implement support for multiple scanners at once
...
fixup
2022-04-17 18:33:14 -07:00
xs5871
d2e87b3e70
add keypad scanner for shift registers
2022-04-12 08:29:23 -07:00
xs5871
b3ec37e274
expose keypad options through scanner init
2022-04-11 18:26:43 -07:00
xs5871
ec8e167996
add documentation
2022-04-11 17:07:12 -07:00
xs5871
175f0c6a97
introduce consistent naming scheme
2022-04-11 17:07:12 -07:00
xs5871
e395e89864
provide default coord_mapping from scanners
2022-04-11 17:07:12 -07:00
xs5871
8ac497d99b
Make CPs keypad.KeyMatrix scanner the default.
2022-04-11 17:07:12 -07:00
xs5871
74fa1fb52e
update docs and examples
2022-04-09 14:40:40 -07:00
xs5871
7431192e95
move old matrix to kmk.scanners.digitalio_matrix
2022-04-09 14:40:40 -07:00
xs5871
e5f89963cf
fix pystack exhaustion caused by make_shifted_key.
...
This removes multiple layers of indirection, effectively making
`make_shifted_key` only as heavy on the stack as the reguler `make_key`.
2022-04-03 13:47:27 -07:00
xs5871
cc70c8f4a8
fix failing unit test.
...
During timeout processing, cancelations have to take immediate effect,
but new 0-delay timeouts have to be moved to the next cycle.
2022-04-02 10:06:27 -07:00
xs5871
2a53bd8b64
Allow passing user-defined MPY_SOURCES and MPY_CROSS to make
2022-03-31 16:14:17 -07:00
xs5871
07a485b04d
implement stricter and more consistent timeouts.
...
- stricter timeouts: Instead of adding an entire millisecond, use a list
of timeouts that are supposed to be handled on the same tick. This
reduces the delay between target tick and actual tick, especially for
many timeouts issued to the same tick, i.e. combos.
- consistent timeouts: Timeouts are now guaranteed to be handled in the
order they were issued. Timer rollover is handled properly.
caveat / change to the interface: the returned `timeout_key` is a tuple
of the target timeout tick and the index of the timeout at that tick.
2022-03-31 16:13:32 -07:00
xs5871
d4e72b98c9
remove dependency on neopixel lib for custom pixelbuffers
2022-03-24 17:56:59 -07:00
xs5871
ea19f5bb30
convert hsv_to_rgb to faster 16bit fixed point
2022-03-24 17:56:59 -07:00
xs5871
24d0587ac6
code deduplication: use utils.clamp
2022-03-24 17:56:59 -07:00
xs5871
5c33fd3a9f
implement combo/chord/sequence module
2022-03-14 19:27:12 -07:00
xs5871
de1d602b25
fix tick overflow and implement periodic timer class.
2022-03-06 00:02:17 -08:00
xs5871
54ae022846
fix keypad matrix init and unguarded debug print.
2022-02-27 09:58:57 -08:00
xs5871
8cec85e3ec
base animation speed on system timer
2022-02-25 16:04:09 -08:00
xs5871
ef7b29bd43
fix column flipping on rhs of split boards. (boards)
2022-02-20 13:55:37 -08:00
xs5871
ab7e0d3eb6
fix column flipping on rhs of split boards.
2022-02-20 13:55:37 -08:00
xs5871
dc4fc646aa
port all boards to new intify_coordinate signature.
2022-02-19 18:01:33 -08:00
xs5871
6840330f50
update documentation
2022-02-19 18:01:33 -08:00
xs5871
da3e87ee2d
convert matrix report from row/col byte array to linear key_number.
2022-02-19 18:01:33 -08:00
xs5871
ee4cce32cb
implements oneshot/sticky keys.
2022-02-13 16:43:14 -08:00
xs5871
eb3a7bbf1e
change unit test to reflect new modtap default behavior
2022-02-13 14:47:02 -08:00
xs5871
481c69b212
add at least some kind of documentation
2022-02-13 14:47:02 -08:00
xs5871
1c6b25517a
implement hold-tap interrupt for Layers
2022-02-13 14:47:02 -08:00
xs5871
a685618480
implement hold-tap interrupt on other key tap (i.e. release)
2022-02-13 14:47:02 -08:00
xs5871
5cae17c9f3
fix permanent hid_send
2022-02-13 14:47:02 -08:00
xs5871
7573556f33
fix hold-tap key interrupted by other hold-tap key
2022-02-13 14:47:02 -08:00
xs5871
f30206c7d5
implement per-key tap_time.
2022-02-13 14:47:02 -08:00
xs5871
21c058aaa8
add hold-tap interrupt behavior: prefer hold.
...
The interrupt resolution of hold-tap keys can now be set to resolve to
either tap or hold key. The default mod-tap is set to prefer hold.
2022-02-13 14:47:02 -08:00
xs5871
f2aabd87cd
fix after rebase
...
fix after rebase
2022-02-07 16:25:45 -08:00
xs5871
91562abde9
update documentation
2022-02-07 16:25:45 -08:00
xs5871
65f48b53a4
remove out-of-scope reference
2022-02-07 16:25:45 -08:00
xs5871
cd4ba26e95
add a keycode for setting LED to a defined brightness
2022-02-07 16:25:45 -08:00
xs5871
967046587b
apply suggested changes
2022-02-07 16:25:45 -08:00
xs5871
4a83e6de85
code deduplication
2022-02-07 16:25:45 -08:00
xs5871
9e8b8376c5
implement led backlight for multiple pwm channels
2022-02-07 16:25:45 -08:00
xs5871
2874d49d20
disable hid_send on secondary split
2022-02-05 16:38:41 -08:00
xs5871
3e3255ffea
fix lock_status on secondary split
2022-02-05 07:29:01 +00:00
xs5871
245f7912b6
fix formatting
2022-01-22 08:55:40 -08:00
xs5871
8419ed789c
implement keyboard lock status reader API
2022-01-22 08:55:40 -08:00
xs5871
410cf7af07
fix: catch IndexError when looking up key in keymap
2021-12-12 20:53:02 -08:00
xs5871
e1300ba767
fix hid report type disambiguition
2021-12-06 09:22:21 -08:00
xs5871
a8b2bf75ad
fix unicode sequence
2021-12-03 15:28:15 -08:00
xs5871
3e91f63c88
fix tapdance with momentary modifiers; tap-timeout per tap.
...
Improves handling of momentary modifiers (i.e. different actions on hold or
press/release) as tapdance targets.
tap_time is reset for each consecutive single tap, instead of being
applied to the entire tap sequence.
2021-10-19 00:16:49 -07:00
xs5871
8a15378733
fix tapdancing
2021-09-24 13:33:03 +00:00