Commit Graph

65 Commits

Author SHA1 Message Date
innovaker 842aa5a842 refactor: replace filename hyphens with underscores
Aligns *.h and *.c to underscore naming convention.

These were kept (with warnings) for backwards compatibility with external boards/shields:
- kscan-mock.h
- matrix-transform.h
They should be removed in the future.

PR: #523
2020-12-28 01:15:35 -05:00
innovaker 89532eadeb fix(sticky keys): add 0xFF mask to usage_page
Aligns unpacking of usage_page with its equivalent line in keycode-state-changed.h

PR: #520
2020-12-17 16:52:15 -05:00
Okke Formsma b115f16f4c refactor(sticky keys): use DT_HAS_COMPAT_STATUS_OKAY(DT_DRV_COMPAT) instead of DT_NODE_EXISTS(DT_DRV_INST(0)) 2020-12-15 13:59:03 -05:00
Okke Formsma 1c2796d1c9 refactor(sticky keys): use pointer to avoid repetition in store_sticky_key 2020-12-15 13:59:03 -05:00
Okke Formsma bc8803ba50 refactor(sticky keys): rename ZMK_BHV_STICKY_KEY_POSITION_NOT_USED to ZMK_BHV_STICKY_KEY_POSITION_FREE 2020-12-15 13:59:03 -05:00
Okke Formsma 26af11b390 refactor(sticky keys): rename timer_is_started to timer_started 2020-12-15 13:59:03 -05:00
innovaker 00ca0d2f1c refactor(app): replace `struct device *` with `const struct device *`
Replaced with RegExp: /(?<!const )(struct device \*)/g

See: https://docs.zephyrproject.org/latest/releases/release-notes-2.4.html
PR: #467
2020-12-14 12:41:25 -05:00
innovaker 3d7376d2e5 refactor(app): replace `config_info` with `config`
See: https://docs.zephyrproject.org/latest/releases/release-notes-2.4.html
PR: #467
2020-12-14 12:41:25 -05:00
innovaker bac1f17cf6 refactor(app): replace Zephyr integer types with C99 integer types
u8_t → uint8_t
u16_t → uint16_t
u32_t → uint32_t
u64_t → uint64_t
s8_t → int8_t
s16_t → int16_t
s32_t → int32_t
s64_t → int64_t

Prerequisite for #223
See: https://github.com/zephyrproject-rtos/zephyr/releases/tag/zephyr-v2.4.0
PR: #467
2020-12-14 12:41:25 -05:00
Okke Formsma e00eceb508 fix(sticky keys): fix tapping-sticky-keys bug.
Sticky keys should be cleared when they were tapped in rapid succession before the timer runs out.
2020-12-06 00:33:20 -05:00
Okke Formsma f86e0fff14 fix(sticky keys): always clear sticky key when releasing the behavior 2020-12-06 00:33:20 -05:00
Okke Formsma 2ba16c2f3d fix(sticky keys): use correct timestamp when clearing sticky key in timer 2020-12-06 00:33:20 -05:00
Okke Formsma 37946ff57b fix(sticky keys): simplify timer management 2020-12-06 00:33:20 -05:00
Okke Formsma 3bf770a364 bugfix(sticky keys): release active sticky keys properly
see https://github.com/zmkfirmware/zmk/issues/445
2020-11-29 20:16:51 -05:00
Okke Formsma 76a6d7b4c5 feat(sticky keys): initial implementation 2020-11-28 00:58:24 -05:00
Okke Formsma bee45f9b3a feat(events): add timestamp to keycode_state_changed and sensor_event
These timestamps are necessary to correctly deal with delayed events due to hold-tap shenanigans.
2020-11-28 00:58:24 -05:00
Nick 076fcc1f70 fix(underglow): Fix error on release of rgb_ug 2020-11-22 21:23:29 -05:00
Pete Johanson eff1b8223b refactor(keys): Unify usage page.
* Remove need for separate `&cp` behavior, but
  keep it for now for backward compat.
* Refactor sensor inc/dec as well.
2020-11-05 14:55:40 -05:00
innovaker d748d8a749 refactor: Replace superseded key names
Replace deprecated key names (LCTL, NUM_0, NUM_1).

Replace abbreviated names with fully qualified names (LCTL, RGUI, NUM_0, NUM_1).

Follow-up to #21.
2020-11-03 23:50:54 -05:00
innovaker e925319e4c refactor(hid): Replace deprecated HID usage page references
Deprecate `USAGE_KEYPAD` and replace with `HID_USAGE_KEY`.

Deprecate `USAGE_CONSUMER` and replace with `HID_USAGE_CONSUMER`.

Closes #217.
2020-11-03 23:50:54 -05:00
Okke Formsma 4f258efbf1 initial implementation for modifiers
https://github.com/zmkfirmware/zmk/issues/86
2020-11-03 00:19:37 -05:00
Joel Spadin 440d09fd45 feat(endpoints): simplify behavior constants 2020-10-28 18:15:05 -05:00
Joel Spadin 2fe1fbb526 feat(endpoints): rename behavior to outputs
"Outputs" is probably easier for most people to understand than "endpoints".
2020-10-28 18:15:05 -05:00
Joel Spadin 600bba25f0 feat(endpoints): add preferred endpoint setting
Added a new setting to remember the user's preferred endpoint. When both USB and
BLE are connected, the preferred endpoint will be used.

