diff --git a/Readme.md b/Readme.md new file mode 100644 index 0000000..1cdc54e --- /dev/null +++ b/Readme.md @@ -0,0 +1,95 @@ +# Ninepad + +This is my zmk config for my handwired ninepad macropad + +* layer 0: default - window switcher - layer picker +* layer 1: media +* layer 2: bluetooth +* layer 3: minecraft_1 +* layer 4: minecraft_2 +* layer 5: arrows +* layer 6: empty +* layer 7: reset +* layer 8: numbers +* layer 9: empty + + + +ninepad-assembled + +ninepad-plate-switched + +> (Left) fully assembled ninepad +> (Right) plate with switches inserted ready for wiring + + +## Getting back to default + +No matter what layer you are in, holding 7 (top left) will bring you to the 7th +layer (reset). Now tap 9 (to right) and you will go back to the default layer. + +## layer 0: default - window switcher - layer picker + +Once plugged in you will be brought to the default layer. Tapping on any key +in this layer will press Left Gui (Super) plus the corresponding number. I +have my window manager set up so that this will take you to workspace 1-9. + +Double tapping any key on this layer will take you to the layer with the corresponding number +layer 1-9. + +![image](https://github.com/WaylonWalker/zmk-config-ninepad/assets/22648375/b2686296-a0b8-46b0-a3e7-09c734bd95a6) + + +## layer 1: media + +This layer has media keys, play/pause, next track, previous track, and volume. + +![image](https://github.com/WaylonWalker/zmk-config-ninepad/assets/22648375/4f2d1d47-e979-4140-bf64-5bc599b0864e) + +## layer 2: bluetooth + +This layer has bluetooth select profile for 1-4, bluetooth clear, backlight +toggle, and rgb toggle. + +![image](https://github.com/WaylonWalker/zmk-config-ninepad/assets/22648375/6323286a-a4c9-4f46-9c50-444228f91d61) + +## layer 3: minecraft_1 + +This layer is for minecraft. It has wasd, q, e, shift, control, and space. +Holding space will take you to minecraft_2. + +![image](https://github.com/WaylonWalker/zmk-config-ninepad/assets/22648375/0bf4a8c9-2561-40b4-9ea0-72ae92746b93) + + +## layer 4: minecraft_2 + +This layer has less critical minecraft keys, b, f5, f3, esc, f, and grave. + +![image](https://github.com/WaylonWalker/zmk-config-ninepad/assets/22648375/1b27eceb-a088-496d-8cfe-3cc5c52e322d) + +## layer 5: arrows + +This layer is for navigation, it has arrows, page up, page down, home, end, and escape. + +![image](https://github.com/WaylonWalker/zmk-config-ninepad/assets/22648375/512128d0-d6c0-45ee-92bd-66c069c8fd7f) + + +## layer 6: empty + +This layer is left unused. + +## layer 7: reset + +This is a critical layer that allows me to hold 7 and tap nine from any layer to get back to layer zero. Notice the &to 0, this is what does that. + +![image](https://github.com/WaylonWalker/zmk-config-ninepad/assets/22648375/435d2295-54e5-458e-bbcb-32c9f889cf4f) + +## layer 8: numbers + +numbers 1-9 + +![image](https://github.com/WaylonWalker/zmk-config-ninepad/assets/22648375/b6a17ea7-1f71-43db-9e12-86328c7092fb) + +## layer 9: empty + +This layer is left unused. diff --git a/build.yaml b/build.yaml index bc090db..9af7fdd 100644 --- a/build.yaml +++ b/build.yaml @@ -17,10 +17,10 @@ # artifact-name: corne_left_with_logging # include: - - board: adafruit_kb2040 - shield: ninepad - - board: sparkfun_pro_micro_rp2040 - shield: ninepad + # - board: adafruit_kb2040 + # shield: ninepad + # - board: sparkfun_pro_micro_rp2040 + # shield: ninepad - board: nice_nano shield: ninepad - board: nice_nano_v2 diff --git a/config/boards/shields/ninepad/Kconfig.shield b/config/boards/shields/ninepad/Kconfig.shield index 41cd6fc..f2b1b91 100644 --- a/config/boards/shields/ninepad/Kconfig.shield +++ b/config/boards/shields/ninepad/Kconfig.shield @@ -1,2 +1,2 @@ config SHIELD_NINEPAD - def_bool $(shields_list_contains, ninepad) + def_bool $(shields_list_contains,ninepad) diff --git a/config/boards/shields/ninepad/ninepad.overlay b/config/boards/shields/ninepad/ninepad.overlay index 89df3dc..c1a59e2 100644 --- a/config/boards/shields/ninepad/ninepad.overlay +++ b/config/boards/shields/ninepad/ninepad.overlay @@ -14,15 +14,15 @@ diode-direction = "col2row"; col-gpios - = <&gpio0 0 GPIO_ACTIVE_HIGH> - , <&gpio0 1 GPIO_ACTIVE_HIGH> + = <&gpio0 31 GPIO_ACTIVE_HIGH> + , <&gpio0 29 GPIO_ACTIVE_HIGH> , <&gpio0 2 GPIO_ACTIVE_HIGH> ; row-gpios - = <&gpio0 3 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&gpio0 4 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&gpio0 5 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + = <&gpio1 15 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&gpio1 13 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&gpio1 11 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> ; }; diff --git a/config/ninepad.config b/config/ninepad.config new file mode 100644 index 0000000..8e98773 --- /dev/null +++ b/config/ninepad.config @@ -0,0 +1 @@ +CONFIG_ZMK_MOUSE=y diff --git a/config/ninepad.keymap b/config/ninepad.keymap index cd69245..4792b9f 100644 --- a/config/ninepad.keymap +++ b/config/ninepad.keymap @@ -1,7 +1,9 @@ #include +#include #include #include -#include +#include +#include / { behaviors { @@ -102,8 +104,8 @@ bt_layer { label = "bt"; bindings = < -< 7 A &none &bootloader -&none &kp A &bt BT_CLR +< 7 A &bl BL_TOG &rgb_ug RGB_TOG +&bt BT_SEL 3 &bt BT_SEL 4 &bt BT_CLR &bt BT_SEL 0 &bt BT_SEL 1 &bt BT_SEL 2 >; }; @@ -112,7 +114,7 @@ bindings = < < 7 Q &kp W &kp E &kp A &kp S &kp D -&kp LSHFT &kp LCTRL &kp SPACE +&kp LSHFT &kp LCTRL < 4 SPACE >; }; @@ -134,17 +136,17 @@ mouse { bindings = < -< 7 A &trans &trans -&trans &trans &trans -&trans &trans &trans +< 7 A &trans &trans +&trans &trans &trans +&trans &trans &trans >; }; reset { bindings = < -&trans &trans &to 0 -&trans &trans &trans -&to 1 &to 2 &bootloader +&trans &trans &to 0 +&trans &trans &trans +&out OUT_USB &out OUT_USB &bootloader >; };