Pete Johanson
b84d29c384
refactor(core): Use /omit-if-no-ref/ for behaviors.
...
* Use lesser-known DT features to skip behaviors not referenced
in the user keymap
* Update the behaviors to skip code if no nodes found.
* Remove some empty config/data structs where unused in
behaviors.
4 years ago
mantas
b4d63fb52c
feat(shields) Add encoder support to CRBN
...
Pin A maps to A2 (F5), pin B to A3 (F4).
Added keymappings to encoder on default and lower layers.
4 years ago
mantas
c94943da1c
style(crbn): Unify indentation from spaces to tabs
4 years ago
KemoNine
cd503ed17b
Feat combo layers ( #661 )
...
feat(combos): add layer filtering
Co-authored-by: KemoNine <mcrosson@kemonine.info>
4 years ago
Okke Formsma
9a7908b632
behaviors(hold-tap): Implement quick_tap_ms (TAPPING_FORCE_HOLD)
...
Tap-and-hold a hold-tap to hold the tap behavior so it can repeat.
After a tap, if the same key is pressed within `quick_tap_ms`, the
tap behavior is always picked.
This is useful for things like `&ht LSHFT BACKSPACE` where holding
the backspace is required.
Implements #288 .
4 years ago
Pete Johanson
6c7ab0ce53
refactor(kscan): Fix polling of GPIO matrices.
...
* Add easier macros for conditional polling/interrupt code.
* Properly continue polling on intervals, without extra
enable/disable code for pins that is superfluous when not trying to
deal with interupts firing.
* Fix to allow multiple GPIO drivers when doing splits w/ IO expanders
4 years ago
Pete Johanson
2f352788c1
refactor(kscan): Remove explicit default n from kscan configs.
...
* Actually allow defaulting yes in other places.
4 years ago
Nick Winans
33cd2caced
fix(boards): Shorten keyboard names that are too long
4 years ago
Nick Winans
82173f354e
fix(core): Assert BLE device name is correct length
4 years ago
Okke Formsma
4e20bf5de1
refactor(behaviors): simplify hold-taps by not using _TRANSFORM_ENTRY
4 years ago
Okke Formsma
84d19fe79b
refactor(behaviors): factor out multiple uses of _TRANSFORM_ENTRY
4 years ago
Jeff Rizzo
4f040fecdf
Add a missing log_strdup()
4 years ago
Okke Formsma
c925cf02dd
feature(sticky_keys): add quick-release
...
when quick-release is enabled, the sticky key is released immediately after another key is pressed
4 years ago
Pete Johanson
7c24ab069c
fix(behaviors): Updated grsec snapshots for new log format.
4 years ago
Okke Formsma
7b7701ae90
feature(modifiers): add explicit modifiers
...
this makes LS(LEFT_CONTROL) work as if shift and control were both
pressed explicitly. Previously, the left shift would have been released
as soon as another key was pressed. The implicit behavior is useful in
case of LS(NUMBER_1) when rolling over to other keys.
Also see #361 .
4 years ago
Okke Formsma
0c30b49063
refactor(modifiers): define is_mods function
4 years ago
Okke Formsma
df4a5c8613
refactor(hid_listener): pass event struct instead of parameters
4 years ago
Ally Parker
a4aaa73f06
feat: Add WPM calculator and display widget
4 years ago
Jeff Rizzo
c0cab57c2d
run-test.sh: use the POSIX '-L 1' for xargs
...
This allows tests to be run on platforms where '-l'
isn't implemented, like MacOS.
4 years ago
Okke Formsma
5eeb310b2f
feat(grave-escape): implement grave-escape
...
closes #85
4 years ago
Jay Greco
58ad5d4e86
Fix offset in NIBBLE transformation and keymap
...
The NIBBLE transformation was missing RC(0,0), which was causing some strange behavior in the kscan driver.
4 years ago
Pete Johanson
3368a81057
refactor(core): Combine `is_` and `cast_` event functions.
...
* Use a single `as_foo` generated function to conditionally
return a certain event type from a generic `zmk_event_t*`
pointer.
4 years ago
Pete Johanson
3fe2acc2d1
refactor(core): Extra event payloads to own types, refactor API.
...
* Make it easier to use *just* event payloads by defining the data,
and then having event manager macros generate "wrapper structs"
* Improve is_*/cast_* APIs to hide details of full event struct.
* Create `zmk_event_t` typedef to pass to event handlers.
* Bring event names inline w/ consistent `zmk_` prefix.
4 years ago
Pete Johanson
003db892ad
refactor(core): Extra position state change data struct.
...
* Separate header and data struct for the event.
* Remove duplicate struct in split code.
4 years ago
Pete Johanson
95acbd8859
fix(shields): Unflip left Microdox OLED.
4 years ago
innovaker
5978990e6d
chore(core): replace `Pete Johanson` with `The ZMK Contributors`
...
Does not include boards and shields.
4 years ago
Pete Johanson
65e476df3e
fix(splits): Send pos notify from dedicated thread
...
* Avoid deadlocks by using a deadicated workqueue for sending
position state notifications from peripherals.
4 years ago
Pete Johanson
c11759bc79
fix(hid): Clear all matching usages, not just first.
...
* If various events get dropped, we can end up with duplicate
codes in our report, so tweak to ensure we look for all matches
and clear them when we have a keycode released.
4 years ago
Pete Johanson
a0c32bb47e
fix(bluetooth): improve LE param update logging
4 years ago
Pete Johanson
a5c39dfa76
fix(ble): Perform GATT notifies from dedicated queue.
...
* Zephyr BT stack frees TX buffers from system workqueue,
and to avoid blocking waiting to allocate, perform notify
from a dedicated queue.
4 years ago
Pete Johanson
4aa78a6f8d
fix(split): Use queue/work for peripheral events.
...
* Avoid corruption by using work to process
peripheral key position events on the main
work thread, like local kscan events are.
* Fixes #221
4 years ago
Pete Johanson
969e5568af
fix(boards): Define but don't enable uart0.
...
* Set pro-micro TX/RX pins, but don't enable the UART
by default.
4 years ago
innovaker
1d18900a99
refactor(core): define usage page as uint16_t
...
Aligns with the HID specification.
Usage page values were sometimes declared as uint8_t and sometimes uint16_t. This commit aligns all instances with the HID specification for consistency.
PR: #521
4 years ago
Okke Formsma
feb0d5b90c
feat(combos): initial implementation
...
closes #45
4 years ago
Nick Winans
002a89765f
refactor(Kconfig): Set USB default based on hardware capabilities
...
Removes the USB default under every split right half in favor of a default based on hardware capabilities in the main app Kconfig.
4 years ago
KemoNine
6345bd5468
Remove setting the animation/effect when setting hsv ; some of the effects like glowing will use the hsv color specified
4 years ago
KemoNine
99f932a47d
(feat) Allow setting underglow color by key press
4 years ago
Nick Winans
97ed0cc733
feat(core): Add USB logging Kconfig option
4 years ago
KemoNine
5880a284c1
feat(tg4x): Reconcile with official keymap and tidy-up
4 years ago
KemoNine
28bec8541b
style(tg4x): Convert Kconfig spaces to tabs
4 years ago
KemoNine
7fd8561b45
fix(tg4x): Add tg4x.conf to mirror other shield setups
4 years ago
innovaker
7fc28328d0
refactor(tg4x): Cleanup tg4x overlay
...
Tidies pin definitions and map.
4 years ago
innovaker
de6ce05391
chore(tg4x): fix copyright header
4 years ago
KemoNine
185ff462d6
docs(tg4x): Add readme for tg4x
4 years ago
KemoNine
cd8567071b
fix(tg4x): Fix tg4x keyboard name in Kconfig
4 years ago
KemoNine
3e4f2a3dc3
feat(tg4x): Add underglow support for tg4x + nice_nano
4 years ago
innovaker
561e535a58
refactor(shields): standardize README.md filenames
...
Renames instances of `readme.md` to `README.md` so that it's easily noticed.
PR: #561
4 years ago
innovaker
f17584ca0e
chore: standardize # style headers
...
Changes made with regex plus some manual tweaks.
Find:
/(?:(?<!#!\/bin\/sh\n)(?:^#\n))*^#.*?[Cc]opyright.*?(\d{4}) *([0-9A-z,_\- ]+).*?\n(?:^#\n)*^#.*?SPDX-License-Identifier:? *(.+) *?\n(?:^#\n)*/gm
Replace:
# Copyright (c) $1 $2
# SPDX-License-Identifier: $3
PR: #564
4 years ago
KingCoinless
5c11962d98
feat(shields): add helix shield
...
PR: #429
4 years ago
Nick Winans
e5b1f1e1be
fix(shield): BFO9000 uses USB on right
4 years ago