John Morrison
73e95bfdde
Change to be an extension
2022-05-08 20:10:41 +00:00
John Morrison
9f964aba36
Allow strings in keymap. Replace with keys in keyboard _init cycle.
2022-05-08 20:10:41 +00:00
Steven Wilde
f2b8c7106e
Move the changes to keypad.py
2022-05-04 16:40:48 +00:00
Steven Wilde
30252099cd
Fix crash when typing quickly on a split board
2022-05-04 16:40:48 +00:00
John Morrison
6c2d64843b
Align debug messages with method called
2022-05-02 16:50:54 -07:00
xs5871
fb5ecf7e38
refactor debug output
2022-04-23 14:25:21 -07:00
xs5871
642790b2e7
remove keyboard.current_key (never actually used)
2022-04-23 14:25:21 -07:00
xs5871
e04a01c25e
factor out module pre-processing
2022-04-23 14:25:21 -07:00
xs5871
7ff77b97bb
implement support for multiple scanners at once
...
fixup
2022-04-17 18:33:14 -07:00
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