【LaLaPadGen2】ZMK自作キーボードでKeymap Editorを使う方法(GitHub非公開リポジトリ対応)


自作キーボード LalaPadGen2 のキーマップ設定で困ったことがありました。

ZMKファームウェアを使う自作キーボードでは、Keymap Editor というWebアプリでキーマップをGUIで編集できます。便利なツールですが、GitHubリポジトリが公開(Public)でないと使えないという制約があります。

ここで問題になるのが、キーマップのマクロにパスワードや個人的な文字列を登録しているケース。zmk-configリポジトリを公開にすると、それらが丸見えになってしまいます。かといってリポジトリを非公開(Private)にすると、Keymap Editorが接続できなくなります。

この記事では、リポジトリを非公開にしたまま Keymap Editor を使う方法を紹介します。

答えは Keymap Editor の Clipboard source(クリップボード機能)を使うこと。GitHub連携は不要で、セットアップもゼロです。

LalaPadGen2 を例にしていますが、ZMKを使う自作キーボードなら同じ手順で使えます。同じ悩みでお困りの方、ぜひ試してみてください。

この記事で解決できること

  • ZMKの zmk-config リポジトリを非公開のまま、Keymap Editor の GUI でキーマップを編集できる
  • パスワードマクロなどの秘密情報を GitHub で公開せずに済む
  • GitHub認証もforkも不要。ブラウザとターミナルだけで完結する

前提条件

  • ZMKファームウェアを使う自作キーボードの zmk-config リポジトリがローカルにクローンされていること
  • ローカルビルド環境が動くこと(Docker等)
  • ブラウザ(Chrome / Edge / Arc など)

手順:Clipboard source でキーマップを編集する

Step 1. keymapファイルの内容をクリップボードにコピーする

ターミナルで zmk-config のディレクトリに移動し、.keymap ファイルの内容をクリップボードにコピーします。

macOS の場合:

cd /path/to/your-zmk-config
cat config/your_keyboard.keymap | pbcopy

Linux(X11)の場合:

cat config/your_keyboard.keymap | xclip -selection clipboard

Linux(Wayland)の場合:

cat config/your_keyboard.keymap | wl-copy

Windows(PowerShell)の場合:

Get-Content config\your_keyboard.keymap | Set-Clipboard

ファイルの中身をクリップボードに入れられればOKです。テキストエディタで開いて全選択→コピーでも構いません。

Step 2. Keymap Editor を開く

ブラウザで以下のURLにアクセスします。

https://nickcoutsos.github.io/keymap-editor/

Step 3. Source に「Clipboard」、Keyboard に「Custom」を選ぶ

画面に表示される設定で、以下のように選択します。

項目選択する値
SourceClipboard
KeyboardCustom…

ここが重要: Keyboard は必ず「Custom…」を選んでください。内蔵リストにある Corne や Kyria 等を選ぶと、キーの数やレイアウトが合わずエラーになります。Custom を選ばないと「Set Keymap」ボタンがグレーアウトして押せません。

Step 4. keymapを貼り付けて読み込む

テキストエリアが表示されるので、Step 1 でコピーした内容を貼り付けます(Ctrl+V / Cmd+V)。

貼り付けたら「Set Keymap」ボタンをクリック。キーマップが読み込まれて、GUI が表示されます。

Step 5. GUIでキーマップを編集する

Keymap Editor の GUI でキーマップを自由に編集できます。

  • 左ペインの数字(0, 1, 2…)でレイヤーを切り替え
  • キーをクリックして割り当てを変更
  • LAYERS / COMBOS / MACROS / BEHAVIORS タブで各セクションを編集

Step 6. 編集結果をコピーする

編集が終わったら、画面右上付近の「Keymap」ボタンをクリックします。編集後の .keymap ファイル全体がテキストとして表示されます。

全選択(Ctrl+A / Cmd+A)→ コピー(Ctrl+C / Cmd+C)してください。

Step 7. ローカルの keymapファイルに上書きする

