Ghostty 1.0 リリース - 高速なクロスプラットフォーム端末エミュレータ
(ghostty.org)- 高速で多機能なクロスプラットフォーム端末エミュレータ。macOS/LinuxでネイティブUIをサポートし、GPUアクセラレーションを使用
- 柔軟なキーバインド、さまざまなカラーテーマ、豊富な設定オプションを提供
主な特徴
1. ネイティブバイナリ
- macOSとLinuxでネイティブアプリケーションとして動作
- macOS: GUIはSwiftで書かれており、AppKitとSwiftUIを使用
- Linux: GUIはZigで書かれており、GTK4 C APIを使用
- プラットフォーム固有のUIコンポーネントを使って、タブ、分割画面、エラーメッセージなどの機能を実装
- 標準的なキーボード/マウスショートカットを各プラットフォームの慣習に合わせてサポート
- プラットフォームごとの固有機能を統合
- macOS: Quick Look、Force Touch、安全な入力API、再起動時のウィンドウ状態復元など
2. 多様な端末およびアプリケーション機能
- 端末機能:
- Kittyグラフィックプロトコル、ライト/ダークモード通知、ハイパーリンクなどをサポート
- Neovim、Zellijなどの端末アプリケーションで、より多くの機能を活用可能
- アプリケーション機能:
- ネイティブタブ、分割画面、macOS向けドロップダウン端末、ライト/ダークモード切り替えなど
3. パフォーマンス
- Ghosttyは、最速クラスの端末エミュレータと同等レベルの性能を目指して設計
- さまざまな性能指標で競争力を持ち、遅いと感じさせないよう最適化
- 例: 起動速度、スクロール速度、IOスループット、フレームレートなど
- 初期ユーザーは、Ghosttyの性能向上が日常的な利用で目に見えて改善されると評価
アーキテクチャ
- Ghosttyの中核は、クロスプラットフォームC-ABI互換ライブラリである
libghostty- 端末エミュレーション、フォント処理、レンダリング機能を提供
- GUIアプリケーションは
libghosttyを基盤として動作- macOSアプリ: Swiftで記述、AppKitとSwiftUIを使用
- Linuxアプリ: Zigで記述、GTK4 C APIを使用
- 端末エミュレーションとGUIの明確な分離により、さまざまな端末エミュレータプロジェクトが
libghosttyを活用できるエコシステムの形成が可能 - 今後の目標:
libghosttyのAPIを安定化し、スタンドアロンライブラリとしてリリース
4件のコメント
私の環境では
weztermは使用中にラグが発生することがありましたが、ghosttyに変えたらかなり使えるようになりました。私の MB Pro がかなり古いモデルだからかもしれませんが、ghosttyのほうがはるかに快適で軽い感じです。使ってみようかと考えているのですが、Linux基準で Wezterm と比べて特筆すべき長所はありますか?
Wezterm のように日本語入力がうまく動いていました。特に Mac で NFC の組み合わせによって日本語フォントの見え方が変わるのも良いですね。Wez のアップデートは停滞しているようです
Hacker Newsのコメント
Ghosttyは過去2年間にわたる情熱的な作業の成果であり、多くの人がこれを使い、その中に込められた愛情と努力を感じてほしい。Ghosttyは他のターミナルより優れていると主張しているわけではなく、それぞれ異なる設計目標とトレードオフがある。Kitty、WezTerm、Foot、iTerm2、Rioなど、さまざまな優れたターミナルが存在する。
Ghosttyは高速で高性能であり、特に大量のデバッグ情報を出力する際にターミナルがボトルネックにならない。開発環境では大きな違いを生む。
Ghosttyはテキストレンダリングが正確で、必要な機能をすべて備えた非常によく書かれたZigコードで構成されている。Bunの
Bun.stringWidthでは一部のコードが使われている。GhosttyにSession/Workspaceの概念があるのか気になる。Alacrittyとtmuxの統合方式から学べる点がありそうだ。
Ghosttyには"quake mode"という隠し機能があり、macOSでは特定のキーバインディングで設定できる。"quick terminal" ウィンドウのデフォルトの高さを設定するオプションはないが、ウィンドウをドラッグして調整できる。
複数のターミナルエミュレータツールを試した後、wave terminalを選んだという人がおり、MacOSとLinuxで使えるツールの一覧も挙げられている。WarpはVC製品なので使わないとのこと。
Ghosttyの設定生成を支援するコミュニティサイトが役に立つ。
Ghosttyは最近リリースされた高品質なオープンソースソフトウェアであり、サブスクリプションのない未来への希望を与えてくれる。Mitchellに感謝したい。
"platform-native UI" という表現には最初は懐疑的だったが、LinuxではGTK、MacOSではSwiftUIを使うという点が興味深かった。新しいターミナルエミュレータを試すのはいつも楽しい。Bitmapフォントをサポートしていない点は残念だ。
Ghosttyの一部の魔法を説明するブログ記事が興味深い。