ZMK firmwareの追加behavior定義
コメントでMod-tap機能を使用するとリピート付きのSpace and Shiftを定義できると教えてもらったので設定テスト。
以下のHold-Tapの説明を参考にして adv360.keymap に定義を追加する。 zmk.dev
behaviors{};
の中にsands挙動を追加する。*1
この定義の後、keymap{};
の中の狙ったキーの部分を「&sands LEFT_SHIFT SPACE」のように記載する。
最初のキー(LEFT_SHIFT)は長押し時の挙動で2番目のキー(SPACE)は単押し時の挙動なので、Space and Shiftの挙動になる。
behavior定義の際に flavor = "tap-unless-interrupted";
としているので、リピート機能付きになる *2
全体のイメージは以下の通り。
behaviors { sands: space_and_shift { compatible = "zmk,behavior-hold-tap"; label = "SPACE_AND_SHIFT"; #binding-cells = <2>; flavor = "tap-unless-interrupted"; tapping-term-ms = <200>; quick-tap-ms = <125>; global-quick-tap; bindings = <&kp>, <&kp>; }; }; keymap { compatible = "zmk,keymap"; default_layer { bindings = < &sands LEFT_SHIFT SPACE >; };
設定の意味については以下を参考に。 zmk.dev
とりあえずはyamy(窓使いの憂鬱)の以下の設定と似た感じにはできた😊 *3
# Space and Shift def option delay-of !!! = 5 # 最初のn回のリピートを無視 mod shift += !!!Space # リピート有り key ~R-*C-Space = Space key R-*C-Space = &Ignore