Overview
ターミナルエミュレーターを色々触ってきましたが、結局 wezterm に戻ってきた、という話です。
ターミナルエミュレーター の変遷
自分が Mac で仕事をするようになってからのターミナルエミュレーターの遷移は以下です。
Mac で仕事をするようになって以来、標準のターミナルエミュレーターから色々カスタマイズできて全部入りな iTerm2 を好んで使っていましたが、ある時から重たいなと感じるようになり自分で設定をカスタマイズできる Wezterm に行き、そのあと LLM の時代になったので LLM ネイティブなターミナルエミュレーターとして Warp を試していました。
ただ、LLM での補完や、チャットでのコマンドを聞いたりするというのが自分の作業ワークフローに合わず、ターミナルには AI とかいらないんだなとなりそのタイミングで最近話題になっている Ghostty が出たのでこっちに乗り換えてました。
しかし、Ghostty はリリースされたばかりでいくら設定をカスタマイズできるとはいえ、iTerm2 同等のサポートを自前で作るのは当時は難しく(サポートしてない機能あったし)、結局多少重たくても全部乗せの iTerm2 を使う方が生産性上がるなと思って、ここ暫くは iTerm2 に戻っていました。
ただ、Claude Code などの LLM の CLI ツールを多用するにあたり、ターミナルの描画が iTerm2 だと重たすぎてもっさりしてるのがだいぶ気持ち悪かったのもあり、結局軽量なターミナルエミュレーターがいいな、ということで Ghostty か Wezterm かで悩んだ結果、lua での設定ファイルが書きやすいなと思ったので Wezterm に戻ってきました。あまり凝った設定はしてないでなるべく素の状態で利用していますが、やはり iTerm2 -> Wezterm だと露骨に秒かのパフォーマンスの違いを感じます。これが Rust の力なんですかね笑
今のところ十分満足です。
その他
そうは言っても Wezterm で iTerm2 と同等のことができないと仕事にならないので Wezterm で iTerm2 同等の keybind を作り出すためにいろいろ調べて記録しておきます。
Ctrl + h 問題
これが一番困りました。
Claude Code のような Coding Agent のチャットとの対話において、 Ctrl + h (= Backspace) を多用していた自分にはこの問題がクリティカルすぎてどうしようか迷ってるところだったのですが、すでに対応してくれてる人がいて助かりました。
keybind や設定周り
探せばいくらでも出てきますが、以下を参考にしました。