VIAやRemapのZMK版であるZMK Studioに対応したファームウェアを作る
準備
該当するキーボードのzmk-config
のリポジトリをcloneしてくる
./
├── build.yaml
├── config/
│ ├── boards/
│ │ └── shields/
│ │ └── osprey-remix/
│ │ ├── Kconfig.defconfig
│ │ ├── Kconfig.shield
│ │ ├── osprey-remix.conf
│ │ ├── osprey-remix.dtsi
│ │ ├── osrpey-remix.overlay
│ │ └── osrpey-remix.zmk.yml
│ ├── info.json
│ ├── osprey-remix.conf
│ ├── osrpey-remix.keymap
│ └── west.yml
└── README.md
ビルドにスニペットを使用する
ZMK Studio使用するUSB通信のエンドポイントを有効化する
---
include:
- board: nice_nano_v2
shield: osrpey-remix
snippet: studio-rpc-usb-uart
artifact-name: osprey-remix-zmk
ZMK Studioを有効化する
configに次の設定を書く
CONFIG_ZMK_STUDIO=y
CONFIG_ZMK_STUDIO_LOCKING=n
Physical Layoutを定義する
ドキュメントを読むとQMK JSONから変換するように書いてあるが、変換ツールが上手く起動しなかった
zmk/app/dts/layouts/common at main · zmkfirmware/zmk · GitHub
からコピペして適当に修正して使った
#include <dt-bindings/zmk/matrix_transform.h>
#include <physical_layouts.dtsi>
/ {
chosen {
zmk,physical-layout = &osprey_physical_layout;
};
osprey_physical_layout: osprey_physical_layout {
compatible = "zmk,physical-layout";
display-name = "Osprey";
transform = <&default_transform>;
kscan = <&kscan0>;
keys // w h x y rot rx ry
= <&key_physical_attrs 100 100 0 0 0 0 0>
, ...
;
};
...
};