前回の記事ではZMK Studioを使ってキーマップの編集をしました。
↓前回の記事
ZaruBallでキーマップを変更する(ZMK Studio)今回はKeymap Editorを使ってキーマップの変更をしたので、備忘録として残しておきます。
なお、これはあくまで私の備忘録のため作業する際は必ず下記の公式のドキュメントを参照するようにお願いします。
PCの設定がJISキーボードの配列でUSのキーキャップ通りの入力ができるように変更したい
あんまりいないと思うのですが、私は普段ノートPCを使っており、ノートPC側のキーボード配列がJIS配列になっています。
一方でZaruBall側のキーマップはUSキーボード of 配置になっており、キーキャップに記載されている内容と実際に出力される内容が異なるものが出力されてしまう場合があります。(例えばキーキャップに@が書かれているキーを押下しても"が出力されてしまうなど)
解決策としてPC側のキーボードをJISではなく、USに変更する方法もあると思うのですが、そうするとZaruBallがないときにノートPCのキーボードに記載されている内容とアンマッチのものが出力されてしまいます。
影響があるのが主に記号関連だけなので覚えればいいかもしれないのですが、普段あまり使わない記号の配置をなかなか覚えるのが難しく、PCの設定はJISだが、USキーキャップに記載されている記号が入力できるようにキーマップを編集したいと思いKeymap Editorを使って編集しようと思いました。
(参考)ZMK Studioでは対応できなさそう
前回同様ZMK Studioでできれば自作キーボード初心者の私でも簡単にやりたいことが実現できると考えたのですが、設定ができなさそうでした。
BehaviorでMod-Morphというものが使えれば実現できそうな感じでしたが、ZMK Studioでは使えなさそうでした。
他にもやり方はあるかもしれないですが、今回は勉強も兼ねてKeymap Editorを使ったキーマップの編集を行っていきます。
Keymap EditorとGitHubの連携
ここからは公式ドキュメントに則って作業を行っていきます。
GitHubでの操作
ここはGitHubの操作に慣れてない人向けの説明です。知ってる人は飛ばしてください
まず最初に下記ZaruBallのファームウェアリポジトリを自分のアカウントにフォークします。
今回私の環境はZaruBall v3.xなので、v3.xの環境をフォークできるようにします。(1.xや2.xの人はmainブランチでいいとのことでした)
次にCreate a new forkのページに遷移しますが、デフォルト状態だと下記チェックボックスにチェックがついてしまってますが、このチェックを外します。(mainブランチで問題がないv3以外のバージョンの人はこのままでもいいかもしれないですが、記載されている通り、これにチェックがついているとmainブランチしかコピーされないため)
あとから気が付いたのですが、このタイミングでワークフローの有効化をしたほうがいいです。詳細はワークフローの有効化を参照お願いします。
Keymap Editorでの操作
下記のGitHubを選択します。
GitHubの認証の画面が出てくるので、"Login with GitHub"を押下します。
"Authorize"ボタンを押下します。
警告文?が表示されますが、これはKeymap Editorが選択したリポジトリだけアクセス権限を付与するようにしてくださいねという説明です。
これを読んだら"Add Repository"を押下して実際の設定ページに遷移します。
デフォルトだとAll repositoriesにチェックが入ってしまっているので、先ほどの説明通りに"Only select repositories"にチェックをし、"Select repositories"から先ほどForkしたZaruBallのリポジトリを選択します。
選択できたら緑色のInstallボタンを押下します。
そうすると下記のような画面に遷移して設定ができるようになります。デフォルトだとBranchがmainになっているため、下記赤丸の箇所をv3に変更します。
これで準備は終了です。これからキーのセッティングを実施していきます。
PCの設定がJISでキーボードがUSキーキャップのキーセッティングを作成していく
事前準備が終わったのでこれからJIS用のキーセッティングをしていきます。今回はZMK Studioでは使えなかったMod-Morphの設定を作っていきます。
Mod-Morphのセッティングを作成する
どのBehaviorを作成するかを聞かれるので今回はMod-Morphを選択します。
そうすると下記のような画面に遷移します。Bindは機能が分かりやすいようにします。
今回はPC側がJISキー配置でキーボード側がUS配列の場合の2の挙動を作りたいので、"PC_JIS_KEY_US_2"にしてみます。(名前ですが、文字が長すぎて末尾の数字が見切れてしまったため、最終的にJIS_2_KEY_USという名前にしてます。)
そしたら実際の挙動を作成していきます。最初に全体像の説明をします。
キーの挙動を設定するのに下記3つを設定します。
- NORMAL:他に何もキーを押してないときの挙動の設定
- MODIFIED:特定のキーを押した際の挙動の設定
- mods:MODIFIEDを発動するためのキー条件
今回はNORMALに"2"、MODIFIEDに"["(JISキーボードで"["を押下すると"@"になるため)を設定します。modsはMOD_LSFTとMOD_RSFTにチェックを入れます。(これは左Shiftと右Shiftをトリガー条件に設定する意味です。)
前置きが長くなりましたが、実際にやっていきます。まずはNORMALの設定です。NORMALを押すると下記のような画面に遷移します。下記画像で緑になっている&noneから始まる文字列を押下します。
そうすると下記のような画面に遷移するので&kpを選択します。これはキーを押したときの動作を規定するという意味です。
そうすると下記のような画面に遷移します。Key Codeが何も選択されてないため、KeyCodeを選択します。
下記の画面に遷移するのでN2を選択します。(and @という文字列が記載されてますが、いったん無視で大丈夫です。)
同様にMODIFIED側も設定していきます。基本的に流れは同じなので差分のところだけ紹介します。今回は「[」を入力したいので、先ほどN2としたところをLEFT_BRACKETを選択します。
最後にmodsの設定です。冒頭のほうに説明した通り、ここはMOD_LSFT(左Shiftキー)とMOD_RSFT(右Shiftキー)を選択します。最後に一番下のOkayを押下して2のキーの設定は完了です。
先ほど作成したキーをKeyMapに配置する
先ほどまででキーの動作は規定したので、実際に配置していきます。LAYERSに遷移して、2のキーを選択します。
そうすると下記の画面に遷移して、先ほど作成したPC_JIS_KEY_US_2というBehaviorを選択し、Applyを押下します。
これで設定はできました。ただ、デフォルトのキーではないため、ほかのキーみたいに表示を大きく2となってないです。いろいろ試してみたのですが、Keymap Editorで対応する方法はなさそうでした。
このままの命名規則だと2という文字列が見えなくなってしまうので、命名規則を変えて"JIS_2_KEY_US"にしました。2という文字が見えるようになったので、アサイン間違いがあっても気が付くことができそうです。いったんこの状態でSaveします。
Commit Messageを適当に入力してCommitします。(Optionなので入力しなくてもいいです。)
あとはほかのキーに対しても同様の作業をやっていくのですが、このまま全部実施して間違っていたら手戻りが大きいため、この状態で想定通りの動作をするか確認をしていきます。
GitHub Actionsでファームウェアのビルドを実施する
ワークフローの有効化と実行
設定が終わったのでビルド作業に入ります。公式ガイドだとSaveの横に青いボタンがあり、それを押下するとGitHub Actionsのページに遷移するとのことでしたが、私の画面にはありませんでした。
なので最初に作ったリポジトリからActionsেরタブに自力で遷移します。遷移したところ下記のような表示になりました。ざっくりいうとワークフローが無効化されているので、有効化する必要があります。緑のボタンを押下して有効化します。
このワークフローを先に有効化しなければいけなかったのにしてなかったのが、青いボタンが表示されない原因でした。ワークフローはSaveしたタイミングで自動で実行されるため、適当な保存をしてワークフローを実行させます。
状況によりますが数分待てばビルドが完了しました。
そうしたら一番下にビルド後のファームウェアが生成されるため、ダウンロードします。
これでファームウェアの作成は終了です。
ファームウェアの書き込み
最後にファームウェアの書き込みを行います。先ほどダウンロードしたファームウェアのzipファイルを解凍すると3つファイルがあることが分かります。
公式ドキュメントによるとそれぞれ下記の通りとのことです。
| ファイル名 | 説明 |
|---|---|
ZaruBall_right rgbled_adapter-seeeduino_xiao_ble-zmk.uf2 |
右手側のマイコンに書き込むファームウェア |
ZaruBall_left rgbled_adapter-seeeduino_xiao_ble-zmk.uf2 |
左手側のマイコンに書き込むファームウェア |
settings_reset-seeeduino_xiao_ble-zmk.uf2 |
不具合発生時に使用するファームウェア |
一応こちらでも紹介しますが、ファームウェアの書き込みについては公式ドキュメント参照お願いします。
まず初めにPCとUSBで接続したうえで下記リセットスイッチを二回素早く押してブートローダーモードに入れます。
ブートローダーモードで起動すると下記のようなフォルダが見れるようになるので、先ほど作成したUF2ファイルをこのフォルダにドラッグ&ドロップします。(左手用と右手用があるので、今回接続したほうのUF2ファイルをドラッグ&ドロップするようにお願いします。)
途中でエラーが出ますが、無視で大丈夫です。(詳細はこちらの記事も参照お願いします。)
同様に反対側のほうのキーボードにもUF2ファイルを書き込んで作業は終了です。
動作確認
最後に動作確認をします。今回修正したのはShift+2なので、通常時は2が出力されてShiftを押しながらだと"@"が出力されることを確認しました。
動作確認した結果問題なく動作したため、同様の流れでほかのキーのレイアウトも修正していきます。
まとめ
今回はKeymap EditorとGitHub Actionsを連携させて、Mod-Morphを使ったJIS環境向けのキーマップカスタマイズに挑戦しました。
初めはGitHubの仕様(ワークフローの有効化)や、ツールの表示制限などで少し手惑うポイントもありましたが、仕組みが分かってしまえば自作キーボード初心者の私でも無事に想定通りの動きを実現することができました!
キーの見た目が「2」単体にはできず「JIS_2_KEY_US」のような表記にはなりますが、枠内に綺麗に収まって一目で役割が分かるようになったので大満足です。
今回はテストを兼ねて「Shift + 2」のキーだけをピンポイントで修正しましたが、動くことが確認できたので、残りのズレている数字キーや記号キーたちも同じ流れでガシガシ修正していこうと思います。
一度設定のコツさえ掴んでしまえば、自分好みにどんどんキーボードを育てていけるのが自作キーボードの本当に面白いところですね。同じように「JIS配列PC × USキーキャップ」の組み合わせで悩んでいる方の参考になれば幸いです!
0 件のコメント:
コメントを投稿