Skip to content

Commit

Permalink
Version 7 (2023-06-05)
Browse files Browse the repository at this point in the history
  • Loading branch information
sunaku committed Sep 19, 2023
1 parent 4c7d13b commit 343375a
Show file tree
Hide file tree
Showing 3 changed files with 609 additions and 474 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ See [interactive layer map][6] for overview and documentation.

## Keymaps 🗺️

- for Engrammer layout: https://my.glove80.com/#/layout/user/863eb3f0-57ca-4e41-9c69-df284358b924
- for Arno's Engram 2.0: https://my.glove80.com/#/layout/user/83ab1d04-3a50-4caf-b866-d5a4e18342c3
- for Engrammer layout: https://my.glove80.com/#/layout/user/c81ef478-bb79-4af1-b6ec-5408fbcb4e45
- for Arno's Engram 2.0: *coming soon...* 😅

## Installing 🪄

Expand Down
181 changes: 165 additions & 16 deletions engrammer.dtsi
Original file line number Diff line number Diff line change
@@ -1,37 +1,186 @@
behaviors {

//
// Home row mods support for natural typing
behavior_caps_word {
continue-list = <UNDERSCORE MINUS BACKSPACE DELETE N1 N2 N3 N4 N5 N6 N7 N8 N9 N0>;
};

// Miryoku home row mods and thumb key layers
// https://sunaku.github.io/home-row-mods.html
//
gqt: global-quick-tap {
homey: home_row_mods {
compatible = "zmk,behavior-hold-tap";
label = "GLOBAL_QUICK_TAP";
flavor = "tap-preferred";
label = "HOME_ROW_MODS";
#binding-cells = <2>;
bindings = <&kp>, <&kp>;
tapping-term-ms = <250>;
quick-tap-ms = <160>;
global-quick-tap; // with typing streak
};
index: home_row_mods_index_shift {
compatible = "zmk,behavior-hold-tap";
flavor = "tap-preferred";
label = "HOME_ROW_MODS_INDEX_SHIFT";
#binding-cells = <2>;
bindings = <&kp>, <&kp>;
tapping-term-ms = <200>;
quick-tap-ms = <175>;
global-quick-tap;
quick-tap-ms = <160>;
//global-quick-tap; // no typing streak
};
pinky: home_row_mods_pinky_gui {
compatible = "zmk,behavior-hold-tap";
flavor = "tap-preferred";
label = "HOME_ROW_MODS_PINKY_GUI";
#binding-cells = <2>;
bindings = <&kp>, <&kp>;
tapping-term-ms = <320>; // extra delay
quick-tap-ms = <160>;
global-quick-tap;
};
thumb: miryoku_thumb_layer {
compatible = "zmk,behavior-hold-tap";
label = "MIRYOKU_LAYER_TAP_WITH_REPEAT";
#binding-cells = <2>;
flavor = "balanced"; // faster hold-tap
tapping-term-ms = <200>;
quick-tap-ms = <200>; // enable repeat
bindings = <&mo>, <&kp>;
};

//
// Key-repeat for layer-tap keys (e.g. Backspace in Miryoku thumb keys)
// https://github.com/zmkfirmware/zmk/issues/288#issuecomment-770871538
// https://discord.com/channels/877392805654306816/937645688244826154/1113260457122332672
//
behavior_layer_tap {
quick_tap_ms = <200>;
// Custom shifted pairs for the Engram layout
// https://engram.dev/
one: one_and_pipe {
compatible = "zmk,behavior-mod-morph";
label = "ONE_AND_PIPE";
#binding-cells = <0>;
bindings = <&kp N1>, <&kp PIPE>;
mods = <(MOD_LSFT|MOD_RSFT)>;
};
two: two_and_equal {
compatible = "zmk,behavior-mod-morph";
label = "TWO_AND_EQUAL";
#binding-cells = <0>;
bindings = <&kp N2>, <&kp EQUAL>;
mods = <(MOD_LSFT|MOD_RSFT)>;
};
three: three_and_tilde {
compatible = "zmk,behavior-mod-morph";
label = "THREE_AND_TILDE";
#binding-cells = <0>;
bindings = <&kp N3>, <&kp TILDE>;
mods = <(MOD_LSFT|MOD_RSFT)>;
};
four: four_and_plus {
compatible = "zmk,behavior-mod-morph";
label = "FOUR_AND_PLUS";
#binding-cells = <0>;
bindings = <&kp N4>, <&kp PLUS>;
mods = <(MOD_LSFT|MOD_RSFT)>;
};
five: five_and_less_than {
compatible = "zmk,behavior-mod-morph";
label = "FIVE_AND_LESS_THAN";
#binding-cells = <0>;
bindings = <&kp N5>, <&kp LESS_THAN>;
mods = <(MOD_LSFT|MOD_RSFT)>;
};
six: six_and_greater_than {
compatible = "zmk,behavior-mod-morph";
label = "SIX_AND_GREATER_THAN";
#binding-cells = <0>;
bindings = <&kp N6>, <&kp GREATER_THAN>;
mods = <(MOD_LSFT|MOD_RSFT)>;
};
seven: seven_and_caret {
compatible = "zmk,behavior-mod-morph";
label = "SEVEN_AND_CARET";
#binding-cells = <0>;
bindings = <&kp N7>, <&kp CARET>;
mods = <(MOD_LSFT|MOD_RSFT)>;
};
eight: eight_and_ampersand {
compatible = "zmk,behavior-mod-morph";
label = "EIGHT_AND_AMPERSAND";
#binding-cells = <0>;
bindings = <&kp N8>, <&kp AMPERSAND>;
mods = <(MOD_LSFT|MOD_RSFT)>;
};
nine: nine_and_percent {
compatible = "zmk,behavior-mod-morph";
label = "NINE_AND_PERCENT";
#binding-cells = <0>;
bindings = <&kp N9>, <&kp PERCENT>;
mods = <(MOD_LSFT|MOD_RSFT)>;
};
zero: zero_and_asterisk {
compatible = "zmk,behavior-mod-morph";
label = "ZERO_AND_ASTERISK";
#binding-cells = <0>;
bindings = <&kp N0>, <&kp ASTERISK>;
mods = <(MOD_LSFT|MOD_RSFT)>;
};
apos: apostrophe_and_left_parenthesis {
compatible = "zmk,behavior-mod-morph";
label = "APOSTROPHE_AND_LEFT_PARENTHESIS";
#binding-cells = <0>;
bindings = <&kp APOSTROPHE>, <&kp LEFT_PARENTHESIS>;
mods = <(MOD_LSFT|MOD_RSFT)>;
};
dquote: double_quotes_and_right_parenthesis {
compatible = "zmk,behavior-mod-morph";
label = "DOUBLE_QUOTES_AND_RIGHT_PARENTHESIS";
#binding-cells = <0>;
bindings = <&kp DOUBLE_QUOTES>, <&kp RIGHT_PARENTHESIS>;
mods = <(MOD_LSFT|MOD_RSFT)>;
};
comma: comma_and_semicolon {
compatible = "zmk,behavior-mod-morph";
label = "COMMA_AND_SEMICOLON";
#binding-cells = <0>;
bindings = <&kp COMMA>, <&kp SEMICOLON>;
mods = <(MOD_LSFT|MOD_RSFT)>;
};
period: period_and_colon {
compatible = "zmk,behavior-mod-morph";
label = "PERIOD_AND_COLON";
#binding-cells = <0>;
bindings = <&kp PERIOD>, <&kp COLON>;
mods = <(MOD_LSFT|MOD_RSFT)>;
};
question: question_and_exclamation {
compatible = "zmk,behavior-mod-morph";
label = "QUESTION_AND_EXCLAMATION";
#binding-cells = <0>;
bindings = <&kp QUESTION>, <&kp EXCLAMATION>;
mods = <(MOD_LSFT|MOD_RSFT)>;
};
hash: hash_and_dollar {
compatible = "zmk,behavior-mod-morph";
label = "HASH_AND_DOLLAR";
#binding-cells = <0>;
bindings = <&kp HASH>, <&kp DOLLAR>;
mods = <(MOD_LSFT|MOD_RSFT)>;
};
at: at_and_grave {
compatible = "zmk,behavior-mod-morph";
label = "AT_AND_GRAVE";
#binding-cells = <0>;
bindings = <&kp AT>, <&kp GRAVE>;
mods = <(MOD_LSFT|MOD_RSFT)>;
};
slash: slash_and_backslash {
compatible = "zmk,behavior-mod-morph";
label = "SLASH_AND_BACKSLASH";
#binding-cells = <0>;
bindings = <&kp SLASH>, <&kp BACKSLASH>;
mods = <(MOD_LSFT|MOD_RSFT)>;
};

};

macros {

//
// Approximation of Pascal Getreuer's SelectWord feature in QMK
// https://getreuer.info/posts/keyboards/select-word/index.html
//
select_word: select_word {
compatible = "zmk,behavior-macro";
label = "select_word";
Expand Down
Loading

0 comments on commit 343375a

Please sign in to comment.