From 583839afce4b8117e3ae7bd644954b03d0ed3ddf Mon Sep 17 00:00:00 2001 From: Pete Johanson Date: Sat, 13 Jun 2020 16:37:31 -0400 Subject: Initial refactor to have a shield/board have one default keymap. * Start of work of focusing on out-of-tree user keymaps. Add ZMK_CONFIG support. * General external configuration supported via ZMK_CONFIG, which should point to a configuration directory. * Priority order of overlay files to select. * ${SHIELD}_${BOARD}.overlay * ${SHIELD}.overlay * ${BOARD}.overlay * default.overlay * Equivalent search order for .conf files for initial Kconfig values. --- .../petejohanson_handwire/keymap/include/keymap.h | 5 +++ .../shields/petejohanson_handwire/keymap/keymap.c | 34 ++++++++++++++++++ .../petejohanson_handwire/keymap/keymap.overlay | 41 ++++++++++++++++++++++ 3 files changed, 80 insertions(+) create mode 100644 app/boards/shields/petejohanson_handwire/keymap/include/keymap.h create mode 100644 app/boards/shields/petejohanson_handwire/keymap/keymap.c create mode 100644 app/boards/shields/petejohanson_handwire/keymap/keymap.overlay (limited to 'app/boards/shields/petejohanson_handwire/keymap') diff --git a/app/boards/shields/petejohanson_handwire/keymap/include/keymap.h b/app/boards/shields/petejohanson_handwire/keymap/include/keymap.h new file mode 100644 index 0000000..01cd9e5 --- /dev/null +++ b/app/boards/shields/petejohanson_handwire/keymap/include/keymap.h @@ -0,0 +1,5 @@ + +#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/petejohanson_handwire/keymap/keymap.c b/app/boards/shields/petejohanson_handwire/keymap/keymap.c new file mode 100644 index 0000000..067cd08 --- /dev/null +++ b/app/boards/shields/petejohanson_handwire/keymap/keymap.c @@ -0,0 +1,34 @@ + +#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/petejohanson_handwire/keymap/keymap.overlay b/app/boards/shields/petejohanson_handwire/keymap/keymap.overlay new file mode 100644 index 0000000..d87363f --- /dev/null +++ b/app/boards/shields/petejohanson_handwire/keymap/keymap.overlay @@ -0,0 +1,41 @@ +#include +#include + +/ { + chosen { + zmk,keymap = &keymap0; + }; + keymap0: keymap { + compatible = "zmk,keymap"; + label ="Default keymap"; + layers = <&default &lower &raise>; + }; + + layers { + compatible = "zmk,layers"; + + default: layer_0 { + label = "DEFAULT"; + keys = + < + KC_A MT(MOD_LSFT, KC_B) ZC_NO ZC_NO + CC_RAIS CC_LOWR ZC_NO ZC_NO + >; + }; + + lower: layer_1 { + label = "LOWER"; + keys = < + KC_MPLY KC_MNXT ZC_NO ZC_NO + ZC_TRNS ZC_TRNS ZC_NO ZC_NO + >; + }; + + raise: layer_2 { + label = "RAISE"; + keys = < + KC_C KC_D ZC_NO ZC_NO + ZC_TRNS ZC_TRNS ZC_NO ZC_NO>; + }; + }; +}; -- cgit v1.2.3