テキストエディタ(VS Code など)で .keymap ファイルを開き、全選択→貼り付けで上書きします。

コマンドラインで行う場合:

macOS:

pbpaste > config/your_keyboard.keymap

Linux(X11):

xclip -selection clipboard -o > config/your_keyboard.keymap

Linux(Wayland):

wl-paste > config/your_keyboard.keymap

Step 8. 差分を確認する

Gitで差分を確認し、意図した変更だけが含まれているかチェックします。

git diff config/your_keyboard.keymap

意図しない変更があった場合は、すぐ戻せます:

git checkout -- config/your_keyboard.keymap

Step 9. ビルドして動作確認する

ローカルビルドを実行し、ファームウェアが正常に生成されることを確認します。

# ビルドコマンドは環境に合わせて読み替えてください
./build.sh

ビルド成功後、生成された .uf2 ファイルをキーボードに書き込んで動作確認します。

Step 10. 変更をコミットする

問題なければ、変更をコミットします。

git add config/your_keyboard.keymap
git commit -m "keymap: 変更内容の要約"

リポジトリは非公開のままなので、pushしてもパスワードマクロが公開されることはありません。

知っておくと安心なこと

Keymap Editor の Clipboard source を使う際に、いくつか知っておくべき挙動があります。いずれもビルドに影響はありません。

空白(インデント)が変わる

エディタは独自のルールで列揃えを行います。既存ファイルのインデントと差分が出ますが、ZMKの動作には影響しません。git diff で空白だけの変更が大量に出ても慌てないでください。

余分な括弧が追加されることがある

Mod-tapの引数にネストしたキーコードがある場合、エディタが冗長な括弧を追加することがあります。

変更前: &mt LG(LS(V)) LG(V)
変更後: &mt (LG(LS(V))) LG(V)

Cプリプロセッサとして評価されるため、意味は同じです。

独自定義の behavior は新規配置できない

自分で定義したカスタム behavior(独自のmod-tapやtap danceなど)は、すでにキーマップ上に配置されている分は正しく表示・保持されます。ただし、GUIのキー選択リストには出てこないため、新しいキーに独自 behavior を割り当てたい場合は .keymap ファイルを直接テキスト編集してください。

combos・macros・behaviors の定義は保持される

keymapファイル内の combos, conditional_layers, macros, behaviors の定義ブロックは、Clipboard source で読み込み→書き出ししても消えずに保持されます。

トラブルシューティング

「Set Keymap」ボタンがグレーアウトして押せない

Keyboard の選択が「Custom…」になっているか確認してください。内蔵キーボードリストから選んでいると、レイアウトが合わずにボタンが無効化されます。

貼り付け後にエラーが出る

.keymap ファイルの #include 行や #define マクロは通常そのまま保持されます。エラーが出る場合は、コピー元の .keymap ファイル自体に devicetree の構文エラーがないか確認してください。

ビルドが失敗する

  1. git diff で差分を確認し、空白・括弧以外の意味的な変更が意図通りか確認
  2. 問題があれば git checkout -- config/your_keyboard.keymap で元に戻す
  3. Keymap Editor での編集からやり直す

.dtsi ファイルは編集できない

Clipboard source は .keymap ファイル1つだけを扱います。.dtsilayouts.dtsi などの編集が必要な場合は、テキストエディタで直接編集してください。

まとめ

ZMKの自作キーボードで、GitHubリポジトリを非公開にしたままKeymap EditorのGUIを使う方法を紹介しました。

やっていることはシンプルで、keymapファイルの中身をクリップボード経由でコピー&ペーストしているだけです。GitHub連携が不要なので、パスワードマクロを含むリポジトリでも安心して使えます。

この記事の手順がうまくいかない場合や、もっと詳しく知りたい場合は、この記事の「手順」セクション(Step 1〜10)をそのままAIチャット(ChatGPTやClaude等)に貼り付けて質問すると、自分の環境に合わせた具体的なアドバイスがもらえます。