🎹
ZMK STUDIO対応手順_20250119
一旦自分がやったことをメモっておきます
以下はGitHub Actionsでのビルド前提でローカルビルドの場合は一部異なります
詳しくは公式ドキュメントを読んでください
変更が必要なファイルは以下の通りです
- .conf(セントラル側)
- .dtsi
- build.yaml
- (west.yaml)
- (.overlay(セントラル側))
confファイルの変更
セントラルデバイスの.confファイルに以下を追記
CONFIG_ZMK_STUDIO_LOCKINGはデフォルトではy
yの場合は&studio_unlockをキーマップに入れておく必要があり、
このキーを押すことでキーマップ変更が可能になる
Test_R.conf
+CONFIG_ZMK_STUDIO=y
+CONFIG_ZMK_STUDIO_LOCKING=n
.dtsiの変更(physical layoutの追加)
キーが物理的にどのように並んでいるかを座標で示す
eswaiさんのブログでも紹介されていますが、keyboard layout editor出力のjosnから変換するサイトもあるみたいです
Test.dtsi
#include <dt-bindings/zmk/matrix_transform.h>
+#include <physical_layouts.dtsi>
/ {
chosen {
- zmk,kscan = &kscan0;
- zmk,matrix_transform = &default_transform;
+ zmk,physical-layout = &roba_physical_layout;
};
+ roba_physical_layout: roba_physical_layout {
+ compatible = "zmk,physical-layout";
+ display-name = "Default";
+ transform = <&default_transform>;
+ kscan = <&kscan0>;
+ keys // w h x y rot rx ry
+ = <&key_physical_attrs 100 100 0 37 0 0 0>
+ , <&key_physical_attrs 100 100 100 12 0 0 0>
+ , //...略
+ ;
+ };
default_transform: keymap_transform_0 {
//...略
};
//...略
};
build.yamlの変更
build.yaml
include:
- board: seeeduino_xiao_ble
shield: Test_R
+ snippet: studio-rpc-usb-uart
- board: seeeduino_xiao_ble
shield: Test_L
- board: seeeduino_xiao_ble
shield: settings_reset
.overlayの変更(XIAO BLEの場合のみ)
xiao bleはシリアル通信を無効にしておかないと、TX/RXピンに接続されたキーなどが入力不可になってしまいます
Test_R.overlay
#include "Test.dtsi"
//...略
+&xiao_serial { status = "disabled"; };
//...略
};
Discussion