0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ZMK Firmwareのカスタマイズ内容

Posted at

現在はRoba派生のトラボ付き左右分割キーボードを使っている。このキーボードのファームウェアには、Roba同様にZMK Firmwareが使われている。使い勝手を向上するためにZMK Firmwareの設定をカスタマイズした内容を紹介する。

JIS配列キーボードとして扱う

ZMK Firmwareは (Keymap Editorも) はUS配列が前提となっている。内臓キーボードや他の外付けキーボードがJIS配列の場合、JIS配列キーボードとして扱う方が便利なため、下記の方法で(無理やり)JIS配列としてキーマップを設定している。

  • JIS配列のキーのうち、同じキーコードがUS配列に存在するもの(株式会社エー・アンド・デイのキー対応表がわかりやすい)は、Keymap EditorでUS配列のキーとして登録する。

  • 上記以外のキー(下記の3つの記号)は、keymapファイルで直接設定する。(Keymap Editorでは⦸の表示となる。)

    #define JP_YEN          0x89              // ¥
    #define JP_PIPE         LS(0x89)          // |
    #define JP_UNDERSCORE   LS(0x87)          // _
    

トラックボールでのスクロール

デフォルトレイヤのキーにHold-Tapを設定して、Hold時にスクロールレイヤを有効にしてトラックボールでスクロールできるようにしている。

Hold-Tapに hold-while-undecided を設定することで、Press直後すぐにトラックボールを操作してもスクロールが可能となる。(この設定をしないとPressしてから tapping-term-ms 経過するまでスクロールが認識されない。)

behaviors {
	st: scroll_tap {
        compatible = "zmk,behavior-hold-tap";
        label = "Scroll / Tap";
        bindings = <&mo>, <&kp>;

        #binding-cells = <2>;
        tapping-term-ms = <200>;
        flavor = "balanced";
        hold-while-undecided;
    };
};

トラックボールでの拡大・縮小

スクロールと同様に、キーをのHold時にスクロールレイヤの有効化とCtrlのPressをすることで、トラックボールで拡張・縮小ができるようにしている。

標準のHold-Tap (Layer-Tap) では、Hold時の振る舞いにModifierとレイヤ切り替えを同時に設定することができない。このため、スクロールレイヤの有効化とCtrlのPressを実行するマクロを設定して、Holdに設定している。

macros {
    sc: scroll_control {
        compatible = "zmk,behavior-macro";
        #binding-cells = <0>;
        bindings =
            <&macro_press>,
            <&mo 4 &kp LCTRL>,
            <&macro_pause_for_release>,
            <&macro_release>,
            <&kp LCTRL &mo 4>;

        label = "Scroll Ctrl";
    };
};

behaviors {
    zp: zoom_tap {
        compatible = "zmk,behavior-hold-tap";
        label = "Zoom / Tap";
        #binding-cells = <2>;
        bindings = <&sc>, <&kp>;

        tapping-term-ms = <200>;
        flavor = "balanced";
        hold-while-undecided;
    };
};

半角・全角切り替え

親指キーにTap Danceを設定し、1回のTapで英数、2回のTapでかなに切り替わるようにしている。2回のTapはゆっくりめでも認識されるように tapping-term-ms を長めに設定している。

behaviors {
    ek: eisu_kana {
        compatible = "zmk,behavior-tap-dance";
        label = "Eisu / Kana";
        #binding-cells = <0>;
        bindings = <&kp LANGUAGE_2>, <&kp LANGUAGE_1>;

        tapping-term-ms = <250>;
    };
};
0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?