Commit Graph

50 Commits

Author SHA1 Message Date
xs5871
b3ec37e274 expose keypad options through scanner init 2022-04-11 18:26:43 -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
7431192e95 move old matrix to kmk.scanners.digitalio_matrix 2022-04-09 14:40:40 -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
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
5c33fd3a9f implement combo/chord/sequence module 2022-03-14 19:27:12 -07:00
zyxwars
c46d18ecb7 fix wrong commit 2022-03-12 08:37:05 -08:00
zyxwars
2d005048cc Temp fix del coord crash 2022-03-12 08:37:05 -08:00
xs5871
54ae022846 fix keypad matrix init and unguarded debug print. 2022-02-27 09:58:57 -08:00
Ellie T
2fce09986e Adding Pimoroni Keybow and Keybow 2040 2022-02-20 18:42:38 -08:00
Ellie
57ba0fe8b2 Custom matrix scanners
- Introduce Scanner base class for MatrixScanner
- Create new Scanner using built-in keypad module
- Allow overriding the scanner used by KMKKeyboard
2022-02-20 12:00:15 -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
1c6b25517a implement hold-tap interrupt for Layers 2022-02-13 14:47:02 -08:00
Patrick McQuay
1c82f7d387 apply vylders fix and also figure out how to set _is_target correctly, as well as make it work nicely with ble. 2022-02-05 18:00:03 -08:00
xs5871
2874d49d20 disable hid_send on secondary split 2022-02-05 16:38:41 -08:00
patrickmcquay
7fbda871c2 real fix for swallowing keys, use a buffer and only process one key at a time. 2022-02-04 08:37:19 -08:00
Patrick McQuay
c09cd48218 fix for dropping keys 2022-02-04 08:37:19 -08:00
Christian Tu
b6201d43d4 unit tests for execution in desktop dev environment 2022-02-01 00:48:23 -08:00
xs5871
a62d39a252
make TapDance a module (#281)
* extract tapdance logic into a module

* clean out old tapdance code

* canonicalize key variable names

* split _process_tap_dance into td_pressed and td_released

* implement consistent argument order

* update documentation

* implement Module.process_key for key interception and modification

* fix tapdance realesing instead of pressing

* fix: default parameters in key handler

* cleanup holdtap

* add error handling to modules process_key

* fix: key released too late

Tapped keys didn't release on a "key released" event, but waited for a
timeout. Resulted in, for example, modifiers applying to keys after the
modifier was released.

* fix lint/formatting

* fix tap_time reference in modtap + minimal documentation

* fix lint
2022-01-18 05:21:05 +00:00
xs5871
410cf7af07 fix: catch IndexError when looking up key in keymap 2021-12-12 20:53:02 -08:00
Josh Klar
8063898eb2
fix: resolve #276 (reimplement #142) by allowing custom matrix scanners 2021-12-06 12:02:35 -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
Josh Klar
0a2f62a90b
Merge pull request #247 from xs5871/fix-tapdance
fix tapdancing
2021-09-25 22:14:48 +00:00
Christian Tu
abaafbd8c5 Merge remote-tracking branch 'upstream/master' into hold-tap 2021-09-25 11:13:41 +02:00
xs5871
8a15378733
fix tapdancing 2021-09-24 13:33:03 +00:00
Josh Klar
9c46eaeb9c
Merge pull request #240 from honboubao/ble-name
add ble_name option to KMKKeyboard.go method
2021-09-20 23:31:11 +00:00
Josh Klar
8199854b5e
Merge pull request #232 from KMKfw/topic-supervisor-ticks
Convert to supervisor ticks
2021-09-20 23:28:12 +00:00
Josh Klar
3bc038d0d8
Merge pull request #243 from honboubao/release-previously-pressed-key
always release the same key as was pressed
2021-09-20 23:25:54 +00:00
Christian Tu
0a61cbd4af change ModTap to allow for activating mod on hold, rolling key presses and fix stuck mod 2021-09-19 16:21:42 +02:00
Christian Tu
5cd34bcfea _on_matrix_changed to set key state variable 2021-09-19 04:24:37 +02:00
Christian Tu
113e8eb867 fix doc typos and switched description for keycodes NUBS and NUHS 2021-09-17 08:54:22 -07:00
Christian Tu
f36a18513b remember pressed keys and release the same keys when the physical switch is opened, even if the layer has changed between key down and key up and a different key is now active for that matrix position 2021-09-17 16:16:59 +02:00
Christian Tu
3c9c527a96 add ble_name option to KMKKeyboard.go method 2021-09-17 16:14:11 +02:00
Kyle Brown
584eee64c6 Convert to supervisor ticks 2021-09-14 07:56:38 -07:00
Kyle Brown
e72d2b8c34
feat(extensions): most of the extensions implementation, by kdb424 2021-06-20 13:55:16 -07:00
Josh Klar
9821f7bcc3
Initial attempt to merge internal_state with kmk_keyboard. Seems to work on Plank so far 2021-06-20 13:53:39 -07:00
Josh Klar
1b730cacf3
Merge pull request #180 from KMKfw/topic-rgb-animation
update RGB for more modern cpy versions
2020-10-14 22:07:30 -07:00
Josh Klar
1016dc552c
fix: everyone's linting; loosen one linter rule on user keymaps 2020-10-14 21:54:18 -07:00
Kyle Brown
80d95816e4 Switch to initiator/target 2020-10-13 11:07:08 -07:00
Kyle Brown
1a4e81a2e5 Remove GC. Not needed on newer Cpy versions 2020-10-13 10:58:18 -07:00
Kyle Brown
6e10babfbe update RGB for more modern cpy versions 2020-10-09 22:43:37 -07:00
Kyle Brown
29373e9a37 delay imports 2020-10-01 12:53:05 -07:00
Kyle Brown
e225d8b1d6 Allows continuation of firmware if bluetooth can't be imported 2020-10-01 12:53:05 -07:00
Dimitris Zervas
e5700eeb5f [ble] Add support to change ble name from KMKKeyboard.go 2020-09-29 09:35:00 -07:00
Josh Klar
5096bb7e30
chore: formatting 2020-07-07 20:35:11 -07:00
Benjamin Dengler
2197dab6fa
Moved BLE functionality to its own module 2020-07-07 20:35:11 -07:00
Elvis Pfützenreuter
ed452084fe Apply matrix_scanner attribute instead of fixed class 2019-08-06 19:17:01 -03:00
Josh Klar
666c0a4f08
Rename KeyboardConfig to KMKKeyboard - prepping for later merge with InternalState 2019-07-25 01:30:55 -07:00