本当は怖いHPC & AI

HPC / AI屋さんの外部記憶装置。メモ書き。

Ghosttyでエスケープ文字列が入力されてしまう問題

Ghosttyを使っているとき、SSH経由でBashやZshを使っていると、例えば Ctrl + I で、以下のようなエスケープシーケンスが間違って文字列として入力されてしまいます。

5;5u

なぜこのようなことが起こるのかというと、Ghosttyは、Terminalでキーボードイベント(キー押下など)を送信するプロトコルとして CSI u (Kitty Keyboard Reporting Protocol) を実装しているからです。これは比較的新しいプロトコルで、従来の Bash や Zsh などのソフトウェア、あるいは GNU Readline のようなライブラリは、まだこの新しいプロトコルに未対応です。

CSI u プロトコルについては、ここでは深入りしませんが、Ghostty ではこのプロトコルを無効化する方法は現時点では存在しないようです。ですので、今回は困ったときに個別のキーコードを全て無効化する方向で、Ghostty の設定ファイルを書くことにします。

keybind = ctrl+i=text:\x09

これで Ctrl+I で Tab キーが入力されるようになりました。