GhosttyでZellij使用時にCmd+kで画面クリアが効かない問題を解決する
o_wani
Ghosttyターミナルでは通常Cmd+kで画面クリアができるが、Zellijを起動すると効かなくなる。これはZellijがキー入力をインターセプトしてしまうために起きる。
その問題を解決するメモ。
解決方法
Ghostty側の設定でCmd+kをフォームフィード文字(\x0c)として送信するように設定する。
設定ファイル
~/.config/ghostty/config に以下を追加:
keybind = cmd+k=text:\x0c
-
cmd+k: macOSのCommandキー + kキーの組み合わせ -
text:\x0c: フォームフィード文字(Form Feed)を直接送信 - これはUnix/Linuxシステムで画面クリアに使われる制御文字
- Ctrl+Lと同等の動作をする
Zellij使用時の問題
- Zellijが全てのキー入力を先に受け取る
- ZellijはCmd修飾キーをサポートしていない
- 結果として、Cmd+kがターミナルに届かない
なぜこれで動くのか
- Ghosttyでcmd+kを
\x0c(フォームフィード)に変換 - この制御文字はZellijを通過してシェルに届く
- シェルが画面クリアを実行
他の試みた方法(うまくいかなかった)
Zellij側での設定
// これはエラーになる(ZellijはCmdキーをサポートしていない)
normal {
bind "Cmd k" {
WriteChars "\u{000C}";
}
}
Ghostty側でCtrl+lへのマッピング
// これだとZellijのCtrl+lバインドと競合する可能性がある
keybind = cmd+k=ctrl+l
環境
- macOS
- Ghostty (最新版)
- Zellij 0.40.x
STAFF

