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
pcharest2000
5fcd31b97c
Resolve issue 285 in parsing logic, KC.NO was being parsed has an alpha, swapped the control flow treating the special case KC.NO and KC.XXXXX before alphas and nimbers
...
-Fix linting error on last PR
2021-12-06 11:12:55 -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
atsuyuki
5073a29501
Fixed wrong combination keycode conversion.
2021-12-01 09:49:23 -08:00
Christian Tu
11ff03523b
fix BLE HID not working with consumer keys
2021-11-06 14:44:50 -07:00
Yoichiro Tanaka
235560bf72
Fix the issue #256 by changing the timing to set True fo the hid_pending flag.
2021-10-24 14:13:15 -07: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
elric91
74186f20a1
typos
2021-10-17 09:12:20 -07:00
FHA
b2db921a5b
merge new_encoder.py to encoder.py
2021-10-17 09:12:20 -07:00
elric91
ed68ddb79d
Merge Encoder and NewEncoder. Enhance missteps handling
2021-10-17 09:12:20 -07:00
elric91
d9fb351448
Minor corrections to pass lint test
2021-10-17 09:12:20 -07:00
elric91
484bcc4d22
Black formatting for lint test
2021-10-17 09:12:20 -07:00
elric91
7993a4e415
New encoder module, with button action support
2021-10-17 09:12:20 -07:00
atsuyuki
6357141165
Removed spaces at end of line.
2021-10-14 23:02:57 -07:00
atsuyuki
edfd127148
Fix for pass the test.
...
Add newline at end of file.
2021-10-14 23:02:57 -07:00
atsuyuki
04b720da5b
Removed redundant parts and also simplified everything.
2021-10-14 23:02:57 -07:00
atsuyuki
d2b34097f2
Fix keymap_jp.py to pass the test
2021-10-14 23:02:57 -07:00
atsuyuki
0bc6fe0c97
Fix keymap_jp.py to pass the test
2021-10-14 23:02:57 -07:00
atsuyuki
d114a28f9e
Ported keymap_jp from QMK
...
Ported keymap_jp from QMK. With this, KMK will work as a JIS keyboard.
2021-10-14 23:02:57 -07:00
Christian Tu
7586df8de9
fix Key no_release argument
2021-10-01 15:13:45 +02:00
atsuyuki
8167e0bc72
Fix LT() doesn't work
...
Fixed a problem where layer switching was not working in LT().
2021-09-27 13:47:07 +09:00
Josh Klar
e5d7333e2e
Merge pull request #238 from kbjunky/master
...
added ADNS9800 and mouse keys/mouse buttons/mouse wheel support
2021-09-25 22:21:16 +00:00
Josh Klar
0a2f62a90b
Merge pull request #247 from xs5871/fix-tapdance
...
fix tapdancing
2021-09-25 22:14:48 +00:00
Christian Tu
199ec1d914
fix last merge
2021-09-25 11:20:45 +02:00
Christian Tu
abaafbd8c5
Merge remote-tracking branch 'upstream/master' into hold-tap
2021-09-25 11:13:41 +02:00
Christian Tu
99577357f6
move HoldTap to its own file
2021-09-25 11:07:33 +02:00
Christian Tu
209acc94b2
TT toggles layer state on key hold
2021-09-25 10:54:45 +02:00
Christian Tu
4e938ef6b6
use const values instead of magic strings
2021-09-25 10:48:43 +02:00
xs5871
8a15378733
fix tapdancing
2021-09-24 13:33:03 +00:00
kbjunky
1a5e7fa54b
adns9800_firmware.py removed
...
Cleaned up firmware file
Additional info in docs about missing firmware file and how to proceed without it.
2021-09-21 15:09:56 +08: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
7b1d3f17c4
Merge pull request #242 from honboubao/key-memory
...
reduce Key objects memory footprint
2021-09-20 23:29:38 +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
Kyle Brown
a894d8d140
fix sleep
2021-09-17 10:55:29 -07:00
Christian Tu
113e8eb867
fix doc typos and switched description for keycodes NUBS and NUHS
2021-09-17 08:54:22 -07:00
Kyle Brown
0e528435a3
resolved issues
2021-09-17 08:40:20 -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
3ad2a00dc9
initialize event handler lists in Key objects only when needed to reduce memory footprint
2021-09-17 16:14:51 +02:00
Christian Tu
3c9c527a96
add ble_name option to KMKKeyboard.go method
2021-09-17 16:14:11 +02:00
kbjunky
731f1b1030
Moved firmware to an external file
2021-09-17 15:31:40 +08:00
kbjunky
1ba8ea3728
Fixed formatting, unused import
2021-09-16 19:54:37 +08:00
kbjunky
3d6e4fde41
added ADNS9800 and mouse keys/mouse buttons/mouse wheel support
...
ADNS9800 - module for interfacing with ADNS9800 optical sensor
mouse_keys - module for using mouse buttons, mouse wheel as well as moving mouse cursor with keyboard keys
2021-09-15 20:14:12 +08:00
Kyle Brown
584eee64c6
Convert to supervisor ticks
2021-09-14 07:56:38 -07:00
Jasper Chan
7601a6f21f
Add QMK equivalent attributes of DiodeOrientation
2021-09-13 20:34:49 -07:00
Josh Klar
d3b315d059
Merge pull request #233 from Gigahawk/fix_send_string
...
Fix send_string (#206 )
2021-09-14 03:09:47 +00:00
Jasper Chan
88e3fe45d4
Fix send_string ( #206 )
2021-09-13 19:54:08 -07:00
Kyle Brown
e77a0af23c
add / to key names
2021-09-12 11:16:53 -07:00
pullenrc
15918db7ac
Encoder module! ( #211 )
...
* added atreus62 board
* Uploaded module for encoder support
* Update README.md
Co-authored-by: Ryan Pullen <rpullen@martinuav.com>
2021-07-19 08:30:28 -07:00
Josh Klar
083e4a701a
fix(keys): fix shifted keys bug, make lazy key defs more readable
2021-07-09 11:21:00 -07:00
Josh Klar
ab6aa1838c
chore: whatever it just took to get my PM2040 to boot
2021-07-09 11:21:00 -07:00
Kyle Brown
7310bdd780
add shorthand for KC_NO
2021-07-07 12:53:17 -07:00
Kyle Brown
a77fee7f04
Add shifted keynames to register unshifted versions
2021-07-07 12:53:17 -07:00
Kyle Brown
1a348f1539
docs and typos
2021-06-25 10:53:58 -07:00
Josh Klar
f79e508566
fix(lint): lint all the things; be more flexible in boards dir
2021-06-20 13:59:59 -07:00
Josh Klar
eb41d704b0
fix(split): do not attempt to send HID from slave sides of split boards, resolves infinite hang after single UART send
2021-06-20 13:55:18 -07:00
Josh Klar
aeee945728
fix(keys): force gc collection in keys setup to reduce memory fragmentation, probably at cost of performance
2021-06-20 13:55:18 -07:00
Josh Klar
6f8eb425b1
fix: allow userspace setting of Split.debug_enabled
2021-06-20 13:55:18 -07:00
Gigahawk
6d5b99d78d
Dynamically create core key definitions as required ( #200 )
...
* Dynamically allocate keys as required
* Restore comments
* Run linter
* Move key definitions into a dict
* Revert "Move key definitions into a dict"
This reverts commit 49ac7c2e40
.
2021-06-20 13:55:18 -07:00
Josh Klar
66788c29ca
fix(split): now able to send a single keydown, but nothing else, from secondary parts of split boards
2021-06-20 13:55:18 -07:00
Kyle Brown
33408dc228
Lily58 works. Wired splits still don't
2021-06-20 13:55:18 -07:00
Kyle Brown
581d8e269b
update kmkpython and hack fix bug
2021-06-20 13:55:18 -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
54f4644b5c
fix(lint): fix all outstanding linter errors
2021-06-20 13:14:53 -07:00
Kyle Brown
015e0cdfd7
linter fix
2020-10-15 15:42:12 -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
dc598ad439
Merge pull request #167 from dzervas/ble_multimple_conns
...
BLE Multiple Connections
2020-10-14 22:04:29 -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
Dimitris Zervas
a6d36d57a7
Add multimple connection support
2020-10-01 23:02:05 +03:00
Dimitris Zervas
69f7c3c8c2
Remove some code from BLE
2020-10-01 23:02:05 +03: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
Kyle Brown
fba97fc364
UART does in fact work
2020-10-01 12:41:18 -07:00
Kyle Brown
73b7464ec1
initial corne support on the nicenano
2020-10-01 12:41:18 -07:00
Dimitris Zervas
2cf64d8ce7
[ble] Add support to clear all current bondings
2020-09-29 19:35:49 -07:00
Dimitris Zervas
e5700eeb5f
[ble] Add support to change ble name from KMKKeyboard.go
2020-09-29 09:35:00 -07:00
Kyle Brown
18eeb4eadc
remove prints
2020-09-13 18:44:18 -07:00
Kyle Brown
6844654d39
Clearly a copy paste error
2020-09-13 18:44:18 -07:00
Dimitris Zervas
4d46653526
Fix formatting and make lab68 bluetooth
2020-09-13 18:20:58 -07:00
Dimitris Zervas
b082f26d9e
Fix typos in lab68 and add compatibility for MCP to matrix
2020-09-13 18:20:58 -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
Benjamin Dengler
1bd84e49aa
Added basic BLE implementation using Adafruit libs
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
Josh Klar
5da4555669
Fix isort ordering
2019-07-25 01:06:09 -07:00
Josh Klar
6baaf5e5d4
Continue to shuffle and burn stuff
...
- Remove the concept of "mcus". With only one target platform
(CircuitPython), it no longer makes a bunch of sense and has been kept
around for "what if" reasons, complicating our import chains and eating
up RAM for pointless subclasses. If you're a `board`, you derive from
`KeyboardConfig`. If you're a handwire, the user will derive from
`KeyboardConfig`. The end. As part of this, `kmk.hid` was refactored
heavily to emphasize that CircuitPython is our only supported HID stack,
with stubs for future HID implementations (`USB_HID` becomes
`AbstractHID`, probably only usable for testing purposes,
`CircuitPython_USB_HID` becomes `USBHID`, and `BLEHID` is added with an
immediate `NotImplementedError` on instantiation)
- `KeyboardConfig` can now take a HID type at runtime. The NRF52840
boards will happily run in either configuration once CircuitPython
support is in place, and a completely separate `mcu` subclass for each
mode made no sense. This also potentially allows runtime *swaps* of HID
driver down the line, but no code has been added to this effect. The
default, and only functional value, for this is `HIDModes.USB`
- Most consts have been moved to more logical homes - often, the main
or, often only, component that uses them. `DiodeOrientation` moved to
`kmk.matrix`, and anything HID-related moved to `kmk.hid`
2019-07-25 00:58:23 -07:00
Josh Klar
eb566b0f71
Remove two classes that havent been used in almost a year
2019-07-25 00:35:08 -07:00
Josh Klar
8c57844a22
Remove a ton of leftover MicroPython code and abstractions, including all of kmk.pins
2019-07-25 00:32:20 -07:00
Josh Klar
45cadc7e5a
CircuitPython-provided modules should be considered stdlib-equiv by isort terms. Apply this new rule.
2019-07-25 00:04:06 -07:00
Josh Klar
11a4604f88
Move our preload hacks out of keyboard_config into their own module. Isolate the ugliness
2019-07-25 00:03:35 -07:00
Josh Klar
38e8102532
Remove kmk.util by moving reboot/bootloader to their only use location
2019-07-24 23:45:50 -07:00
Josh Klar
02401e2ec0
Move kmk.util.get_wide_ordinal to kmk.handlers.sequences
2019-07-24 23:44:26 -07:00
Josh Klar
1eaf0e2c79
flatten_dict is no longer used, remove it
2019-07-24 23:43:39 -07:00