Commit Graph
52 Commits
Author SHA1 Message Date
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