From 2f1c3dd538257eb1405ea52908db4b758ff12835 Mon Sep 17 00:00:00 2001 From: Pete Johanson Date: Wed, 29 Jul 2020 00:12:35 -0400 Subject: Remove unneeded macro. --- app/include/dt-bindings/zmk/keys.h | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'app/include') diff --git a/app/include/dt-bindings/zmk/keys.h b/app/include/dt-bindings/zmk/keys.h index e2c3160..726d200 100644 --- a/app/include/dt-bindings/zmk/keys.h +++ b/app/include/dt-bindings/zmk/keys.h @@ -55,7 +55,7 @@ #define QUOT 0x34 #define GRAV 0x35 #define CMMA 0x36 -#define DOT 0x37 +#define DOT 0x37 #define FSLH 0x38 #define CLCK 0x39 #define F1 0x3A @@ -141,6 +141,4 @@ #define MOD_RCTL (1 << 0x04) #define MOD_RSFT (1 << 0x05) #define MOD_RALT (1 << 0x06) -#define MOD_RGUI (1 << 0x07) - -#define ZK_IS_CONSUMER(k) (ZK_KEY(k) >= 0x100) +#define MOD_RGUI (1 << 0x07) \ No newline at end of file -- cgit v1.2.3 From cf8c7856ff4251c72b53d29f1b48cc266badab98 Mon Sep 17 00:00:00 2001 From: Pete Johanson Date: Thu, 30 Jul 2020 00:13:32 -0400 Subject: Add the ability to capture event and release later --- app/include/zmk/event-manager.h | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'app/include') diff --git a/app/include/zmk/event-manager.h b/app/include/zmk/event-manager.h index 2ef55e9..3938171 100644 --- a/app/include/zmk/event-manager.h +++ b/app/include/zmk/event-manager.h @@ -17,8 +17,12 @@ struct zmk_event_type struct zmk_event_header { const struct zmk_event_type* event; + u8_t last_listener_index; }; +#define ZMK_EV_EVENT_HANDLED 1 +#define ZMK_EV_EVENT_CAPTURED 2 + typedef int (*zmk_listener_callback_t)(const struct zmk_event_header *eh); struct zmk_listener { @@ -33,7 +37,7 @@ struct zmk_event_subscription { #define ZMK_EVENT_DECLARE(event_type) \ struct event_type* new_##event_type(); \ bool is_##event_type(const struct zmk_event_header *eh); \ - const struct event_type* cast_##event_type(const struct zmk_event_header *eh); \ + struct event_type* cast_##event_type(const struct zmk_event_header *eh); \ extern const struct zmk_event_type zmk_event_##event_type; #define ZMK_EVENT_IMPL(event_type) \ @@ -49,8 +53,8 @@ struct zmk_event_subscription { bool is_##event_type(const struct zmk_event_header *eh) { \ return eh->event == &zmk_event_##event_type; \ }; \ - const struct event_type* cast_##event_type(const struct zmk_event_header *eh) {\ - return (const struct event_type*)eh; \ + struct event_type* cast_##event_type(const struct zmk_event_header *eh) {\ + return (struct event_type*)eh; \ }; @@ -68,4 +72,8 @@ struct zmk_event_subscription { #define ZMK_EVENT_RAISE(ev) \ zmk_event_manager_raise((struct zmk_event_header *)ev); +#define ZMK_EVENT_RELEASE(ev) \ + zmk_event_manager_release((struct zmk_event_header *)ev); + int zmk_event_manager_raise(struct zmk_event_header *event); +int zmk_event_manager_release(struct zmk_event_header *event); -- cgit v1.2.3 From f548f2a87c670a2b56507bc104e1af39fa3846e7 Mon Sep 17 00:00:00 2001 From: Pete Johanson Date: Fri, 31 Jul 2020 00:07:16 -0400 Subject: Initial stab at mod-tap improvements. * Not working: Roll over + mod-tap with multiple mod-tap bindings! --- app/include/zmk/event-manager.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'app/include') diff --git a/app/include/zmk/event-manager.h b/app/include/zmk/event-manager.h index 3938171..43d3f29 100644 --- a/app/include/zmk/event-manager.h +++ b/app/include/zmk/event-manager.h @@ -72,8 +72,12 @@ struct zmk_event_subscription { #define ZMK_EVENT_RAISE(ev) \ zmk_event_manager_raise((struct zmk_event_header *)ev); +#define ZMK_EVENT_RAISE_AFTER(ev, mod) \ + zmk_event_manager_raise_after((struct zmk_event_header *)ev, &zmk_listener_##mod); + #define ZMK_EVENT_RELEASE(ev) \ zmk_event_manager_release((struct zmk_event_header *)ev); int zmk_event_manager_raise(struct zmk_event_header *event); +int zmk_event_manager_raise_after(struct zmk_event_header *event, const struct zmk_listener *listener); int zmk_event_manager_release(struct zmk_event_header *event); -- cgit v1.2.3 From fbaeb9560165deaa0f13847a48215f470845a5f8 Mon Sep 17 00:00:00 2001 From: Nick Date: Sun, 2 Aug 2020 20:46:56 -0500 Subject: Add better default keymap for lily58 --- app/include/dt-bindings/zmk/keys.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app/include') diff --git a/app/include/dt-bindings/zmk/keys.h b/app/include/dt-bindings/zmk/keys.h index 726d200..0a52857 100644 --- a/app/include/dt-bindings/zmk/keys.h +++ b/app/include/dt-bindings/zmk/keys.h @@ -50,7 +50,7 @@ #define LBKT 0x2F #define RBKT 0x30 #define BSLH 0x31 - +#define TILD 0x32 #define SCLN 0x33 #define QUOT 0x34 #define GRAV 0x35 -- cgit v1.2.3 From 4402e4fbc7bc79206589d3006fde802c4ba70ec7 Mon Sep 17 00:00:00 2001 From: Pete Johanson Date: Tue, 18 Aug 2020 11:20:15 -0400 Subject: feeature(bt): Add "unpair combo" on startup. * Especially for splits, we need the ability to unpair all paired devices as sledgehammer if we need to "reset things", and doing so via keymaps isn't suitable. * Allows shields to define a collection of key positions that if all held 2 seconds after startup, will unpair all existing pairs for the device. --- app/include/zmk/ble.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app/include') diff --git a/app/include/zmk/ble.h b/app/include/zmk/ble.h index a77237d..e760ed7 100644 --- a/app/include/zmk/ble.h +++ b/app/include/zmk/ble.h @@ -3,5 +3,5 @@ #include -int zmk_ble_init(); +int zmk_ble_unpair_all(); bool zmk_ble_handle_key_user(struct zmk_key_event *key_event); -- cgit v1.2.3 From a82f990d4c518165fc745ce2b5fb5cf2dd6b2727 Mon Sep 17 00:00:00 2001 From: Cody McGinnis Date: Tue, 18 Aug 2020 14:02:24 -0400 Subject: feat(keymap): allow users to toggle layers --- app/include/zmk/keymap.h | 1 + 1 file changed, 1 insertion(+) (limited to 'app/include') diff --git a/app/include/zmk/keymap.h b/app/include/zmk/keymap.h index 4a6bb37..c55207f 100644 --- a/app/include/zmk/keymap.h +++ b/app/include/zmk/keymap.h @@ -1,5 +1,6 @@ #pragma once +bool zmk_keymap_layer_active(u8_t layer); int zmk_keymap_layer_activate(u8_t layer); int zmk_keymap_layer_deactivate(u8_t layer); -- cgit v1.2.3 From 7facb6eee8c5864c86b0a69213db4aabf6f24585 Mon Sep 17 00:00:00 2001 From: Cody McGinnis Date: Tue, 18 Aug 2020 14:02:25 -0400 Subject: fix(keymap): move the toggle layer logic to keymap.c --- app/include/zmk/keymap.h | 1 + 1 file changed, 1 insertion(+) (limited to 'app/include') diff --git a/app/include/zmk/keymap.h b/app/include/zmk/keymap.h index c55207f..c1f6393 100644 --- a/app/include/zmk/keymap.h +++ b/app/include/zmk/keymap.h @@ -3,5 +3,6 @@ bool zmk_keymap_layer_active(u8_t layer); int zmk_keymap_layer_activate(u8_t layer); int zmk_keymap_layer_deactivate(u8_t layer); +int zmk_keymap_layer_toggle(u8_t layer); int zmk_keymap_position_state_changed(u32_t position, bool pressed); -- cgit v1.2.3 From 805ea770053269278fe0ed443b68f600021d82d1 Mon Sep 17 00:00:00 2001 From: Pete Johanson Date: Fri, 21 Aug 2020 00:33:48 -0400 Subject: 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. --- app/include/dt-bindings/zmk/reset.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 app/include/dt-bindings/zmk/reset.h (limited to 'app/include') diff --git a/app/include/dt-bindings/zmk/reset.h b/app/include/dt-bindings/zmk/reset.h new file mode 100644 index 0000000..b513649 --- /dev/null +++ b/app/include/dt-bindings/zmk/reset.h @@ -0,0 +1,12 @@ +/* + * Copyright (c) 2020 Peter Johanson + * + * SPDX-License-Identifier: MIT + */ + +#define RST_WARM 0x00 +#define RST_COLD 0x01 + +// AdaFruit nrf52 Bootloader Specific. See https://github.com/adafruit/Adafruit_nRF52_Bootloader/blob/d6b28e66053eea467166f44875e3c7ec741cb471/src/main.c#L107 + +#define RST_UF2 0x57 \ No newline at end of file -- cgit v1.2.3 From d848034c81ff3dea95a6ca98c0b05c76971647eb Mon Sep 17 00:00:00 2001 From: CrossR Date: Fri, 21 Aug 2020 22:15:27 +0100 Subject: Add keycodes properly. --- app/include/dt-bindings/zmk/keys.h | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'app/include') diff --git a/app/include/dt-bindings/zmk/keys.h b/app/include/dt-bindings/zmk/keys.h index 0a52857..cd9261d 100644 --- a/app/include/dt-bindings/zmk/keys.h +++ b/app/include/dt-bindings/zmk/keys.h @@ -92,6 +92,11 @@ #define GUI 0x65 +#define UNDO 0x7A +#define CUT 0x7B +#define COPY 0x7C +#define PSTE 0x7D + #define CURU 0xB4 #define LPRN 0xB6 -- cgit v1.2.3 From f02fa01e9a9af1a1637a387f3e8044a791b47ced Mon Sep 17 00:00:00 2001 From: Cody McGinnis Date: Fri, 28 Aug 2020 16:21:31 -0400 Subject: fix(test): change the layout --- app/include/dt-bindings/zmk/kscan-mock.h | 8 ++++++++ app/include/zmk/kscan-mock.h | 8 -------- 2 files changed, 8 insertions(+), 8 deletions(-) create mode 100644 app/include/dt-bindings/zmk/kscan-mock.h delete mode 100644 app/include/zmk/kscan-mock.h (limited to 'app/include') diff --git a/app/include/dt-bindings/zmk/kscan-mock.h b/app/include/dt-bindings/zmk/kscan-mock.h new file mode 100644 index 0000000..d481899 --- /dev/null +++ b/app/include/dt-bindings/zmk/kscan-mock.h @@ -0,0 +1,8 @@ +#pragma once + +#define ZMK_MOCK_IS_PRESS(v) ((v & (0x01 << 31)) != 0) +#define ZMK_MOCK_PRESS(row, col, msec) (row + (col << 8) + (msec << 16) + (0x01 << 31)) +#define ZMK_MOCK_RELEASE(row, col, msec) (row + (col << 8) + (msec << 16)) +#define ZMK_MOCK_ROW(v) (v & 0xFF) +#define ZMK_MOCK_COL(v) ((v >> 8) & 0xFF) +#define ZMK_MOCK_MSEC(v) ((v & ~(0x01 << 31)) >> 16) diff --git a/app/include/zmk/kscan-mock.h b/app/include/zmk/kscan-mock.h deleted file mode 100644 index d481899..0000000 --- a/app/include/zmk/kscan-mock.h +++ /dev/null @@ -1,8 +0,0 @@ -#pragma once - -#define ZMK_MOCK_IS_PRESS(v) ((v & (0x01 << 31)) != 0) -#define ZMK_MOCK_PRESS(row, col, msec) (row + (col << 8) + (msec << 16) + (0x01 << 31)) -#define ZMK_MOCK_RELEASE(row, col, msec) (row + (col << 8) + (msec << 16)) -#define ZMK_MOCK_ROW(v) (v & 0xFF) -#define ZMK_MOCK_COL(v) ((v >> 8) & 0xFF) -#define ZMK_MOCK_MSEC(v) ((v & ~(0x01 << 31)) >> 16) -- cgit v1.2.3 From c33931c72c179d19028b2d70ec043cbc3d786137 Mon Sep 17 00:00:00 2001 From: Okke Formsma Date: Tue, 1 Sep 2020 14:37:37 +0200 Subject: Initial implementation of hold-tap --- app/include/zmk/event-manager.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'app/include') diff --git a/app/include/zmk/event-manager.h b/app/include/zmk/event-manager.h index 43d3f29..07c0aa9 100644 --- a/app/include/zmk/event-manager.h +++ b/app/include/zmk/event-manager.h @@ -78,6 +78,10 @@ struct zmk_event_subscription { #define ZMK_EVENT_RELEASE(ev) \ zmk_event_manager_release((struct zmk_event_header *)ev); +#define ZMK_EVENT_RELEASE_AGAIN(ev) \ + zmk_event_manager_release_again((struct zmk_event_header *)ev); + int zmk_event_manager_raise(struct zmk_event_header *event); int zmk_event_manager_raise_after(struct zmk_event_header *event, const struct zmk_listener *listener); int zmk_event_manager_release(struct zmk_event_header *event); +int zmk_event_manager_release_again(struct zmk_event_header *event); -- cgit v1.2.3 From c5ca66441172114b57ca7f7b27d13d0d342d4fcc Mon Sep 17 00:00:00 2001 From: Okke Formsma Date: Wed, 2 Sep 2020 15:11:56 +0200 Subject: some fixes based on feedback --- app/include/zmk/event-manager.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'app/include') diff --git a/app/include/zmk/event-manager.h b/app/include/zmk/event-manager.h index 07c0aa9..d9a56a4 100644 --- a/app/include/zmk/event-manager.h +++ b/app/include/zmk/event-manager.h @@ -75,13 +75,14 @@ struct zmk_event_subscription { #define ZMK_EVENT_RAISE_AFTER(ev, mod) \ zmk_event_manager_raise_after((struct zmk_event_header *)ev, &zmk_listener_##mod); + +#define ZMK_EVENT_RAISE_AT(ev, mod) \ + zmk_event_manager_raise_at((struct zmk_event_header *)ev, &zmk_listener_##mod); + #define ZMK_EVENT_RELEASE(ev) \ zmk_event_manager_release((struct zmk_event_header *)ev); -#define ZMK_EVENT_RELEASE_AGAIN(ev) \ - zmk_event_manager_release_again((struct zmk_event_header *)ev); - int zmk_event_manager_raise(struct zmk_event_header *event); int zmk_event_manager_raise_after(struct zmk_event_header *event, const struct zmk_listener *listener); +int zmk_event_manager_raise_at(struct zmk_event_header *event, const struct zmk_listener *listener); int zmk_event_manager_release(struct zmk_event_header *event); -int zmk_event_manager_release_again(struct zmk_event_header *event); -- cgit v1.2.3