summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/docs/dev-guide-new-shield.md29
-rw-r--r--docs/docs/features/keymaps.md52
-rw-r--r--docs/docs/keymap-example-file.md26
-rw-r--r--docs/docs/keymap-example.md21
4 files changed, 54 insertions, 74 deletions
diff --git a/docs/docs/dev-guide-new-shield.md b/docs/docs/dev-guide-new-shield.md
index f095ab5..0e8f9f0 100644
--- a/docs/docs/dev-guide-new-shield.md
+++ b/docs/docs/dev-guide-new-shield.md
@@ -4,6 +4,7 @@ title: New Keyboard Shield
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
+import KeymapExampleFile from './keymap-example-file.md';
## Overview
@@ -355,33 +356,7 @@ Each keyboard should provide an OOTB default keymap to be used when building the
Here is an example simple keymap for the Kyria, with only one layer:
-```
-#include <behaviors.dtsi>
-#include <dt-bindings/zmk/keys.h>
-
-/ {
- keymap {
- compatible = "zmk,keymap";
-
- default_layer {
-// --------------------------------------------------------------------------------------------------------------------------------------------------------------------
-// | ESC | Q | W | E | R | T | | Y | U | I | O | P | \ |
-// | TAB | A | S | D | F | G | | H | J | K | L | ; | ' |
-// | SHIFT | Z | X | C | V | B | CTRL+A | CTRL+C | | CTRL+V | CTRL+X | N | M | , | . | / | R CTRL |
-// | GUI | DEL | RETURN | SPACE | ESCAPE | | RETURN | 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 BSLH
- &kp TAB &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp QUOTE
- &kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp LC(A) &kp LC(C) &kp LC(V) &kp LC(X) &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RCTRL
- &kp LGUI &kp DEL &kp RET &kp SPACE &kp ESC &kp RET &kp SPACE &kp TAB &kp BSPC &kp RALT
- >;
-
- sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN &inc_dec_kp PG_UP PG_DN>;
- };
- };
-};
-
-```
+<KeymapExampleFile/>
:::note
The two `#include` lines at the top of the keymap are required in order to bring in the default set of behaviors to make them available to bind, and to import a set of defines for the key codes, so keymaps can use parameters like `N2` or `K` instead of the raw keycode numeric values.
diff --git a/docs/docs/features/keymaps.md b/docs/docs/features/keymaps.md
index b5cae3c..de1f24a 100644
--- a/docs/docs/features/keymaps.md
+++ b/docs/docs/features/keymaps.md
@@ -3,6 +3,9 @@ title: Keymaps & Behaviors
sidebar_label: Keymaps
---
+import KeymapExample from '../keymap-example.md';
+import KeymapExampleFile from '../keymap-example-file.md';
+
ZMK uses a declarative approach to keymaps instead of using C code for all keymap configuration.
Right now, ZMK uses the devicetree syntax to declare those keymaps; future work is envisioned for
supporting dynamic loading of declarative keymaps, e.g. over USB Mass Storage or via a custom BLE
@@ -121,27 +124,7 @@ Nested under the devicetree root, is the keymap node. The node _name_ itself is
Each layer of your keymap will be nested under the keymap node. Here is a sample
that defines just one layer for this keymap:
-```
- keymap {
- compatible = "zmk,keymap";
-
- default_layer {
-// --------------------------------------------------------------------------------------------------------------------------------------------------------------------
-// | ESC | Q | W | E | R | T | | Y | U | I | O | P | \ |
-// | TAB | A | S | D | F | G | | H | J | K | L | ; | ' |
-// | SHIFT | Z | X | C | V | B | CTRL+A | CTRL+C | | CTRL+V | CTRL+X | N | M | , | . | / | R CTRL |
-// | GUI | DEL | RETURN | SPACE | ESCAPE | | RETURN | 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 BSLH
- &kp TAB &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp QUOTE
- &kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp LC(A) &kp LC(C) &kp LC(V) &kp LC(X) &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RCTRL
- &kp LGUI &kp DEL &kp RET &kp SPACE &kp ESC &kp RET &kp SPACE &kp TAB &kp BSPC &kp RALT
- >;
-
- sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN &inc_dec_kp PG_UP PG_DN>;
- };
- };
-```
+<KeymapExample/>
Each layer should have:
@@ -154,29 +137,4 @@ For the full set of possible behaviors, start at the [Key Press](/docs/behaviors
Putting this all together, a complete [`kyria.keymap`](https://github.com/zmkfirmware/zmk/blob/main/app/boards/shields/kyria/kyria.keymap) looks like:
-```
-#include <behaviors.dtsi>
-#include <dt-bindings/zmk/keys.h>
-
-/ {
- keymap {
- compatible = "zmk,keymap";
-
- default_layer {
-// --------------------------------------------------------------------------------------------------------------------------------------------------------------------
-// | ESC | Q | W | E | R | T | | Y | U | I | O | P | \ |
-// | TAB | A | S | D | F | G | | H | J | K | L | ; | ' |
-// | SHIFT | Z | X | C | V | B | CTRL+A | CTRL+C | | CTRL+V | CTRL+X | N | M | , | . | / | R CTRL |
-// | GUI | DEL | RETURN | SPACE | ESCAPE | | RETURN | 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 BSLH
- &kp TAB &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp QUOTE
- &kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp LC(A) &kp LC(C) &kp LC(V) &kp LC(X) &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RCTRL
- &kp LGUI &kp DEL &kp RET &kp SPACE &kp ESC &kp RET &kp SPACE &kp TAB &kp BSPC &kp RALT
- >;
-
- sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN &inc_dec_kp PG_UP PG_DN>;
- };
- };
-};
-```
+<KeymapExampleFile/>
diff --git a/docs/docs/keymap-example-file.md b/docs/docs/keymap-example-file.md
new file mode 100644
index 0000000..5cb9b2f
--- /dev/null
+++ b/docs/docs/keymap-example-file.md
@@ -0,0 +1,26 @@
+```
+#include <behaviors.dtsi>
+#include <dt-bindings/zmk/keys.h>
+
+/ {
+ keymap {
+ compatible = "zmk,keymap";
+
+ default_layer {
+// --------------------------------------------------------------------------------------------------------------------------------------------------------------------
+// | ESC | Q | W | E | R | T | | Y | U | I | O | P | \ |
+// | TAB | A | S | D | F | G | | H | J | K | L | ; | ' |
+// | SHIFT | Z | X | C | V | B | CTRL+A | CTRL+C | | CTRL+V | CTRL+X | N | M | , | . | / | R CTRL |
+// | GUI | DEL | RETURN | SPACE | ESCAPE | | RETURN | 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 BSLH
+ &kp TAB &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp QUOTE
+ &kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp LC(A) &kp LC(C) &kp LC(V) &kp LC(X) &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RCTRL
+ &kp LGUI &kp DEL &kp RET &kp SPACE &kp ESC &kp RET &kp SPACE &kp TAB &kp BSPC &kp RALT
+ >;
+
+ sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN &inc_dec_kp PG_UP PG_DN>;
+ };
+ };
+};
+```
diff --git a/docs/docs/keymap-example.md b/docs/docs/keymap-example.md
new file mode 100644
index 0000000..c6e81d2
--- /dev/null
+++ b/docs/docs/keymap-example.md
@@ -0,0 +1,21 @@
+```
+ keymap {
+ compatible = "zmk,keymap";
+
+ default_layer {
+// --------------------------------------------------------------------------------------------------------------------------------------------------------------------
+// | ESC | Q | W | E | R | T | | Y | U | I | O | P | \ |
+// | TAB | A | S | D | F | G | | H | J | K | L | ; | ' |
+// | SHIFT | Z | X | C | V | B | CTRL+A | CTRL+C | | CTRL+V | CTRL+X | N | M | , | . | / | R CTRL |
+// | GUI | DEL | RETURN | SPACE | ESCAPE | | RETURN | 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 BSLH
+ &kp TAB &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp QUOTE
+ &kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp LC(A) &kp LC(C) &kp LC(V) &kp LC(X) &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RCTRL
+ &kp LGUI &kp DEL &kp RET &kp SPACE &kp ESC &kp RET &kp SPACE &kp TAB &kp BSPC &kp RALT
+ >;
+
+ sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN &inc_dec_kp PG_UP PG_DN>;
+ };
+ };
+```