ELEKIT

JIS配列に配慮したzmkファームウェアの書き方TIPS

ご自身でファームウェアのkeymapファイルを書き換える際のTIPSです。

@やハイフン、カッコやコロンなどの記号ズレ

keymapを編集する際にUSとJISの表記が違いすぎて混乱すると思います。

こちらのnoteに整理されている「キー変換定義」が参考になります。
https://note.com/kloir_z/n/n314e739f03a1#1
こちらのdefineをkeymapファイルの先頭に書いておくと...

例)#define JP_AT LEFT_BRACKET //@
#defineというのは、ファームウェアをビルドするときに、
左側の文字列を右側の文字列に書き換えるというものです。

keymapで&kp JP_ATと書いたら。
&kp LEFT_BRACKETに読み替えてビルドされます。
LEFT_BRACKETはHIDの0x2Fというコードに変換されます。
0x2FはJIS環境ならアットマーク@として入力されます。
JP_ATと書くだけでいつもの@キーが使えるので、keymapファイルを編集する際に分かりやすくなります。

JISにしか存在しないキー

上記defineではキーコードを直接書いてありますが
例)#define JP_YEN 0x89
zmkにはInternationalというカテゴリのキーが用意されています。
https://zmk.dev/docs/keymaps/list-of-keycodes#international
defineより簡便に設定できるので、こちらもオススメです。

なお、zmkが用意している記号キーについては、
単一のキーに見せかけて、Shiftを押しながらキーを押しているものもあります。
例)DOLLAR = LS(NUMBER_4)

JISとUSで挙動が変わってくる場合があるので、
設定したキーの挙動が想定と違うなど、困ったときはこの辺の定義ファイルも参照されると役に立つかもしれません。
https://github.com/zmkfirmware/zmk/blob/main/app/include/dt-bindings/zmk/keys.h

関連商品一覧

お客様サポート

製品に関するご質問 FAQ

製品以外のご質問