Added a new behavior to control this setting. It supports commands:

    &end END_USB - Prefer USB output
    &end END_BLE - Prefer BLE output
    &end END_TOG - Toggle between USB and BLE
2020-10-28 18:15:05 -05:00
Pete Johanson f35d9f8f69
Merge pull request #258 from megamind4089/dev/ext-power-behavior
New behavior for ext power control
2020-10-13 00:01:32 -04:00
Pete Johanson 6d9aa4f5ea fix: Updated copyright headers to single author file. 2020-10-12 13:03:10 -04:00
Mega Mind 2e649b7fd4 Fix compilation errors and minor tweaks 2020-10-13 00:09:57 +08:00
Mega Mind 4adcb396ff Rebased and fixed nasty code 2020-10-12 23:54:56 +08:00
Mega Mind 5d1c083959 Added toggle and removed a param 2020-10-12 23:42:01 +08:00
Mega Mind b5e1c8a7ad New behavior for ext power control 2020-10-12 23:42:01 +08:00
Okke Formsma d38740cebf
Add timestamps to position and behavior events (#147)
* Add timestamps to position events and behaviors.

- Take original event timestamps into consideration so nested tap-holds have proper timing.
- Add position and timestamp to keycode state changed event so the one-shot behavior can properly identify other keypresses and timings.
- Add timestamp to position events received from peripheral

* reduce number of arguments to behaviors
2020-10-10 17:32:53 -04:00
Pete Johanson 191a2d755a chore: clang-format the codebase.
* Use the LLVM style
* Override indent width (8) and column limit (100)
* Fixes #142.
2020-09-14 00:10:34 -04:00
Pete Johanson 6c8b0b53f0 refactor(bluetooth): More concise names. 2020-09-13 22:33:31 -04:00
Pete Johanson 39f980a06d feat(bluetooth): Add back profiles, split fixes.
* Add back in profiles, not using Zephyr
  BT identity infrastructure.
* Restore additional `&bt` commands for profile
  operations.
* Fix for split pairing and subscriptions, since
  Zephyr persists subscriptions across connects.
* Remove keymap from peripheral builds, reduces
  firmware size, and avoids unneeded attempts
  to send HID data.
2020-09-13 22:33:29 -04:00
Pete Johanson fc0812bd2e fix(bluetooth): Remove identity, minimal `bt`.
* Simplify the `bt` behavior to one current command
  `BT_CLEAR_BONDS_CMD`.
* Simplify BLE code for split and non-split keyboards.
* Remove keymap processing from split peripheral side.
2020-09-13 22:33:05 -04:00
Pete Johanson cf970efb98 feat(bluetooth): Proper bond management, identity support for non-splits
* Add `bt` behavior that can be used to perform certain actions,
  such as next/prev identity, reset identity, etc.
  NOTE: Multiple identities is only supported for non-split shields,
  due to missing Zephyr identity functionality for dual
  central/peripheral devices.
* Proper bond reset tied to action, that honors peripheral bonds,
  so folks can reset and pair to other hosts, without breaking
  bonds between splt halves.
2020-09-13 22:33:05 -04:00
Pete Johanson 68e72f9275 fix: Switch to single AUTHORS file.* Closes #164 2020-09-10 10:24:23 -04:00
Okke Formsma c9a82d71d0 fixes for feedback round 2 2020-09-02 16:41:39 +02:00
Okke Formsma c5ca664411 some fixes based on feedback 2020-09-02 15:26:06 +02:00
Okke Formsma c33931c72c Initial implementation of hold-tap 2020-09-01 19:41:08 +02:00
Cody McGinnis 033bb7bfc4 fix(behavior): add logging to toggle layer for tests 2020-08-28 16:21:31 -04:00
Cody McGinnis cbea2d5bed fix(behavior): none should not be transparent 2020-08-27 23:12:56 -04:00
Okke Formsma ebc3542aa6 fix bug in modtap bahavior which cleared the wrong keycode events 2020-08-23 14:46:52 +02:00
Pete Johanson 805ea77005 feat(behaviors): Add `&bootloader` behavior.
* Allow reset behavior to have a type property.
* Add `bootloader` node that triggers DFU UF2
  bootloader mode using the AdaFruit nrf52
  bootloader.
2020-08-21 11:23:45 -04:00
Pete Johanson c054feb3c9
Merge pull request #100 from petejohanson/behaviors/add-none
Add `&none` behavior.
2020-08-18 14:31:20 -04:00
Pete Johanson 63e02d60dc feat(behaviors): Add &none behavior 2020-08-18 14:28:11 -04:00
Cody McGinnis 7facb6eee8 fix(keymap): move the toggle layer logic to keymap.c 2020-08-18 14:02:25 -04:00
Cody McGinnis a82f990d4c feat(keymap): allow users to toggle layers 2020-08-18 14:02:24 -04:00
Pete Johanson 8a07938d9b Minor cleanup. 2020-07-31 23:29:32 -04:00
Pete Johanson 8bba1fb738 Major mod-tap improvements.
* Track active mods when mods or keycode
  events occur.
* Use the tracked mods when releasing or
  generating keycode events.
* Track pending/used status in one array, for
  improved storage efficency.
2020-07-31 14:38:10 -04:00