diff --git a/app/boards/shields/petejohanson_proton_handwire/Kconfig.defconfig b/app/boards/shields/petejohanson_proton_handwire/Kconfig.defconfig new file mode 100644 index 00000000..196c636e --- /dev/null +++ b/app/boards/shields/petejohanson_proton_handwire/Kconfig.defconfig @@ -0,0 +1,13 @@ + +if SHIELD_PETEJOHANSON_PROTON_HANDWIRE + +config ZMK_KEYBOARD_NAME + default "Pete's Proton Handwire" + +config ZMK_USB + default y + +config ZMK_ACTION_MOD_TAP + default y + +endif diff --git a/app/boards/shields/petejohanson_proton_handwire/Kconfig.shield b/app/boards/shields/petejohanson_proton_handwire/Kconfig.shield new file mode 100644 index 00000000..e43f57d3 --- /dev/null +++ b/app/boards/shields/petejohanson_proton_handwire/Kconfig.shield @@ -0,0 +1,5 @@ +# Copyright (c) 2020 Pete Johanson +# SPDX-License-Identifier: MIT + +config SHIELD_PETEJOHANSON_PROTON_HANDWIRE + def_bool $(shields_list_contains,petejohanson_proton_handwire) diff --git a/app/boards/shields/petejohanson_proton_handwire/keymaps/default/include/keymap.h b/app/boards/shields/petejohanson_proton_handwire/keymaps/default/include/keymap.h new file mode 100644 index 00000000..01cd9e5b --- /dev/null +++ b/app/boards/shields/petejohanson_proton_handwire/keymaps/default/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_proton_handwire/keymaps/default/keymap.c b/app/boards/shields/petejohanson_proton_handwire/keymaps/default/keymap.c new file mode 100644 index 00000000..067cd08e --- /dev/null +++ b/app/boards/shields/petejohanson_proton_handwire/keymaps/default/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_proton_handwire/keymaps/default/keymap.overlay b/app/boards/shields/petejohanson_proton_handwire/keymaps/default/keymap.overlay new file mode 100644 index 00000000..c1bd5425 --- /dev/null +++ b/app/boards/shields/petejohanson_proton_handwire/keymaps/default/keymap.overlay @@ -0,0 +1,42 @@ +#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) + CC_RAIS CC_LOWR + >; + }; + + lower: layer_1 { + label = "LOWER"; + keys = < + KC_MPLY KC_MNXT + ZC_TRNS ZC_TRNS + >; + }; + + raise: layer_2 { + label = "RAISE"; + keys = < + KC_C KC_D + ZC_TRNS ZC_TRNS + >; + }; + }; +}; diff --git a/app/boards/shields/petejohanson_proton_handwire/petejohanson_proton_handwire.conf b/app/boards/shields/petejohanson_proton_handwire/petejohanson_proton_handwire.conf new file mode 100644 index 00000000..e69de29b diff --git a/app/boards/shields/petejohanson_proton_handwire/petejohanson_proton_handwire.overlay b/app/boards/shields/petejohanson_proton_handwire/petejohanson_proton_handwire.overlay new file mode 100644 index 00000000..5deaa424 --- /dev/null +++ b/app/boards/shields/petejohanson_proton_handwire/petejohanson_proton_handwire.overlay @@ -0,0 +1,17 @@ + +/ { + chosen { + zmk,kscan = &kscan0; + }; + + kscan0: kscan { + compatible = "gpio-kscan"; + label = "KSCAN"; + + diode-direction = "row2col"; + row-gpios = <&pro_micro_pins 6 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>, + <&pro_micro_pins 7 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; + col-gpios = <&pro_micro_pins 8 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>, + <&pro_micro_pins 9 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; + }; +};