2025年のターミナルエミュレータ現況: さまようチャンピオンたち
(jeffquast.com)- Unicodeサポートの正確性と性能を基準に、主要なターミナルエミュレータを比較した2025年の評価結果を提示
- GhosttyはZigで新たに開発されたターミナルで、最も高いスコアを記録し、正確なUnicode処理を実装
- KittyはGhosttyに近い水準のスコアを獲得し、テキスト分割アルゴリズムを公開して標準化に貢献
- 多くのターミナルで性能低下とDEC Private Modeサポートの不一致が見られ、とくにVTEベースのターミナルでは改善がなかった
- 可変幅テキストプロトコルの登場により、単一幅セルの限界を超えて、さまざまな言語の可読性向上の可能性が示された
- Errant Champions(さまようチャンピオンたち): GhosttyやKittyのように、古典的な規格に安住せず、ターミナルの文字幅・レンダリング・Unicode問題を根本から再設計した挑戦者たち
ucs-detectツールとテスト概要
- 2023年に公開された Unicodeサポート比較実験 の後続研究として、
ucs-detectツールに DEC Private Modes、sixelグラフィックス、ピクセルサイズ、ソフトウェアバージョンの検出機能が追加された- このツールはカーソル位置制御シーケンスを送信し、ターミナルの応答を Python wcwidth の結果と比較して不一致を記録する
- テストは各ターミナルの文字幅計算の正確性を検証し、結果はUnicodeサポート品質を数値化する
文字幅問題(The Width Problem)
- ターミナルには、固定幅グリッド内で多様なUnicode文字を表示しなければならない構造的な限界がある
- 結合文字、絵文字シーケンス、Zero-width joiner などにより、文字幅の予測がしばしば失敗する
- こうした誤差はカーソル位置の誤りや出力の破損を引き起こし、入力位置まで歪める
- テスト結果は、こうした問題を最も少なく引き起こすターミナルを特定する
Ghostty: 新たな強豪
- Ghosttyは2025年に公開された新しいターミナルで、Zig言語でゼロから開発された
- 徹底したUnicodeサポート実装により正確性が最も高く、テストで最高スコアを記録
- 開発者Mitchell Hashimotoは、2023年の Grapheme Clusters and Terminal Emulators で基本原理を研究した
- 新たに公開された libghostty は、既存の libvte を置き換えうる代替として、今後のターミナル生態系に強力なUnicode基盤を提供する可能性がある
Kitty: もう一人のチャンピオン
- KittyはGhosttyとほぼ同じスコアを記録し、テキストセル分割アルゴリズムを公開した
- このアルゴリズムは Python wcwidth仕様 と一致し、Unicode標準の解釈に基づいている
- この2つのターミナルだけが Variation Selector 15 を正しくサポートした
- この機能の実用性は高くないが、Python wcwidthの将来の標準反映が予定されている
ターミナルエミュレータのUnicode性能比較まとめ
- 1位 Ghostty、2位 Foot、3位 Kittyが上位を占めた
- 3つのターミナルはいずれも Unicode処理の正確性(WIDE/LANG/ZJW/VS16) 項目で最高点を記録
- Ghostty は 全項目100点で総合100点、DEC Modesも enabled
- Kitty は性能(Elapsed time 1748s)がやや遅いが、正確性は最高水準
- VTEベースのターミナル(GNOME Terminal、Terminator、LXTerminalなど) は下位にとどまった
- いずれも Final Scaled Score 5点以下、テスト時間は8000〜18000秒と非常に遅い
- 2023年と同様に改善はなかった
- 性能(Elapsed time) の面では Foot、WezTerm、tmux、Konsole などが高速(100秒未満)
- iTerm2、Extraterm はCPU使用率が高く、非常に遅い部類(4000秒超)
- Sixelグラフィックス対応は上位勢でも一部のみが提供
- Ghostty、Kitty、Konsole、contour は対応
- GNOME Terminal、VTE系 は大半が未対応
- Variation Selector 15(VS15) を正しくサポートするターミナルは GhosttyとKittyの2つだけ
- Unicode処理の完成度という点で、事実上この2プロジェクトが突出している
性能分析(The Long Road)
- 多くのターミナルで非常に遅い性能が見られ、テスト完了までに数時間を要した
- iTerm2 と Extraterm はCPUを過剰に使用し、テスト時間を短縮する必要があった
- GNOME Terminal と VTEベースのターミナル はCPU使用率こそ低いが、5時間以上かかった
- Python wcwidth は高水準言語でありながら、ほとんどのターミナルと速度が釣り合っていた
- 性能最適化のために ビットベクタ、ブルームフィルタ、LRUキャッシュ などが試されたが、二分探索 + LRUキャッシュ の組み合わせが最も効率的だった
- LRUキャッシュは繰り返し現れる文字集合を処理するときに効果的
- Cモジュール の導入も検討されたが、現状のPython実装でも十分な性能を確保している
特異な事例と問題点(Tilting at Edges)
- Terminology は実行のたびに結果が変わり、内部状態が破損している可能性がある
- iTerm2 はすべてのDEC Private Modeを「サポートしているが無効化されている」状態として報告した
- Konsole は問い合わせには応答しないが、一部のモードは有効化時にサポートされる
- Contour は誤ったモード番号で応答したため「サポートなし」と表示され、2024年12月リリースでは ESCキー設定エラー も発生した
- VTE/7600 ベースのターミナルは2023年と同じ低スコアを維持した
- libvteプロジェクト のUnicode改善議論は批判を受けたが、絵文字シーケンス対応イシュー は2026年の改善シグナルとして評価された
Mode 2027について
- Mode 2027 はターミナルのUnicodeサポート有無を単純に「対応/非対応」で区別するが、細かな機能レベルまでは分からない
- 実際には ucs-detect のように個別機能やコードポイントを直接テストする方式のほうが正確だ
固定幅を超えて(Beyond Fixed Widths)
- 固定幅セル構造は多くの言語で可読性の低下を招く
- テキストサイズ調整プロトコル(text sizing protocol) はこれを解決する新しいアプローチ
- Kitty のKovid Goyalは「Markdownファイルの見出しを大きく表示したい」という例で説明した
- この機能はアクセシビリティ向上と複雑な文字体系の可読性改善の可能性を示す
- 例として Contour と Kateエディタ におけるKhün言語表示の比較では、可変幅レンダリングのほうがより明瞭な結果を示した
- フォントエンジンがセル単位の制約なしにテキストをレンダリングできるようにする 可変幅モード が今後の発展方向として示されている
- テキストサイズプロトコル の導入は、こうした問題解決に向けた前進と評価される
15件のコメント
weztermをおすすめしますXshell、iTerm2を使っています……。ほかのものも一度使ってみないといけませんね。
Mac や Linux では ghostty をよく使っていましたが、Windows では wezterm がいちばん良いと思います。
Windowsユーザーとして
cygwin terminal (mintty) + moshで完全に定着しました。まあ、特に不足しているものはない感じです。
私は普通に Windows Terminal を使っています
結局いつも Gnome terminal に戻ってしまうんだよな……
GhosttyやKittyがWindowsにも対応してくれると本当にいいのですが…。
configさえうまく調整すれば、WezTermもかなり良かったです。(Windows対応)
https://ja.news.hada.io/topic?id=9270
tabbyはマイナーみたいですね.. ghosttyを一度使ってみないといけませんね
ああ、ghostty には Windows 版がないんですね;
LLMのCLIプログラムのため、今後はターミナルでも英語圏以外のさまざまな言語を使う場面が増えそうですが、
そういう観点から見ると、ターミナルエミュレータのUnicode対応は本当に重要だと思います
ghostty に
cmd+f機能さえ入れば完璧だと思います。ないので地味に不便ですね。それと、split した状態でこれをどうやって別ウィンドウに分離するのか分かりません。もしご存じの方がいれば教えていただけますか? うぅ
alacrittyを軽視するな〜〜〜Hacker Newsの意見
会社の仕事の都合で、初めて Windows Terminal を使ってみた
ずっと Linux でしか開発してこなかったので使ってみると、Ctrl+C、Ctrl+V がとても 賢く動作する
選択範囲がないときはプロセス中断、選択があるときはコピーとして動作し、貼り付けもそのまま Ctrl+V でできる。本当に便利だ
テキストを選択するだけでコピーされ、別のウィンドウで マウス中央ボタン で貼り付けられる
これを Primary Selection と呼び、通常のクリップボード(Ctrl+C/V)とは別に動作する。個人的にはこちらの方式のほうが便利だ
興味深いのは、私たちが一般に「ターミナルエミュレータ」と呼んでいるプログラムが、実際には ターミナルを完全にはエミュレートしていない ことだ
しかし今ではそれも可能だ。MAMEでVT102を実際にエミュレートする方法 を参照するとよい
WSL でも動作し、
socatとmameを接続して本物のハードウェアターミナルのように使える以前、VT220 向けにマウス制御や貼り付け機能を追加した 高水準 VT220 エミュレータ を作ってみたいと思っていたのだが、この記事を見てまた思い出した
KDE の Konsole が上位に入っていてうれしい
何十年も前からあるターミナルなのに、最新のターミナルと 性能面で互角に競争 している
カスタマイズの自由度が高く、速度も十分に速い
Dolphin で右クリックするだけで現在のフォルダで Konsole を開ける点が特に良い
無限スクロールバック 機能も便利だ。古いログがファイルに自動退避され、捨てられない
Ctrl+Shift+X に完全初期化のショートカットを設定して、よく使っている
関連資料としては
一覧に DECterm が入っていない
DECterm 概要文書 を見れば分かるように、X Window System 上で最高の VT220 エミュレーション を提供していた
VT100 の “double wide” や “double high, double wide” 文字モードをサポートするターミナルはほとんどない。あの巨大な文字はかなり面白かった
しばらく Alacritty を快適に使ってきたが、最近 Ghostty を使ってみて驚いた
複数のコンピュータで作業するときに便利な 内蔵テーマセレクタ があり、とても使いやすい
全体的に Alacritty より優れた代替に見える。開発者たちは本当に良い仕事をしたようだ
tmux でそれらしく再現はできるが、まったく同じではない
Ghostty に Windows 対応まで追加されれば完璧になりそうだ
ターミナルが特定の 文字リストのフォント対応可否を問い合わせ できるとよい
そうすれば TUI プログラムが最新の Unicode や 私用領域文字(例: powerline、font-awesome アイコン) を使うとき、未対応なら自動的に代替文字を表示できるはずだ
Windows Terminal への言及が少ないのが残念だ
Linux 側のエコシステムのほうが豊かではあるが、今では WT は多くの Linux ターミナルよりはるかに上位にいる
10 年前には想像もできなかったことだ
ちなみに時々 この動画 を見返すのだが、開発者名が隠された イースターエッグ があって気に入っている
タブ、テーマ、ウィンドウ名の変更が素晴らしく、各ウィンドウの用途をひと目で把握できる
Foot ターミナルも素晴らしい
Wayland 専用だが 軽量で高速に起動 し、リソース使用量も少ない
Ghostty も良かったが、空のターミナルを1つ開くだけで メモリ使用量が10倍以上 違う
macOS 標準ターミナルは今回の結果で 29位 だった
それでも最近のバージョン(macOS 26)では Powerline と 24 ビットカラーをサポートしている
Kitty は機能は良いのですが、メンテナーが情けない人間なので、Ghostty という代替が生まれたのはうれしいですね。
結局 iTerm2 に戻ってきた