414 Commits

Author SHA1 Message Date
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
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
yswallow
d12f9a18f1 avoid "Already advertising" error 2022-03-23 21:16:09 -07:00
yswallow
1a7d1d53f6 Enabling Completely Wireless
You can use SplitType.BLE and HIDModes.BLE at the same time
2022-03-23 21:16:09 -07:00
tonasz
9539f2dc74 Fix formatting 2022-03-23 21:16:09 -07:00
tonasz
3687212ed7 Split BLE background advertising 2022-03-23 21:16:09 -07:00
tonasz
d47143463b Fix broken split BLE 2022-03-23 21:16:09 -07:00
Boot-Error
55a75cb9b3 fix: after_matrix_scan when board is the target 2022-03-23 21:00:51 -07:00
giovanniborella
4f7f3dcc3c Implement easypoint 2022-03-20 15:22:57 -07:00
Kyle Brown
1863543428 fix comment 2022-03-20 11:04:15 -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
illness072
3442a21835 Fix _find_key_in_map callings 2022-03-08 17:45:07 +00:00
donutcat
4d1f9e487e Fix MIDI PR files 2022-03-06 00:56:05 -08:00
DonutCables
e52af4f58a MIDI module and docs 2022-03-06 00:56:05 -08: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
Ellie T
2fce09986e Adding Pimoroni Keybow and Keybow 2040 2022-02-20 18:42:38 -08:00
xs5871
ab7e0d3eb6 fix column flipping on rhs of split boards. 2022-02-20 13:55:37 -08:00
Jeroen Harkes
d26d397f10 Changed to single quotes 2022-02-20 12:10:04 -08:00
Jeroen Harkes
fd30b7a8d8 extension for indicating layer status with leds 2022-02-20 12:10:04 -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
Ellie T
2d4db12c46 Override LED creation in the RGB extension. 2022-02-19 22:27:31 -08:00
Rene Giovanni Borella
fb783c302c fix formatting, run test 2022-02-19 21:33:45 -08:00
René Giovanni Borella
2096f1a950 Update kmk/modules/encoder.py
Co-authored-by: Tonasz <27835465+Tonasz@users.noreply.github.com>
2022-02-19 21:33:45 -08:00
René Giovanni Borella
a34272dd18 Update kmk/modules/encoder.py
Co-authored-by: Tonasz <27835465+Tonasz@users.noreply.github.com>
2022-02-19 21:33:45 -08:00
René Giovanni Borella
7f5ea97bba Update kmk/modules/encoder.py
Co-authored-by: Tonasz <27835465+Tonasz@users.noreply.github.com>
2022-02-19 21:33:45 -08:00
René Giovanni Borella
7f7eaafbf3 Update kmk/modules/encoder.py
Co-authored-by: Tonasz <27835465+Tonasz@users.noreply.github.com>
2022-02-19 21:33:45 -08:00
Rene Giovanni Borella
8e4ab1d733 Encoder class rebuild
implement BaseEncoder
2022-02-19 21:33:45 -08:00
Rene Giovanni Borella
0e029ebf72 tests pass locally 2022-02-19 21:33:45 -08:00
Rene Giovanni Borella
f02ff1463a reformatted for black 2022-02-19 21:33:45 -08:00
Rene Giovanni Borella
671aa60838 basic functions 2022-02-19 21:33:45 -08:00
xs5871
da3e87ee2d convert matrix report from row/col byte array to linear key_number. 2022-02-19 18:01:33 -08:00
tonasz
7519a97eaa Move pio_uart.py to transports folder 2022-02-16 17:59:59 -08:00
tonasz
8c0f8ccbc3 Fix pio_uart.py formatting 2022-02-16 17:59:59 -08:00
tonasz
fdf8e9f78c Add RP2040 PIO UART implementation for split keyboards 2022-02-16 17:59:59 -08:00
xs5871
ee4cce32cb implements oneshot/sticky keys. 2022-02-13 16:43:14 -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
tonasz
0f7afe5b2c Add polling_interval to trackball 2022-02-08 13:23:35 -08:00