From 1751470785a110729afc01f3947b406bc40ceb43 Mon Sep 17 00:00:00 2001 From: Pete Johanson Date: Mon, 15 Jun 2020 17:03:34 -0400 Subject: Initial work on keymap transforms for non-standard matrixes. * Allows "gaps" for keyboards like Kyra. * Allows keyboards with matrixes that don't map the logical key locations to have normal looking keymaps when defined. --- .../shields/kyria/keymaps/default/keymap.overlay | 50 ++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 app/boards/shields/kyria/keymaps/default/keymap.overlay (limited to 'app/boards/shields/kyria/keymaps/default/keymap.overlay') diff --git a/app/boards/shields/kyria/keymaps/default/keymap.overlay b/app/boards/shields/kyria/keymaps/default/keymap.overlay new file mode 100644 index 0000000..62c842d --- /dev/null +++ b/app/boards/shields/kyria/keymaps/default/keymap.overlay @@ -0,0 +1,50 @@ +#include +#include +#include + +/ { + chosen { + zmk,keymap = &keymap0; + }; + + keymap0: keymap { + compatible = "zmk,keymap"; + label ="Default Kyria Keymap"; + layers = <&default>; + transform = <&default_transform>; + }; + + default_transform: keymap_transform_0 { + compatible = "zmk,keymap-transform"; + map = < + IDENTITY_ROW(0, 6) OFFSET_ROW(6, 0, 6) + IDENTITY_ROW(1, 6) OFFSET_ROW(6, 1, 6) + IDENTITY_ROW(2, 8) OFFSET_ROW(8, 2, 8) + OFFSET_ROW(3, 3, 5) OFFSET_ROW(8, 3, 5) + >; + }; + + five_column_transform: keymap_transform_1 { + compatible = "zmk,keymap-transform"; + map = < + IDENTITY_ROW(0, 5) OFFSET_ROW(5, 0, 5) + IDENTITY_ROW(1, 5) OFFSET_ROW(6, 1, 5) + IDENTITY_ROW(2, 7) OFFSET_ROW(7, 2, 7) + OFFSET_ROW(2, 3, 5) OFFSET_ROW(7, 3, 5) + >; + }; + + layers { + compatible = "zmk,layers"; + + default: layer_0 { + label = "DEFAULT"; + 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 From a65cdea66b412a5afeaa25a75801e69eb76212f4 Mon Sep 17 00:00:00 2001 From: Pete Johanson Date: Tue, 16 Jun 2020 16:21:39 -0400 Subject: Better naming, layout comments for clarity. --- .../shields/kyria/keymaps/default/keymap.overlay | 37 +++++++++++++++------- 1 file changed, 25 insertions(+), 12 deletions(-) (limited to 'app/boards/shields/kyria/keymaps/default/keymap.overlay') diff --git a/app/boards/shields/kyria/keymaps/default/keymap.overlay b/app/boards/shields/kyria/keymaps/default/keymap.overlay index 62c842d..d01d8ba 100644 --- a/app/boards/shields/kyria/keymaps/default/keymap.overlay +++ b/app/boards/shields/kyria/keymaps/default/keymap.overlay @@ -16,21 +16,29 @@ default_transform: keymap_transform_0 { compatible = "zmk,keymap-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 = < - IDENTITY_ROW(0, 6) OFFSET_ROW(6, 0, 6) - IDENTITY_ROW(1, 6) OFFSET_ROW(6, 1, 6) - IDENTITY_ROW(2, 8) OFFSET_ROW(8, 2, 8) - OFFSET_ROW(3, 3, 5) OFFSET_ROW(8, 3, 5) + KT_ID_ROW(0, 6) KT_OFFSET_ROW(6, 0, 6) + KT_ID_ROW(1, 6) KT_OFFSET_ROW(6, 1, 6) + KT_ID_ROW(2, 8) KT_OFFSET_ROW(8, 2, 8) + KT_OFFSET_ROW(3, 3, 5) KT_OFFSET_ROW(8, 3, 5) >; }; +// | 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,keymap-transform"; map = < - IDENTITY_ROW(0, 5) OFFSET_ROW(5, 0, 5) - IDENTITY_ROW(1, 5) OFFSET_ROW(6, 1, 5) - IDENTITY_ROW(2, 7) OFFSET_ROW(7, 2, 7) - OFFSET_ROW(2, 3, 5) OFFSET_ROW(7, 3, 5) + KT_ID_ROW(0, 5) KT_OFFSET_ROW(5, 0, 5) + KT_ID_ROW(1, 5) KT_OFFSET_ROW(6, 1, 5) + KT_ID_ROW(2, 7) KT_OFFSET_ROW(7, 2, 7) + KT_OFFSET_ROW(2, 3, 5) KT_OFFSET_ROW(7, 3, 5) >; }; @@ -39,11 +47,16 @@ 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 + 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 From 6b6ecb3b0c0cabdeb7f320e6b469f28de2a60664 Mon Sep 17 00:00:00 2001 From: Pete Johanson Date: Tue, 16 Jun 2020 21:32:11 -0400 Subject: Tweaks to remove "helper macros" * More direct transform maps were agreed to be clearer. * Remove helpers, just use simple `RC` macro to map a logical location to a row/column pair. --- app/boards/shields/kyria/keymaps/default/keymap.overlay | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'app/boards/shields/kyria/keymaps/default/keymap.overlay') diff --git a/app/boards/shields/kyria/keymaps/default/keymap.overlay b/app/boards/shields/kyria/keymaps/default/keymap.overlay index d01d8ba..3786bec 100644 --- a/app/boards/shields/kyria/keymaps/default/keymap.overlay +++ b/app/boards/shields/kyria/keymaps/default/keymap.overlay @@ -21,10 +21,10 @@ // | 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 = < - KT_ID_ROW(0, 6) KT_OFFSET_ROW(6, 0, 6) - KT_ID_ROW(1, 6) KT_OFFSET_ROW(6, 1, 6) - KT_ID_ROW(2, 8) KT_OFFSET_ROW(8, 2, 8) - KT_OFFSET_ROW(3, 3, 5) KT_OFFSET_ROW(8, 3, 5) +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) >; }; @@ -35,10 +35,10 @@ five_column_transform: keymap_transform_1 { compatible = "zmk,keymap-transform"; map = < - KT_ID_ROW(0, 5) KT_OFFSET_ROW(5, 0, 5) - KT_ID_ROW(1, 5) KT_OFFSET_ROW(6, 1, 5) - KT_ID_ROW(2, 7) KT_OFFSET_ROW(7, 2, 7) - KT_OFFSET_ROW(2, 3, 5) KT_OFFSET_ROW(7, 3, 5) +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) >; }; -- cgit v1.2.3 From 1659562bb75e14476cbf94c0cbe2e536b7c7620a Mon Sep 17 00:00:00 2001 From: Pete Johanson Date: Tue, 16 Jun 2020 21:35:44 -0400 Subject: Rename keymap-transform to matrix-transform. * Clearer name to capture essence of the role of the transform. --- app/boards/shields/kyria/keymaps/default/keymap.overlay | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'app/boards/shields/kyria/keymaps/default/keymap.overlay') diff --git a/app/boards/shields/kyria/keymaps/default/keymap.overlay b/app/boards/shields/kyria/keymaps/default/keymap.overlay index 3786bec..303c675 100644 --- a/app/boards/shields/kyria/keymaps/default/keymap.overlay +++ b/app/boards/shields/kyria/keymaps/default/keymap.overlay @@ -1,5 +1,5 @@ #include -#include +#include #include / { @@ -15,7 +15,7 @@ }; default_transform: keymap_transform_0 { - compatible = "zmk,keymap-transform"; + 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 | @@ -33,7 +33,7 @@ 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) // | 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,keymap-transform"; + 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) -- cgit v1.2.3