Pete Johanson
28d454655b
fix(boards): Move board endif to proper location.
...
* Nibble and tidbit conditional was closed early, enabling
some settings incorrectly for other unrelated builds.
2021-03-18 21:26:41 -04:00
Pete Johanson
27c89e69c1
fix(kscan): Proper direct wire warning message.
2021-03-15 00:39:29 -04:00
Okke Formsma
0df7110058
fix(combos): Fix stuck keys when pressing long combos.
...
To properly retrigger hold-taps when a combo is not activated, some
position down events are reraised instead of released. The corresponding
position up events were never reraised, causing a potential stuck key.
2021-03-11 16:23:45 -05:00
Okke Formsma
8ebe0cd0c8
refactor(core): make the event manager a bit easier to read
2021-03-10 20:12:23 -05:00
Okke Formsma
c01243d1c6
fix(logging): remove unnecessary newline
2021-03-10 18:08:22 -05:00
JP Bonn
c643f1cd96
added battery.h, last_state_of_charge to uint8_t
2021-03-10 18:07:18 -05:00
JP Bonn
b8a8ecd59d
fixed order of setting state_of_charge
2021-03-10 18:07:18 -05:00
JP Bonn
df4ec51f96
only send zmk_battery_state_changed on change
2021-03-10 18:07:18 -05:00
Pete Johanson
0f9fff7554
Fix the label for the GPIO kscan driver.
2021-02-27 14:32:42 -05:00
Okke Formsma
32008825fe
fix(behaviors): Add missing hold-tap trigger
...
A hold-tap trigger was missing in the scenario where a hold-tap behavior
was queued for a while and it's timer should've run out.
2021-02-27 09:20:20 -05:00
Okke Formsma
0c1940bb79
feature(hold-tap): no-hold-flash for retro taps
...
This is an improvement on retro-tap, solving the 'flashing hold' issue
users people experience.
When the tapping-term expires, the hold key is normally pressed. When
retro-tap is enabled, this is undesirable; only an interrupted hold-tap
should trigger the hold behavior.
This change disables the hold behavior for the 'STATUS_HOLD_TIMER'
state when retro-tap is enabled, and makes sure the
'STATUS_HOLD_INTERRUPT' state will be triggered when appropriate.
2021-02-24 07:24:27 -05:00
Okke Formsma
89ed816c67
feature(hold-tap): Retro tapping
2021-02-24 07:24:27 -05:00
Okke Formsma
62ae157c0b
refactor(hold-tap): improve switch statements
2021-02-24 07:24:27 -05:00
Okke Formsma
9c4c266b17
refactor(hold-tap): pretty print decision_moment
2021-02-24 07:24:27 -05:00
Okke Formsma
0ebf440de8
refactor(hold-tap): create press_binding and release_binding functions
2021-02-24 07:24:27 -05:00
Okke Formsma
abc60fc7cb
refactor(hold-tap): split hold state into interrupt and timer
2021-02-24 07:24:27 -05:00
Okke Formsma
200c6cabea
refactor(hold-tap): use enum for hold-tap status
2021-02-24 07:24:27 -05:00
Okke Formsma
6b7026cdd1
refactor(hold-tap): simplify flavor enum
2021-02-24 07:24:27 -05:00
Nick Winans
57661362ea
refactor(ext-power): Add init-delay-ms option
...
Co-authored-by: Pete Johanson <peter@peterjohanson.com>
2021-02-16 14:51:32 -05:00
Nick Winans
b43fb8502e
fix(ext-power): Initialize as soon as settings are available
2021-02-16 14:51:32 -05:00
Pete Johanson
ff7891c097
fix(display): Check for display in idle handler.
...
* Closes #679
2021-02-16 14:21:46 -05:00
Okke Formsma
af9d6e9b05
style(hold-tap)!: Write hold-tap params with dashes
...
tapping_term_ms -> tapping-term-ms
quick_tap_ms -> quick-tap-ms
The old style works, although it's deprecated.
2021-02-10 07:55:12 -05:00
Pete Johanson
2af794eed3
feat(underglow): Convert HSB changes to absolute.
...
* Public type for HSB led color.
* New API for calculating "next" HSB based on current
state.
* Update behavior to convert the increment/decrement
commands to absolute command as well.
2021-02-09 01:27:50 -05:00
Pete Johanson
e6f168d6df
refactor(behaviors): Convert state dependent params.
...
* Allow each behavior to map a relative binding, e.g. "toggle",
to an absolute one, e.g. "on", before being invoked.
2021-02-09 01:27:50 -05:00
Pete Johanson
bb2c478af9
refactor(rgb): Expose explicit on/off command/API.
2021-02-09 01:27:50 -05:00
Nick Winans
fc5d7bcb78
fix(boards): Remove explicit enable of sensor
2021-02-08 10:50:44 -05:00
Nick Winans
5eace0bbc4
fix(core): Enable sensor by default
2021-02-08 10:50:44 -05:00
KemoNine
0499e7e8ac
Refactor nibble / update to match build docs ( #620 )
...
* feat(nibble): add underglow support for nice_nano builds
* feat(nibble): add encoder to top, left most column to match standard assembly documentation
* refactor(nibble): add layer labels
* feat(nibble): add support for optional display ; off by default
* feat(nibble): add README
* fix(nibble): adjust oled rotation for easier reading
* fix(nibble): add additional note about enabling oled
* refactor(nibble): convert keymap to use tabs instead of spaces
* refactor(nibble): enable oled in dts/overlay by default
* refactor(nibble): cleanup alignment and formatting in nibble keymap
* refactor(nibble): re-align top most row of keymap to be sensible
* refactor(nibble): cleanup kscan map alignment
* refactor(nibble): indent first row of map/transform to properly align with physical columns
* fix(nibble): remove dangling code block from readme
Co-authored-by: KemoNine <mcrosson@kemonine.info>
2021-02-04 10:28:02 -06:00
jrhrsmit
e40ca1eb7c
fix(power): Add support for capacitors on ADC for BVD
...
Add a little delay so any capacitors connected to the ADC for the BVD can charge up when using power_gpios
Co-authored-by: Jasper Smit <jrhrsmit@gmail.com>
2021-02-04 07:56:27 -05:00
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.
2021-02-04 00:52:25 -05:00
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.
2021-02-03 23:49:59 -05:00
mantas
c94943da1c
style(crbn): Unify indentation from spaces to tabs
2021-02-03 23:49:59 -05:00
KemoNine
cd503ed17b
Feat combo layers ( #661 )
...
feat(combos): add layer filtering
Co-authored-by: KemoNine <mcrosson@kemonine.info>
2021-02-03 23:33:09 -05:00
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 .
2021-02-02 15:28:16 -05:00
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
2021-02-02 14:04:10 -05:00
Pete Johanson
2f352788c1
refactor(kscan): Remove explicit default n from kscan configs.
...
* Actually allow defaulting yes in other places.
2021-02-02 14:04:10 -05:00
Nick Winans
33cd2caced
fix(boards): Shorten keyboard names that are too long
2021-02-02 00:59:17 -05:00
Nick Winans
82173f354e
fix(core): Assert BLE device name is correct length
2021-02-02 00:59:17 -05:00
Okke Formsma
4e20bf5de1
refactor(behaviors): simplify hold-taps by not using _TRANSFORM_ENTRY
2021-02-02 00:43:26 -05:00
Okke Formsma
84d19fe79b
refactor(behaviors): factor out multiple uses of _TRANSFORM_ENTRY
2021-02-02 00:43:26 -05:00
Jeff Rizzo
4f040fecdf
Add a missing log_strdup()
2021-01-30 00:31:07 -05:00
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
2021-01-28 17:10:04 -05:00
Pete Johanson
7c24ab069c
fix(behaviors): Updated grsec snapshots for new log format.
2021-01-25 16:11:01 -05:00
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 .
2021-01-24 23:30:41 -05:00
Okke Formsma
0c30b49063
refactor(modifiers): define is_mods function
2021-01-24 23:30:41 -05:00
Okke Formsma
df4a5c8613
refactor(hid_listener): pass event struct instead of parameters
2021-01-24 23:30:41 -05:00
Ally Parker
a4aaa73f06
feat: Add WPM calculator and display widget
2021-01-23 18:38:31 -05:00
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.
2021-01-23 18:32:18 -05:00
Okke Formsma
5eeb310b2f
feat(grave-escape): implement grave-escape
...
closes #85
2021-01-22 19:27:18 -05:00
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.
2021-01-22 16:03:14 -05:00
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.
2021-01-20 07:06:11 -05:00
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.
2021-01-20 07:06:11 -05:00
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.
2021-01-20 07:06:11 -05:00
Pete Johanson
95acbd8859
fix(shields): Unflip left Microdox OLED.
2021-01-19 15:57:26 -05:00
innovaker
5978990e6d
chore(core): replace Pete Johanson
with The ZMK Contributors
...
Does not include boards and shields.
2021-01-16 11:30:37 -05:00
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.
2021-01-15 13:50:36 -05:00
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.
2021-01-15 13:50:36 -05:00
Pete Johanson
a0c32bb47e
fix(bluetooth): improve LE param update logging
2021-01-15 13:50:36 -05:00
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.
2021-01-15 13:50:36 -05:00
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
2021-01-15 13:50:36 -05:00
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.
2021-01-15 01:51:44 -05:00
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
2021-01-15 01:48:39 -05:00
Okke Formsma
feb0d5b90c
feat(combos): initial implementation
...
closes #45
2021-01-13 21:07:41 -05:00
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.
2021-01-08 16:51:50 -05:00
KemoNine
6345bd5468
Remove setting the animation/effect when setting hsv ; some of the effects like glowing will use the hsv color specified
2021-01-08 16:08:13 -05:00
KemoNine
99f932a47d
(feat) Allow setting underglow color by key press
2021-01-08 16:08:13 -05:00
Nick Winans
97ed0cc733
feat(core): Add USB logging Kconfig option
2021-01-08 13:03:39 -05:00
KemoNine
5880a284c1
feat(tg4x): Reconcile with official keymap and tidy-up
2021-01-08 10:14:43 +00:00
KemoNine
28bec8541b
style(tg4x): Convert Kconfig spaces to tabs
2021-01-08 10:14:43 +00:00
KemoNine
7fd8561b45
fix(tg4x): Add tg4x.conf to mirror other shield setups
2021-01-08 10:14:43 +00:00
innovaker
7fc28328d0
refactor(tg4x): Cleanup tg4x overlay
...
Tidies pin definitions and map.
2021-01-08 10:14:43 +00:00
innovaker
de6ce05391
chore(tg4x): fix copyright header
2021-01-08 10:14:43 +00:00
KemoNine
185ff462d6
docs(tg4x): Add readme for tg4x
2021-01-08 10:14:43 +00:00
KemoNine
cd8567071b
fix(tg4x): Fix tg4x keyboard name in Kconfig
2021-01-08 10:14:43 +00:00
KemoNine
3e4f2a3dc3
feat(tg4x): Add underglow support for tg4x + nice_nano
2021-01-08 10:14:43 +00:00
innovaker
561e535a58
refactor(shields): standardize README.md filenames
...
Renames instances of `readme.md` to `README.md` so that it's easily noticed.
PR: #561
2021-01-07 00:34:04 -05:00
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
2021-01-06 17:00:44 -05:00
KingCoinless
5c11962d98
feat(shields): add helix shield
...
PR: #429
2021-01-05 18:56:47 +00:00
Nick Winans
e5b1f1e1be
fix(shield): BFO9000 uses USB on right
2021-01-04 14:08:00 -05:00
Pete Johanson
992cee1bac
feat(display): Show layer label in widget.
2021-01-04 13:02:38 -05:00
Pete Johanson
a55b1397c9
feat(keymap): API for retrieving label for a layer
2021-01-04 13:02:38 -05:00
pbz
dcd665999a
feat(shields): add bfo9000 shield
...
PR: #472
2021-01-02 18:52:50 +00:00
Okke Formsma
319ce30270
chore(behavior): use ZMK_BEHAVIOR_OPAQUE in to-layer behavior
2021-01-02 08:08:51 -05:00
Okke Formsma
fa07ba9d32
refactor(behaviors): use ZMK_BEHAVIOR_OPAQUE and ZMK_BEHAVIOR_TRANSPARENT
...
Use these instead of the magic return values 0 and 1 for
behavior_driver_api return values.
2021-01-01 23:07:54 -05:00
Okke Formsma
caa285852a
refactor(events): return 'ZMK_EV_EVENT_BUBBLE' instead of magic number 0
2021-01-01 23:07:54 -05:00
innovaker
5a72662898
chore: standardize C style headers
...
Changes made with regex plus some manual tweaks.
Find:
/^\/\*.*\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: #565
2021-01-01 23:06:41 -05:00
innovaker
61893e453b
refactor(app): format with prettier ( #563 )
...
prettier --write .
PR: #563
2021-01-01 22:55:52 -05:00
KemoNine
a3ac0cb5be
feat(shields): add ws2812 underglow support to lily58 (nice_nano)
2021-01-01 21:29:22 +00:00
Mango The Fourth
5752b4fbda
feat(shields): add eek shield
...
PR: #529
2021-01-01 14:33:19 +00:00
Pete Johanson
39490552f2
feat(boards): Add BDN9 Rev2 board.
...
* Onboard stm32f072.
* 3 possible encoder positions.
* Underglow/per-key not yet support.
2020-12-31 14:46:15 -05:00
Pete Johanson
5072590af5
fix(sensors): Use status filter on sensors node.
2020-12-31 14:46:15 -05:00
Pete Johanson
d698847769
fix(power): Fix for 2.4 API changes.
2020-12-30 09:29:57 -05:00
Pete Johanson
1c822754c0
fix(west): Restore atmel west module.
2020-12-29 23:30:30 -05:00
KemoNine
d207c3c30f
(feature) Add &to keycode/behavior ( #489 )
...
feat(behaviors): Add `&to` behavior to switch to a layer.
2020-12-29 11:57:49 -05:00
Nick Winans
43f6d798be
feat(ext-power): Cut power when PM is sleeping
2020-12-29 08:30:57 -05:00
KemoNine
87dbd4ca28
Add uppermost, current layer status widget to oled ( #493 )
...
* Add uppermost, current layer status widget to oled
* Run clang format
* Fixup display widget source includes in CMakeLists
* Update layer widget to only be enabled on primary half of a split keyboard and shuffle some of the options specific to the widget to be enabled via the widget
* Update to latest lvgl/zmk/zephyr ; remove version text from oled per PR
* Fixup file names
* Remove last remenants of the version display text from the oled
* Fixup clang-format
Co-authored-by: KemoNine <mcrosson@kemonine.info>
2020-12-28 20:17:32 -05:00
innovaker
0e71dbc860
refactor(app): replace zmk_keymap_layers_state with zmk_keymap_layers_state_t
...
Aligns with typedef _t convention.
PR: #531
2020-12-28 10:20:12 -05:00
innovaker
87e7c04b00
refactor(app): replace zmk_mod_flags with zmk_mod_flags_t
...
Aligns with typedef _t convention.
PR: #531
2020-12-28 10:20:12 -05:00
innovaker
05b0d185a8
refactor(app): replace zmk_mod with zmk_mod_t
...
Aligns with typedef _t convention.
PR: #531
2020-12-28 10:20:12 -05:00
innovaker
87179698b4
refactor(app): replace zmk_key with zmk_key_t
...
Aligns with typedef _t convention.
PR: #531
2020-12-28 10:20:12 -05:00