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
Josh Klar
ef1c69aa2c
Fix linting; move kmk.util.intify_coordinate to kmk.matrix.intify_coordinate (trying to deprecate/remove util)
2019-07-24 23:43:00 -07:00
Josh Klar
64267bdc5b
fix a totally unrelated bug
2019-07-24 23:15:57 -07:00
Josh Klar
aaeaa74a0c
Run black against source tree
2019-07-24 23:03:13 -07:00
Josh Klar
5c0c13e8d0
Prepare for Black autoformatting: dependencies, string staging, single-quote string override
2019-07-24 23:03:13 -07:00
Josh Klar
39220beddb
tag releases within the dists as well (for debugging, mostly)
2019-07-24 21:25:10 -07:00
Josh Klar
a51d11f6e6
A wild W504 linter error appeared! Fix those.
2019-07-24 21:25:10 -07:00
Josh Klar
1e9625ae0e
Rename "Firmware" to "KeyboardConfig" for clarity in main.py and to illustrate separation of KeyboardConfig/InternalState
2019-07-24 21:25:10 -07:00
Josh Klar
e8c3b5ac70
The CircuitPython "MCU" (misnomer now?) is generic anyway - name it as such
2019-07-24 21:25:10 -07:00
Josh Klar
d15aa65cc6
Kyle built a Gherkin handwire on Feather nrf52840! Unclean but works
2019-07-17 16:05:40 -07:00
Kyle Brown
004f40e7d2
Unbreak the fix
2019-07-17 16:05:40 -07:00
Kyle Brown
b6af43ef90
rgb animations perf
2019-07-17 16:05:40 -07:00
Josh Klar
c11984135a
looks like this is not needed, so save some bootup time
2019-07-17 16:05:40 -07:00
Josh Klar
76087749fb
Download more RAM (reword this in a rebase plz)
2019-07-17 16:05:40 -07:00
Kyle Brown
d07560513f
Fixed crash on debug when no Rgb was used, and unloaded LED and RGB when not used to save ram
2019-07-17 16:05:40 -07:00
Josh Klar
d34e8ce9d2
Re-add LED support
...
This reverts commit 5b069a0104
.
2019-07-17 16:05:40 -07:00
Josh Klar
350c2438ad
Disable GC on every cycle, too much lag
2019-07-12 16:54:38 -07:00
Josh Klar
17094a2988
Clean some code up; force GC on every cycle
2019-07-12 16:38:50 -07:00
Josh Klar
2947f81489
Remove pointless reversed_active_layers/active_layers difference
2019-07-12 15:31:27 -07:00
Josh Klar
1fe80fec92
Clean up and standardize print() debug stuff
2019-07-12 15:16:33 -07:00
Josh Klar
5b069a0104
Revert "Monocolor LED backlight added"
2019-07-07 15:35:15 -07:00
Kyle Brown
5532ffdcbf
Ready for merging
2019-06-21 17:28:30 -07:00
Kyle Brown
39b0b1e7f2
final commit before rebase
2019-06-21 16:51:01 -07:00
Kyle Brown
5158094549
Small changes
2019-06-21 16:49:00 -07:00
Kyle Brown
3f8c6e7648
Added support for user animations with docs
2019-06-21 16:49:00 -07:00
Kyle Brown
9d8682c866
Config changes and uses consts to save ram
2019-06-21 16:49:00 -07:00
Kyle Brown
86b8c4ffb0
New animation
2019-06-21 16:49:00 -07:00
Kyle Brown
bb198709f2
fix incorrect merge
2019-06-21 16:48:59 -07:00
Kyle Brown
efb642c374
Fix some issues if you don't define some things
2019-06-21 16:47:44 -07:00
Kyle Brown
1a06e0ed72
Renamed some things and added luddite layout for kdb424 and default
2019-06-21 16:47:44 -07:00
Kyle Brown
7ebf8d623f
Fix toggle
2019-06-21 16:47:44 -07:00
Kyle Brown
ec1a62e52d
Added static standby mode for performance.
2019-06-21 16:47:44 -07:00
Kyle Brown
0a06e733d2
Solved. Added uart buffer on the master to free up the uart bus buffer
2019-06-21 16:47:43 -07:00
Kyle Brown
e2413a3c25
Still dirty, but moved the problem to a better place. Still unrealistic to hit
2019-06-21 16:47:00 -07:00
Kyle Brown
a882ef2c38
Quick patch unrealistic face roll keyboard corruption
2019-06-21 16:47:00 -07:00
Kyle Brown
373ca8355e
Added MANY boards to supported list, and organized supported boards
2019-06-21 16:47:00 -07:00
Kyle Brown
54d63037bf
Added board definition for nyquist and add RGB and LED pins for nyquest and iris
2019-06-21 16:46:59 -07:00
Kyle Brown
f7a1d54752
Added LED support, cleaned up RGB docs
2019-06-21 16:45:04 -07:00
Kyle Brown
f65ea1e841
Added 2 more keys, stripped unused cruft, and added more docs.
2019-06-21 16:44:03 -07:00
Kyle Brown
3ae7432de0
Massive docs update
2019-06-21 16:42:53 -07:00
Kyle Brown
9fbad17ed4
code cleanup to pass lint and some for flake8
2019-06-21 16:42:12 -07:00
Kyle Brown
1751cce299
code cleanup to pass lint and some for flake8
2019-06-21 16:41:58 -07:00
Kyle Brown
ad3430eeb6
Needs docs, but code is ready for review probably
2019-06-21 16:38:41 -07:00
Kyle Brown
5334e7e0be
Massive hsv math fix and configs can be passed now for most things
2019-06-21 16:38:41 -07:00
Kyle Brown
2ad1fe8a9c
Massively improved, still not complete. Much easier to use now
2019-06-21 16:38:41 -07:00
Kyle Brown
31983a0873
Breathing now finally working, a key to enable it, not sane defaults, and a toggle button
2019-06-21 16:38:39 -07:00
Kyle Brown
0ba5911f8f
More animations, now based on time and intervals. Massively WIP
2019-06-21 16:37:53 -07:00
Kyle Brown
7a58ac041f
HSV functions added
2019-06-21 16:37:53 -07:00
Kyle Brown
4b033857b1
Initial RGB with test animation running automatically
2019-06-21 16:37:51 -07:00
Elvis Pfutzenreuter
dabed0061d
Add KC_APP ("Win menu") key
2019-05-31 00:36:42 -03:00
Josh Klar
c3ffb7b1ac
Merge branch 'master' into epx87
2019-05-20 15:54:10 -07:00
Elvis Pfützenreuter
41dc58e428
Make matrix scanner class configurable
2019-05-17 20:30:42 -03:00
Josh Klar
0b364cf7f1
Resolves #121 : Use flattened keymaps, which can visually represent the logical layout, rather than the physical wiring
2019-05-12 17:47:16 -07:00
Josh Klar
7fcd36f2fb
Refs #104 : Keyboard can work without REPL connected on >=4.0.0-alpha3 (tested only against single-piece boards so far)
2019-05-12 14:14:59 -07:00
Josh Klar
cf5ee5d4b2
Resolves an OverflowError in matrix scans (board-breaking)
2019-05-12 13:19:44 -07:00
Josh Klar
9dce78370e
Merge branch 'master' into topic-backspace-delete
2019-05-10 13:03:52 -07:00
Elvis Pfützenreuter
f9b56d82f7
Add cancel_timeout method
...
This method is useful when the keymap needs to use
state.set_timeout() and this timeout needs to be
cancellable.
Also, the set_timeout() now returns a timer handle.
2019-04-26 19:50:41 -03:00
Elvis Pfützenreuter
9c4a136989
Use return value of pre-press/pre-release callbacks
...
When the return value evaluates to False, the key press or key
release is ignored. This allows for implementation of elaborate
keyboard behaviors.
2019-04-26 19:50:41 -03:00
Elvis Pfützenreuter
b494857f21
Fix bug in TO layer key handling
2019-04-25 22:40:29 -03:00
Kyle Brown
0016ac8aa3
Merge branch 'master' into topic-backspace-delete
2019-03-21 17:25:16 -07:00
Kyle Brown
8bb55c84cd
Literally hurting performance now. Needs removed
2019-03-21 17:24:50 -07:00
Kyle Brown
7e06b143e1
Merge branch 'master' into topic-backspace-delete
2019-03-12 00:25:05 -07:00
Kyle Brown
298f9489c2
Duh, chaining....
2019-03-12 00:24:48 -07:00
Kyle Brown
a2cfa92f2f
Missed some obvious things
2019-03-12 00:24:48 -07:00
Kyle Brown
e792524b63
Added mod tap with docs
2019-03-12 00:24:48 -07:00
Kyle Brown
fc8ddba6cb
Adds delete/backspace key. Resolves #93
2019-03-09 15:12:23 -08:00
Josh Klar
848afb7801
Allow pre/post on_press/on_release handlers to be attached to all keys (example provided)
2019-02-18 15:08:07 -08:00
Josh Klar
4ab673ba80
Resolves #106 : Unbreak KC.GESC
2019-01-23 01:52:27 -08:00
Josh Klar
6ddfbadfbf
Remove unused function and useless comment
2019-01-14 11:25:21 -08:00
Josh Klar
0878538f42
Resolve issues with leader mode, allow single-key targets (HID or internal)
2018-12-29 16:52:06 -08:00
Josh Klar
375783742f
Remove unused kmk.string (originally from micropython-lib)
2018-12-29 15:42:56 -08:00
Josh Klar
413e8b8806
Rename keycodes to keys, simpler and easier to deal with
2018-12-29 15:29:11 -08:00
Josh Klar
faa61f7df1
Remove debug leftovers causing failed lints
2018-12-29 07:27:44 -08:00
Josh Klar
e5c8f5587d
Merge unicode handlers with the others. Prove arbitrary Macros are now doable in userspace
2018-12-29 07:10:11 -08:00
Josh Klar
8a21b4135d
Restore Unicode Macro support
2018-12-29 06:58:08 -08:00
Josh Klar
57239e3163
Everything necessary to get this to boot finally. Planck types!
2018-12-29 06:03:31 -08:00
Josh Klar
39a6465658
Checkpoint alpha: Reflow macros and keycodes into a consistent structure. Most internal state functionality largely untouched (just moved)
2018-12-29 04:44:52 -08:00
Josh Klar
be4ca3e734
kitsym4: Support the keeb.io Iris using the ProMicro<->ItsyBitsyM4 converter board
...
The thumb cluster maps a little goofy and I'd like to clean up the
keymap here - it's ENTIRELY NOT OBVIOUS how this works right now. Using
this keymap as an example, the physical layout of my thumb cluster is
actually:
Far left: Left
Next to the right: Right
Bottom right: Shift
Top right: MO(2)
You can see what this maps to in code, and it's not at all intuitive.
`swap_indicies`, which we already support, is useless here because,
unlike the Planck/Klaranck, these aren't 1:1 key swaps, but an entirely
custom mapping of columns. This will require something like QMK's
solution to fully custom (or at least partially custom) keymaps at a
core level, and isn't something I feel like tackling tonight
necessarily.
2018-12-28 23:20:08 -08:00
Kyle Brown
952f6b7022
Added the extra data pin. Will add docs when it's actually doing something
2018-12-12 15:43:33 -08:00
Kyle Brown
5ef6a7a96a
Added docs, and removed some old, not needed docs
2018-12-12 15:43:33 -08:00
Kyle Brown
e6acef9648
Add initial support (untested) for my layout on nyquist with converter board
...
Unbrick splits completely
Unbrick splits completely
2018-12-12 15:43:33 -08:00
Josh Klar
d6a0538009
kmk.consts: rename UnicodeModes => UnicodeMode
...
This brings this naming into consistency with both fellow consts in the
same file (ex. LeaderMode is singular) as well as the variables in which
the consts are usually used (usually a `Firmware.unicode_mode` attribute
in a keymap).
2018-12-04 17:03:13 -08:00
Josh Klar
b37f3ecdd9
Resolves #85 by bundling string polyfill directly, simplifying deploys
2018-11-05 22:05:07 -08:00
Josh Klar
94ac6d0cbd
Merge master and reconcile tapdance with splits
...
This took a bit of brain surgery to firmware.py that deserves its own
commit message beyond the default merge commit message - tl;dr though,
it appears to work fine.
2018-11-05 21:15:23 -08:00
Kyle Brown
15fea0189b
Added remote debugger and cleaned up several things Looks good to merge
2018-10-28 15:03:22 -07:00
Kyle Brown
2b28b99503
Finalize docs, and unbreak failed rebase
2018-10-28 15:03:22 -07:00
Kyle Brown
744d7c1f5d
Needs docs, but is basically complete. #3
2018-10-28 15:03:22 -07:00
Kyle Brown
8d3e4e0a63
Fully working split. Needs further testing
2018-10-28 15:03:22 -07:00
Kyle Brown
af3eccd715
First keys on slave half actually type! Still needs a bit of work
2018-10-28 15:03:22 -07:00
Kyle Brown
49da93e436
Basic uart split support. Still need docs and testing
2018-10-28 15:03:22 -07:00
Josh Klar
d117005d8d
Add press-and-hold support to TapDance, and clean up various ways of mangling key press states. Remove pending_keys entirely, replaced with a callback timeout)
2018-10-25 21:58:26 -07:00
Josh Klar
0c13806f1c
Add key repeat support for basic alphanumeric tap dance
2018-10-25 21:58:26 -07:00
Josh Klar
b0f8c58828
Beginnings of basic tap dance
2018-10-25 21:58:25 -07:00
Josh Klar
cc1bfc657f
Silly bugfix in ShiftedKeycodes
2018-10-25 21:58:24 -07:00
Josh Klar
74716c4c20
More sane default leader mode
2018-10-19 02:08:13 -07:00
Josh Klar
2d1290a12c
Add LeaderMode.TIMEOUT (QMK default Leader mode)
...
This allows leader sequences to "time out" rather than requiring an
Enter keypress to end.
This also rolls back some unnecessary changes from #72 to the matrix
scanner for performance reasons.
In theory we can use this in the future for Tap Dance support (#40 )
Resolves #1
Resolves #37
2018-10-19 01:49:37 -07:00
Josh Klar
54f7117712
Resolves #38 : Add KC.DEBUG to toggle log spew at runtime
2018-10-19 00:58:17 -07:00
Josh Klar
85ab403d22
More clear matrix scan function
2018-10-18 23:33:04 -07:00
Josh Klar
9089106316
Work out some bugs where I could get stuck on layers. Add more debugging output
2018-10-18 23:24:19 -07:00
Josh Klar
6c5a111d65
Import hacks MUST be in non-isort order
2018-10-18 12:56:02 -07:00
Josh Klar
e2ed95556a
Try to fix various advanced layers
2018-10-16 23:11:50 -07:00
Josh Klar
b92aceb682
Fix linting
2018-10-16 22:43:47 -07:00
Josh Klar
bf500d37ff
unbreak tap time
2018-10-16 22:39:17 -07:00
Josh Klar
d042b458f0
Fix Kyle board, and unbreak MO-dependent layers
2018-10-16 22:36:01 -07:00
Josh Klar
0d94bf4c06
Maybe surface errors in the right order
2018-10-16 22:30:33 -07:00
Josh Klar
16c82b1c0c
OMEGA REFACTOR! Perf grind basically complete.
...
Resolves #70 , Resolves #67
Still needs some regression testing in general, and a definite
regression is that rotary encoders are no longer (for the immediate time
being) supported.
Moves to a much simpler internal state tracking system, and FAR lighter
matrix scan.
Removes MicroPython support entirely.
2018-10-16 22:21:45 -07:00
Josh Klar
0c72554773
Add support for a Planck Rev 6 spidered to a Feather M4 Express
2018-10-16 01:05:32 -07:00
Josh Klar
ebc45d59dc
Address #52 almost entirely - target upstream builds of CircuitPython and simply copy (rsync) KMK source, a basic main.py, and the user's keymap to the CIRCUITPY drive
2018-10-15 02:49:12 -07:00
Kyle Brown
d295dc52e6
Small fix for leaving leader
2018-10-15 00:16:34 -07:00
Josh Klar
b296148631
Merge branch 'master' into topic-low-hanging-fruit
2018-10-11 20:42:03 -07:00
Kyle Brown
5313e5f5b5
Fixed caps issue on leader_dictionary and debug_enable
2018-10-11 20:41:52 -07:00
Kyle Brown
37aeeac10a
Should have been caps as these are const
2018-10-11 20:41:52 -07:00
Josh Klar
cd2eb3f1cc
Merge branch 'master' into topic-low-hanging-fruit
2018-10-11 20:41:34 -07:00
Kyle Brown
e6ddaf847f
Remove cruft
2018-10-11 20:33:47 -07:00
Josh Klar
98dfb53a83
Resolve #59 , adds MEH and HYPER modifiers
...
This also cleans up some weird potentially-buggy logic paths within the
ModifierKeycode creation and handling. I can now press a free-floating
HYPER in my keymap and see the appropriate codes in `xev` for press and
release events.
2018-10-11 19:41:00 -07:00
Josh Klar
b763dd9c4b
Resolves #53 by removing InternalState.update and moving its still-unused functionality up the stack a bit
2018-10-11 19:20:03 -07:00
Josh Klar
b14c56f708
Unbreak SAMD51 by deferring imports to runtime in the entrypoint (ref #52 )
2018-10-11 19:09:07 -07:00
Josh Klar
00899d1b0f
Resolves #56 by moving kmk.common.* up a level to kmk.*
2018-10-11 18:13:29 -07:00
Josh Klar
d5a2be38ef
Default rotary encoder to raw no-slop access, opt-in in keymap. Feels WAY better now.
2018-10-11 13:38:33 -07:00
Josh Klar
6589982eda
Support a special form of macro based on rotary encoder directions
2018-10-11 13:38:32 -07:00
Josh Klar
e2c9567bbf
Raw rotary encoder support
2018-10-11 13:38:32 -07:00
Josh Klar
3b0cd6c421
Refactor MatrixScanner to use enhanced Pins abstraction; add DEBUG_ENABLED to SAMD51 boards
2018-10-11 13:38:31 -07:00
Josh Klar
0d847f99ef
Make some events (and especially macros) faster by caching BareEvents and many key events in RAM
2018-10-08 05:04:06 -07:00
Josh Klar
aa423e3690
Fix an exhausted generator bug by converting to list
2018-10-08 03:59:16 -07:00
Josh Klar
eca4bf087e
Ability to create emote/emoji macros from strings directly, on-board.
2018-10-08 03:51:02 -07:00
Josh Klar
bf8ad1319a
Allow natural LEADER_MODE rollover
2018-10-08 03:21:39 -07:00
Josh Klar
c6d8e5b406
Simplify LeaderHelper stuff, unbreak my own boards
2018-10-08 02:41:43 -07:00
Josh Klar
8c9fc9db95
@kdb424's Leader Mode work as a clean diff
2018-10-08 02:31:30 -07:00
Josh Klar
6d204176e0
Unbreak pyboards
2018-10-07 04:54:25 -07:00
Josh Klar
392f8d7e51
Abstract away platform-dependent pin references
...
Quote taken straight from the docstring of get_pin:
>Cross-platform method to find a pin by string.
>
>The pin definitions are platform-dependent, but this provides
>a way to say "I'm using pin D20" without rolling a D20 and
>having to actually learn MicroPython/CircuitPython and the
>differences in how they handle pinouts.
>
>This also makes the keymap sanity checker actually work for
>CircuitPython boards, since it's not possible in CPY to
>define a module stub for `board` that uses Passthrough
>natively (which is how the MicroPython stub worked originally)
2018-10-07 01:40:09 -07:00
Josh Klar
a23acc6131
Update various internal key handling stuff to be CircuitPython-compatible
2018-10-07 00:45:35 -07:00
Josh Klar
d379acfc97
Support ItsyBitsy M4 Express as an effective clone of the Feather M4 Express with less pins. Because that's what it is.
2018-10-07 00:45:34 -07:00
Josh Klar
c4c28ad039
Decrease typing lag by about 80 billion percent by upping the logging threshold to WARNING on SAMD51
2018-10-07 00:45:33 -07:00
Josh Klar
472b08d77b
Support KEYBOARD and CONSUMER modes of HID on Feather M4 Express
2018-10-07 00:45:32 -07:00
Josh Klar
ae3eda26b9
Make kmk_keyboard_user importable on SAMD51 by reducing recursion (read: import) depth
2018-10-07 00:45:31 -07:00
Josh Klar
e11934ab2d
Able to build a VERY basic KMK image for Feather M4 Express, flashable over UF2 only
2018-10-07 00:45:30 -07:00
Josh Klar
d61f4470af
Make KC object lazy but cached to avoid huge AttrDict compilation (most keycodes probably are not used anyway)
2018-10-06 03:28:17 -07:00
Kyle Brown
ad3da0694b
Add advanced layers.
...
These will need more testing and some ported to tapdance. The bigest
case of this would be TT
2018-10-03 22:35:00 -07:00
Josh Klar
fbefed283b
Return state by default on Macro if not a key up or key down event
2018-10-01 21:54:01 -07:00
Josh Klar
552e848a27
Handle macros more consistently: make them a proper internal keycode-style object and not a weird one-off. Fixes sanity_checker on my keymaps.
2018-10-01 11:54:43 -07:00
Josh Klar
f80873fdd0
Roll back the tuple indexing change (now access by dot notation), optimize GESC and fix a bug in how it interacts with the reducer
2018-10-01 01:07:57 -07:00
Josh Klar
b5457534bf
Completely overhaul the entire MatrixScanner and KEY_UP/DOWN_EVENT system for efficiency. Less delay() on HID sends. Speed is only BARELY slower than QMK now.
2018-10-01 00:33:59 -07:00
Josh Klar
784f8885bd
Remove a ton of dict lookups for minor perf gains
2018-10-01 00:33:58 -07:00
Josh Klar
fde9b7e274
Add support for millisecond delays within a macro sequence
2018-09-30 21:34:16 -07:00
Josh Klar
2c05efa805
Support a massively-enhanced SEND_STRING equivalent
2018-09-30 21:14:30 -07:00
Josh Klar
96b5c4ee03
Ensure we always send at least four characters when sending Unicode sequences to better support MacOS/Windows
2018-09-30 20:49:40 -07:00
Josh Klar
0ccd27703d
Support Unicode sequences on Windows through WinCompose ONLY
2018-09-30 20:35:41 -07:00
Josh Klar
692d95018f
Enable switching Unicode modes at runtime; lots of Keycode cleanup again
2018-09-30 20:21:42 -07:00
Josh Klar
ffa81bcf43
Massive refactor largely to support Unicode on Mac
...
This does a bunch of crazy stuff:
- The ability to set a unicode mode (right now only Linux+ibus or
MacOS-RALT) in the keymap. This will be changeable at runtime soon, to
allow a single keyboard to be able to send table flips and whatever
other crazy stuff on any OS the board is plugged into (something that's
not currently doable on QMK, so yay us?)
- As part of the above, there is now just one user-facing macro for
unicode codepoint submission,
`kmk.common.macros.unicode.unicode_sequence`. Users should never use the
platform-specific macros, partly because they just outright won't work.
There's all sorts of fun stuff in these methods now, thank goodness
MicroPython supports the `yield from` construct.
- Keycode (these should really be renamed Keysym or something) objects
that are intended to not be pressed, or not be released. Right now these
properties are completely ignored if not part of a macro, and it's
probably sane to keep it that way. This was necessary to support MacOS's
"hold RALT while typing the codepoint characters" flow.
- Other refactor-y bits, like moving macro support to `kmk/common`
rather than sitting at the top level of the tree. One day `kmk/common`
may make sense to surface at top level `kmk/`, but that's a discussion
for another day.
2018-09-30 19:33:23 -07:00
Josh Klar
2024eb959f
Support the real reason we're all here: unicode key sequences (Linux only). Basically takes the same output style as klardotsh/qmk_emote_macro_generator outputs
2018-09-30 18:20:18 -07:00
Josh Klar
bdd4f86472
Support a simple macro of a sequence of keycodes (basis for SEND_STRING)
2018-09-30 18:03:43 -07:00
Josh Klar
99573de217
Epic keycode cleanup; make modifiers callable and chainable
2018-09-30 17:58:36 -07:00