Tool

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使用時の問題

  1. Zellijが全てのキー入力を先に受け取る
  2. ZellijはCmd修飾キーをサポートしていない
  3. 結果として、Cmd+kがターミナルに届かない

なぜこれで動くのか

  1. Ghosttyでcmd+kを\x0c(フォームフィード)に変換
  2. この制御文字はZellijを通過してシェルに届く
  3. シェルが画面クリアを実行

他の試みた方法(うまくいかなかった)

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
o_wani
o_wani
スタッフ
大学卒業後、15年間WEB業界で働く。現在はマネジメントに従事していますが、ChatGPTの登場に触発され、このブログを再開。AIをパートナーに、自分で手を動かして実装する楽しさと喜びを再発見中。時代が変わりつつある中でも、陳腐化しない情報発信も目指しています。
記事URLをコピーしました