ZMK薙刀式ができた

これまでQMK薙刀式、KMK薙刀式を作ってきました。 QMK薙刀式はキーボードを挿せば即、薙刀式が打てることがメリットです。 配列エミュレータをインストールしなくていいですし、有線でつなげはスマホでも使えます。

QMK以外に薙刀式をのせる目的としては、無線対応があります。 XIAO BLEなどnrf52840と充電回路まで搭載して、 完全無線キーボードを作るためのハードが揃ったので、なんとか薙刀式を無線キーボードに乗せたいわけです。

KMK薙刀式はPythonで簡潔にコードを書ける点、nrf54840など無線対応ができる点に期待して作成しましたが、 CircuitPythonの実行が遅すぎる、nrf52840ではメモリが足りないなど、これ以上開発してもゴールにたどり着けないことが分かりました。

過去には、sekigonさんのQMK nrf52ブランチに薙刀式を実装したことがあるのですが、QMKが古いので先がないなぁと思って放置しています。 またsekigonさんのBLE Micro Pro用QMKを使う方法もあります。 これは当然BLE Micro ProやQuantizerを使う前提になるので、汎用的ではありません。

もうZMKしかない、という動機でZMK薙刀式を考えていたのですが、 どこから手をつけていいのかよくわからず、しばらくソースコードを眺める日々でした。 機能を拡張するにはbehaviorというものを作ればいいのが分かりました。 次にキーをどうやって出力するのかよくわからなかったのですが、それは昨日できました。 そうすると、あとは同じCで書いたQMK薙刀式のコードがほとんど使えるので、 数時間で一気にかな入力はできるようになりましたので、これを書いています。

フラッシュもRAMもまだまだ空いているので、今後編集モードを入れても余裕でしょう。

Memory region         Used Size  Region Size  %age Used
           FLASH:      201955 B       788 KB     25.03%
            SRAM:       48544 B       256 KB     18.52%
        IDT_LIST:          0 GB         2 KB      0.00%

ZMKはこちら。 app/src/behaviors/behavior_naginata.cが本体です。

GitHub - eswai/zmk: ZMK薙刀式を作っていきます

薙刀式behaviorを使ったキーマップの例はこちら。 キーボードはXIAO BLEを使った自作です。

GitHub - eswai/zmk-config: XIAO BLE使用の分割キーボードmable用のconfig

現時点では、ZMKをある程度理解していないと、かなり難しいと思います。 おいおい書いていきたいと思います。

※ XIAO BLEとZMKの組み合わせが技適に適合するのかはっきりしません。自己責任で。。。