From 7e659851c80bf2819554d93ad9971f56aa5b225b Mon Sep 17 00:00:00 2001 From: Pete Johanson Date: Sat, 20 Jun 2020 17:54:52 -0400 Subject: Refactor matrix transform, positions pervasively * Do mapping to positions right in kscan handler, and then surface positions throughout the API. --- app/boards/shields/kyria/kyria.overlay | 39 ++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) (limited to 'app/boards/shields/kyria') diff --git a/app/boards/shields/kyria/kyria.overlay b/app/boards/shields/kyria/kyria.overlay index af4e591..4140fcf 100644 --- a/app/boards/shields/kyria/kyria.overlay +++ b/app/boards/shields/kyria/kyria.overlay @@ -4,9 +4,20 @@ * SPDX-License-Identifier: MIT */ +#include +#include +#include + / { chosen { zmk,kscan = &kscan0; + zmk,matrix_transform = &default_transform; + zmk,global_bindings = &bindings; + }; + + bindings: global_bindings { + compatible = "zmk,global-bindings"; + bindings = <&keymap_behavior &hid_behavior>; }; kscan0: kscan_comp { @@ -28,6 +39,34 @@ }; }; + default_transform: keymap_transform_0 { + compatible = "zmk,matrix-transform"; +// | MX6 | MX5 | MX4 | MX3 | MX2 | MX1 | | MX1 | MX2 | MX3 | MX4 | MX5 | MX6 | +// | MX12 | MX11 | MX10 | MX9 | MX8 | MX7 | | MX7 | MX8 | MX9 | MX10 | MX11 | MX12 | +// | MX20 | MX19 | MX18 | MX17 | MX16 | MX15 | MX14 | MX13 | | MX13 | MX14 | MX15 | MX16 | MX17 | MX18 | MX19 | MX20 | +// | MX25 | MX24 | MX23 | MX22 | MX21 | | MX21 | MX22 | MX23 | MX24 | MX25 | + map = < +RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(0,10) RC(0,11) RC(0,12) RC(0,13) RC(0,14) RC(0,15) +RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,10) RC(1,11) RC(1,12) RC(1,13) RC(1,14) RC(1,15) +RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11) RC(2,12) RC(2,13) RC(2,14) RC(2,15) + RC(3,3) RC(3,4) RC(3,5) RC(3,6) RC(3,7) RC(3,8) RC(3,9) RC(3,10) RC(3,11) RC(3,12) + >; + }; + +// | MX5 | MX4 | MX3 | MX2 | MX1 | | MX1 | MX2 | MX3 | MX4 | MX5 | +// | MX11 | MX10 | MX9 | MX8 | MX7 | | MX7 | MX8 | MX9 | MX10 | MX11 | +// | MX19 | MX18 | MX17 | MX16 | MX15 | MX14 | MX13 | | MX13 | MX14 | MX15 | MX16 | MX17 | MX18 | MX19 | +// | MX25 | MX24 | MX23 | MX22 | MX21 | | MX21 | MX22 | MX23 | MX24 | MX25 | + five_column_transform: keymap_transform_1 { + compatible = "zmk,matrix-transform"; + map = < +RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,9) RC(0,10) RC(0,11) RC(0,12) RC(0,13) +RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,9) RC(1,10) RC(1,11) RC(1,12) RC(1,13) +RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11) RC(2,12) RC(2,13) + RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(3,6) RC(3,7) RC(3,8) RC(3,9) RC(3,10) RC(3,11) + >; + }; + kscan_left: kscan_left { compatible = "gpio-kscan"; label = "KSCAN_LEFT"; -- cgit v1.2.3 From 223edf05ad08938b066f9187668ebfae43c5e91a Mon Sep 17 00:00:00 2001 From: Pete Johanson Date: Sun, 21 Jun 2020 21:43:44 -0400 Subject: Refactor global bindings, implement mod-tap. * Use extra comptible = "zmk,behavior-global" to add behaviors to global bindings for event notification. * Implement mod-tap, as a keymap binding and global one to skip tap if other keycode pressed while held. --- app/boards/shields/kyria/kyria.overlay | 6 ------ 1 file changed, 6 deletions(-) (limited to 'app/boards/shields/kyria') diff --git a/app/boards/shields/kyria/kyria.overlay b/app/boards/shields/kyria/kyria.overlay index 4140fcf..d560ed6 100644 --- a/app/boards/shields/kyria/kyria.overlay +++ b/app/boards/shields/kyria/kyria.overlay @@ -12,12 +12,6 @@ chosen { zmk,kscan = &kscan0; zmk,matrix_transform = &default_transform; - zmk,global_bindings = &bindings; - }; - - bindings: global_bindings { - compatible = "zmk,global-bindings"; - bindings = <&keymap_behavior &hid_behavior>; }; kscan0: kscan_comp { -- cgit v1.2.3 From c6625169e5f6cfc8641fc08662f59935abf11588 Mon Sep 17 00:00:00 2001 From: Pete Johanson Date: Sun, 21 Jun 2020 22:05:11 -0400 Subject: Refactor to single include. --- .../shields/kyria/keymaps/default/keymap.overlay | 30 +--------------------- 1 file changed, 1 insertion(+), 29 deletions(-) (limited to 'app/boards/shields/kyria') diff --git a/app/boards/shields/kyria/keymaps/default/keymap.overlay b/app/boards/shields/kyria/keymaps/default/keymap.overlay index 303c675..66c1a23 100644 --- a/app/boards/shields/kyria/keymaps/default/keymap.overlay +++ b/app/boards/shields/kyria/keymaps/default/keymap.overlay @@ -1,3 +1,4 @@ +#include #include #include #include @@ -11,35 +12,6 @@ compatible = "zmk,keymap"; label ="Default Kyria Keymap"; layers = <&default>; - transform = <&default_transform>; - }; - - default_transform: keymap_transform_0 { - compatible = "zmk,matrix-transform"; -// | MX6 | MX5 | MX4 | MX3 | MX2 | MX1 | | MX1 | MX2 | MX3 | MX4 | MX5 | MX6 | -// | MX12 | MX11 | MX10 | MX9 | MX8 | MX7 | | MX7 | MX8 | MX9 | MX10 | MX11 | MX12 | -// | MX20 | MX19 | MX18 | MX17 | MX16 | MX15 | MX14 | MX13 | | MX13 | MX14 | MX15 | MX16 | MX17 | MX18 | MX19 | MX20 | -// | MX25 | MX24 | MX23 | MX22 | MX21 | | MX21 | MX22 | MX23 | MX24 | MX25 | - map = < -RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(0,10) RC(0,11) RC(0,12) RC(0,13) RC(0,14) RC(0,15) -RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,10) RC(1,11) RC(1,12) RC(1,13) RC(1,14) RC(1,15) -RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11) RC(2,12) RC(2,13) RC(2,14) RC(2,15) - RC(3,3) RC(3,4) RC(3,5) RC(3,6) RC(3,7) RC(3,8) RC(3,9) RC(3,10) RC(3,11) RC(3,12) - >; - }; - -// | MX5 | MX4 | MX3 | MX2 | MX1 | | MX1 | MX2 | MX3 | MX4 | MX5 | -// | MX11 | MX10 | MX9 | MX8 | MX7 | | MX7 | MX8 | MX9 | MX10 | MX11 | -// | MX19 | MX18 | MX17 | MX16 | MX15 | MX14 | MX13 | | MX13 | MX14 | MX15 | MX16 | MX17 | MX18 | MX19 | -// | MX25 | MX24 | MX23 | MX22 | MX21 | | MX21 | MX22 | MX23 | MX24 | MX25 | - five_column_transform: keymap_transform_1 { - compatible = "zmk,matrix-transform"; - map = < -RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,9) RC(0,10) RC(0,11) RC(0,12) RC(0,13) -RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,9) RC(1,10) RC(1,11) RC(1,12) RC(1,13) -RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11) RC(2,12) RC(2,13) - RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(3,6) RC(3,7) RC(3,8) RC(3,9) RC(3,10) RC(3,11) - >; }; layers { -- cgit v1.2.3 From ec663310c1682f55578b1b6d886ebcae4965425c Mon Sep 17 00:00:00 2001 From: Pete Johanson Date: Sun, 21 Jun 2020 22:46:27 -0400 Subject: Clean up after refactor, better HID constants. --- app/boards/shields/kyria/keymap/keymap.overlay | 34 +++++++++++++++++++++ .../shields/kyria/keymaps/default/include/keymap.h | 5 ---- app/boards/shields/kyria/keymaps/default/keymap.c | 34 --------------------- .../shields/kyria/keymaps/default/keymap.overlay | 35 ---------------------- 4 files changed, 34 insertions(+), 74 deletions(-) create mode 100644 app/boards/shields/kyria/keymap/keymap.overlay delete mode 100644 app/boards/shields/kyria/keymaps/default/include/keymap.h delete mode 100644 app/boards/shields/kyria/keymaps/default/keymap.c delete mode 100644 app/boards/shields/kyria/keymaps/default/keymap.overlay (limited to 'app/boards/shields/kyria') diff --git a/app/boards/shields/kyria/keymap/keymap.overlay b/app/boards/shields/kyria/keymap/keymap.overlay new file mode 100644 index 0000000..f61bb6c --- /dev/null +++ b/app/boards/shields/kyria/keymap/keymap.overlay @@ -0,0 +1,34 @@ +#include +#include +#include + +/ { + chosen { + zmk,keymap = &keymap0; + }; + + keymap0: keymap { + compatible = "zmk,keymap"; + label ="Default Kyria Keymap"; + layers = <&default>; + }; + + layers { + compatible = "zmk,layers"; + + default: layer_0 { + label = "DEFAULT"; +// --------------------------------------------------------------------------------------------------------------------------------- +// | ESC | Q | W | E | R | T | | Y | U | I | O | P | "|" | +// | <- | A | S | D | F | G | | H | J | K | L | ; | ' | +// | SHIFT | Z | X | C | V | B | L SHIFT | L SHIFT | | L SHIFT | L SHIFT | N | M | , | . | / | - | +// | GUI | DEL | RET | SPACE | ESC | | RET | SPACE | TAB | BSPC | R-ALT | + bindings = < + &kp ESC &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp PIPE + &kp BKSP &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SCLN &kp QUOT + &kp LSFT &kp Z &kp X &kp C &kp V &kp B &kp LSFT &kp LSFT &kp LSFT &kp LSFT &kp N &kp M &kp CMMA &kp DOT &kp BSLH &kp MINUS + &kp LGUI &kp DEL &kp RET &kp SPC &kp ESC &kp RET &kp SPC &kp TAB &kp BKSP &kp RALT + >; + }; + }; +}; diff --git a/app/boards/shields/kyria/keymaps/default/include/keymap.h b/app/boards/shields/kyria/keymaps/default/include/keymap.h deleted file mode 100644 index 01cd9e5..0000000 --- a/app/boards/shields/kyria/keymaps/default/include/keymap.h +++ /dev/null @@ -1,5 +0,0 @@ - -#include - -#define CC_RAIS ZC_CSTM(1) -#define CC_LOWR ZC_CSTM(2) \ No newline at end of file diff --git a/app/boards/shields/kyria/keymaps/default/keymap.c b/app/boards/shields/kyria/keymaps/default/keymap.c deleted file mode 100644 index 067cd08..0000000 --- a/app/boards/shields/kyria/keymaps/default/keymap.c +++ /dev/null @@ -1,34 +0,0 @@ - -#include -#include -#include - -bool zmk_handle_key_user(struct zmk_key_event *key_event) -{ - switch (key_event->key) - { - case CC_LOWR: - if (key_event->pressed) - { - zmk_keymap_layer_activate(1); - } - else - { - zmk_keymap_layer_deactivate(1); - } - - return false; - case CC_RAIS: - if (key_event->pressed) - { - zmk_keymap_layer_activate(2); - } - else - { - zmk_keymap_layer_deactivate(2); - } - return false; - } - - return true; -}; diff --git a/app/boards/shields/kyria/keymaps/default/keymap.overlay b/app/boards/shields/kyria/keymaps/default/keymap.overlay deleted file mode 100644 index 66c1a23..0000000 --- a/app/boards/shields/kyria/keymaps/default/keymap.overlay +++ /dev/null @@ -1,35 +0,0 @@ -#include -#include -#include -#include - -/ { - chosen { - zmk,keymap = &keymap0; - }; - - keymap0: keymap { - compatible = "zmk,keymap"; - label ="Default Kyria Keymap"; - layers = <&default>; - }; - - layers { - compatible = "zmk,layers"; - - default: layer_0 { - label = "DEFAULT"; -// --------------------------------------------------------------------------------------------------------------------------------- -// | ESC | Q | W | E | R | T | | Y | U | I | O | P | "|" | -// | <- | A | S | D | F | G | | H | J | K | L | ; | ' | -// | SHIFT | Z | X | C | V | B | L SHIFT | L SHIFT | | L SHIFT | L SHIFT | N | M | , | . | / | - | -// | GUI | DEL | RET | SPACE | ESC | | RET | SPACE | TAB | BSPC | R-ALT | - keys = < - KC_ESC KC_Q KC_W KC_E KC_R KC_T KC_Y KC_U KC_I KC_O KC_P KC_PIPE - KC_BKSP KC_A KC_S KC_D KC_F KC_G KC_H KC_J KC_K KC_L KC_SCLN KC_QUOT - KC_LSFT KC_Z KC_X KC_C KC_V KC_B KC_LSFT KC_LSFT KC_LSFT KC_LSFT KC_N KC_M KC_CMMA KC_DOT KC_BSLH KC_MIN - KC_LGUI KC_DEL KC_RET KC_SPC KC_ESC KC_RET KC_SPC KC_TAB KC_BKSP KC_RALT - >; - }; - }; -}; -- cgit v1.2.3