MulmoTerminal のキーボードショートカット — 既定値が無い理由と、設定の勘所

MulmoTerminal のキーボードショートカット — 既定値が無い理由と、設定の勘所

課題:マウスからキーボードに持ち替え続ける

MulmoTerminal で 9 枚のマスに AI を並べて動かしている。拡大しているマスから隣のマスへ移って様子を見るたびに、マウスで対象をクリックする。一日に何十回。

キーボードで切り替えたい、と思って設定を見る。keymap という項目はある。書き方の例もある。

ただし、既定値が一つも無い。

Cmd+T で新しいタブ、Cmd+W で閉じる。普通のアプリにはこれらが初めから入っている。MulmoTerminal は、空だ。

なぜ既定値を置かないのか

MulmoTerminal のターミナルで動くのは、ユーザーが選んだプログラムだ。シェル、vim、less、Claude Code、Codex。これらはあらゆるキーを使う。

アプリ側がキーを取ると、その分だけ中のプログラムに届かなくなる。普通のアプリと違って、ターミナルを持つアプリでは「このキーは誰も使っていない」と仮定できない。

何が中で動いているかを知っているのは使っている人だけだ。だから既定値を置かず、割り当てを書いた人だけが「ターミナル側で何かが使えなくなる」という代償を払う形にしている。

設定の 2 つの入口

1. 設定画面から(推奨)

Settings → Keyboard shortcuts に全アクションが並ぶ。各行の「変更」を押してキーを押すと、そのまま保存される。すぐ効く。

2 打のシーケンスと send 系(ターミナルへ任意のキー列を送る)はこの画面からは書けないので、ファイルで書く。

2. ~/.mulmoterminal/config.json を手で書く

{
  "keymap": {
    "zoom-next": "PageDown",
    "zoom-prev": "Shift+PageUp"
  }
}

書いたらアプリを再起動して、ブラウザのタブを再読み込みする。この手で書くルートが要る場面は、2 打のシーケンスと send、それと設定ファイルを git に入れて共有したいときだ。

割り当てを書いても、完全には奪わない

既定値ゼロの代わりに、割り当てた側にも「ターミナル内のプログラムが完全に使えなくなる」ことが起きないよう、4 つの逃げ道が用意されている。

Shift 併用は完全一致でしか奪わない

PageDown を割り当てても、Shift+PageDown は奪われない。ターミナルのスクロールバックはそちらで遡れる。「PageDown を割り当てたら less のページ送りが使えなくなった」が起きない。

IME 変換中は常に素通し

日本語の変換候補を PageDown でめくっている最中は、割り当てが一時的に無効化される。日本語で AI に指示を出すなら、ここは気になるポイント。

2 打のキーで、奪う範囲を狭くする

{
  "keymap": {
    "zoom-next": "Cmd+k j",
    "zoom-prev": "Cmd+k k"
  }
}

続けて 2 つのキーを押す形で割り当てられる。最初の 1 打(Cmd+k)だけを奪い、めったに使わないキーを選べば、実質的にほとんど何も奪わない。VS Code のキーマップに慣れている人には馴染みのある形。

衝突は起動時に警告として出る

1 つのキーに 2 つの動作を割り当てると、片方が勝つ。黙って片方を捨てずに、サーバの起動ログに動作名付きで警告が出る。「設定したのに効かない」で悩む時間が消える。

詳細・gotcha

拡大用と非拡大用を混同しない

よくある間違い。アクションは効く場面が決まっている:

アクション 効く場面
zoom-next / zoom-prev 拡大しているときだけ(拡大対象を動かす)
focus-next / focus-prev 非拡大のグリッド表示でだけ(カーソルを動かす)
next-attention 拡大・非拡大の両方(入力待ち → 完了・未レビュー → idle の順で巡回)

拡大版と非拡大版で別のキーを割り当てる。1 つのキーは 1 つの動作にしか解決されないので、両方に同じキーを書くと片方が負ける。どちらが負けたかは起動時の警告に出る。

端で止まる、巻き戻らない

zoom-next を末尾のマスで押しても、先頭には戻らない。先頭で zoom-prev を押しても末尾には行かない。環状にすると「いま何枚目か」が分からなくなるため、仕様として端で止まる。マスが 2 つしか無いときは押した回数の約半分が無反応に見えるので、挙動として知っておく。

Mac のノートには独立した PageUp / PageDown が無い

Fn + ↑ / Fn + ↓ で代用するが、この組み合わせを keymap に書いても OS が Fn を飲んでしまうためアプリまで届かない。Mac で使うなら:

のどれかを選ぶ。

ブラウザが先に取るキーは、割り当てても何もしない

Cmd+T、Cmd+W、Cmd+N などタブ操作のキーは、focus-mode(集中モード)に入っている Chrome・Edge・Arc のとき以外は MulmoTerminal まで届かない。設定画面の該当行には「効かない」と出て、起動時にも「この OS で予約されているのはこの一覧」と警告が出る。

反映のタイミング

サーバ起動時に一度だけ config.json を読むため、手編集はアプリ再起動が要る。これは terminalSubmit と同じ注意点で、「設定したのに効かない」の典型原因になる。

使ってみる

MulmoTerminal の立ち上げ方は MulmoTerminal 完全ガイド の「使い方 3 ステップ」から。既に動いていれば、設定画面でそのまま試せる。

動作確認の最小シナリオ:

  1. Settings → Keyboard shortcuts を開く
  2. zoom-next の「変更」を押し、PageDown を押す(Mac なら Fn+Shift+↓ のような別の組み合わせ)
  3. 空いているマスをいくつか起動する
  4. 1 つを拡大して PageDown を押し、拡大対象が隣のマスへ移れば成功

起動時に警告が出ていたら、同じキーを 2 つの動作に重ねている。設定画面の該当行が「効かない」になっていたら、ブラウザ予約キーに当てている。

やめるときは、設定画面の「外す」で解除するか、config.json の keymap ごと消す。既定値は無いので、空に戻る。

まとめ

関連: MulmoTerminal 公式ガイドのキーボードショートカット / MulmoTerminal のサイドペインから答える(questionPaneEnabled) / Cursor の代替としての MulmoTerminal

この記事をシェア

関連記事

記事一覧に戻る