これまで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の組み合わせが技適に適合するのかはっきりしません。自己責任で。。。