Commit Graph

431 Commits

Author SHA1 Message Date
xs5871
63973e4a6e fix late release of oneshot keys 2022-04-17 18:33:24 -07:00
xs5871
7ff77b97bb implement support for multiple scanners at once
fixup
2022-04-17 18:33:14 -07:00
Ryan Rotter
c7490087b6 Add ROPT and LOPT as alias for alt keys
Additional aliases for macOS key names to match QMK behavior
2022-04-16 17:09:47 -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
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
levpopov
c880c02ad5 use keypad.Event instead of Matrix.KeyEvent 2022-04-10 14:30:45 -07:00
levpopov
89351fc203 Fix direct GPIO scanner for split keyboards
https://github.com/KMKfw/kmk_firmware/issues/372
2022-04-10 14:30:45 -07:00
Syed Hussaini
4b03ba846a formatted module with black 2022-04-09 15:19:02 -07:00
Syed Hussaini
be308d516f added docs 2022-04-09 15:19:02 -07:00
Syed Hussaini
c950785385 caps word implementation 2022-04-09 15:19:02 -07:00
xs5871
7431192e95 move old matrix to kmk.scanners.digitalio_matrix 2022-04-09 14:40:40 -07:00
Syed Hussaini
6002ad33e1 rename to cg_swap and added docs 2022-04-08 20:22:43 -07:00
Syed Hussaini
3f0283422d swapping control with cmd 2022-04-08 20:22:43 -07:00
sparksThefire
7b92596937 Fix WinCompose usage
WinCompose requires the `enter` key to be typed at the end of a special unicode character. In order to help print emojis and emoticons in a windows environment, I have added the enter key to the Windows compose unicode sequence method. I have tested this with my local keyboard.
2022-04-05 18:01:53 -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
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
tonasz
119ab3d80a Fix pimoroni_trackball.py formatting 2022-02-08 13:23:35 -08:00
tonasz
7fba42f28c Small pimoroni_trackball.py refactors 2022-02-08 13:23:35 -08:00
tonasz
827862b34b Pimoroni Trackball draft module 2022-02-08 13:23:35 -08:00
xs5871
f2aabd87cd fix after rebase
fix after rebase
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
patrickmcquay
aa01da7e1d add checksum to split uart code. 2022-02-05 18:00:03 -08:00
patrickmcquay
1387cb2660 Update kmk/modules/split.py so that ble boards work with ee hands.
Co-authored-by: Tonasz <27835465+Tonasz@users.noreply.github.com>
2022-02-05 18:00:03 -08:00
Patrick McQuay
fa0062326b changes from black 2022-02-05 18:00:03 -08:00
Patrick McQuay
be2bbce21a fix some linting issues 2022-02-05 18:00:03 -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
Kyle Brown
9f373b4be0 Fix linter 2022-02-05 17:59:44 -08:00
xs5871
2874d49d20 disable hid_send on secondary split 2022-02-05 16:38:41 -08:00
pcharest2000
6ecb7807c2 Code refractor of private members, I am not python programmer, and final try to fix linting error after I quit 2022-02-05 16:37:51 -08:00
pcharest2000
99a9c6fd80 Tried to fix linting 2022-02-05 16:37:51 -08:00
pcharest2000
25fd205c3e Implemented basice linear acceleration.... This makes it more usable, ill update if PR is accepted 2022-02-05 16:37:51 -08:00
xs5871
3e3255ffea fix lock_status on secondary split 2022-02-05 07:29:01 +00:00
RT_GEN
55a6636741 Fixed multiple encoders not working
Multiple encoders didn't work as a result of an unbound value of 'idx', the loop counter in the during_bootup method. Binding this value has fixed the issue. This has been tested on hardware (6 encoders) and is confirmed working.
2022-02-05 07:28:02 +00: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
f90de872d8 fix bytearray.startswith not available in CircuitPython 2022-02-02 17:54:23 -08:00
Christian Tu
b6201d43d4 unit tests for execution in desktop dev environment 2022-02-01 00:48:23 -08:00
Kyle Brown
328a29c439 Fix isort on incorrect files 2022-01-28 17:58:06 -08:00
abhijithabhiakl
0bebdd6d27 fix monocolor LED 2022-01-25 23:44:07 -08: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
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
tonasz
10f8c74ad9 Allow declaring encoders without a button 2022-01-17 21:19:51 -08: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