summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormeaslesbagel <49631653+measlesbagel@users.noreply.github.com>2021-04-05 19:04:38 -0400
committerGitHub <noreply@github.com>2021-04-05 18:04:38 -0500
commit3893d50e13c0ed8bbe93e7f529c7403dc89b4752 (patch)
treea23f4067f9a9a2471b2b8ac7e5668ba6c01bbb37
parentd8119cd663310944258674c79024a484c7963e80 (diff)
Docs: added mod morph page (#749)
* docs(behaviors): add mod-morph doc page * docs(behaviors): add mod-morph doc page * docs(mod-morph): add note about sent modifiers * docs(mod-morph): fixed prettier formatting
-rw-r--r--docs/docs/behaviors/mod-morph.md74
-rw-r--r--docs/sidebars.js1
2 files changed, 75 insertions, 0 deletions
diff --git a/docs/docs/behaviors/mod-morph.md b/docs/docs/behaviors/mod-morph.md
new file mode 100644
index 0000000..cbb9a56
--- /dev/null
+++ b/docs/docs/behaviors/mod-morph.md
@@ -0,0 +1,74 @@
+---
+title: Mod-Morph Behavior
+sidebar_label: Mod-Morph
+---
+
+## Summary
+
+The Mod-Morph behavior sends a different keypress, depending on whether a specified modifier is being held during the keypress.
+
+- If you tap the key by itself, the first keycode is sent.
+- If you tap the key while holding the specified modifier, the second keycode is sent.
+
+## Mod-Morph
+
+The Mod-Morph behavior acts as one of two keycodes, depending on if the required modifier is being held during the keypress.
+
+When the modifier is being held it is sent along with the morphed keycode. This can cause problems when the morphed keycode and modifier have an existing relationship (such as `shift-delete` or `ctrl-v` on many operating systems).
+
+### Configuration
+
+An example of how to implement the mod-morph "Grave Escape":
+
+```
+/ {
+behaviors {
+ gresc: grave_escape {
+ compatible = "zmk,behavior-mod-morph";
+ label = "GRAVE_ESCAPE";
+ #binding-cells = <0>;
+ bindings = <&kp ESC>, <&kp GRAVE>;
+ mods = <(MOD_LGUI|MOD_LSFT|MOD_RGUI|MOD_RSFT)>;
+ }
+
+};
+
+ keymap {
+ ...
+ }
+}
+```
+
+Note that this specific mod-morph exists in ZMK by default using code `&gresc`.
+
+### Behavior Binding
+
+- Reference: `&gresc`
+- Parameter: None
+
+Example:
+
+```
+&gresc
+```
+
+### Mods
+
+This is how you determine what modifiers will activate the morphed version of the keycode.
+
+Available Modifiers:
+
+- `MOD_LSFT`
+- `MOD_RSFT`
+- `MOD_LCTL`
+- `MOD_RCTL`
+- `MOD_LALT`
+- `MOD_RALT`
+- `MOD_LGUI`
+- `MOD_RGUI`
+
+Example:
+
+```
+mods = <(MOD_LGUI|MOD_LSFT|MOD_RGUI|MOD_RSFT)>;
+```
diff --git a/docs/sidebars.js b/docs/sidebars.js
index 6761b19..4ae23c5 100644
--- a/docs/sidebars.js
+++ b/docs/sidebars.js
@@ -22,6 +22,7 @@ module.exports = {
"behaviors/misc",
"behaviors/hold-tap",
"behaviors/mod-tap",
+ "behaviors/mod-morph",
"behaviors/sticky-key",
"behaviors/sticky-layer",
"behaviors/reset",