Show HN: OmniPTY – macOS および Linux 向けの意見を反映したターミナルエミュレータ
Show HN: OmniPTY – Opinionated terminal emulator for macOS and Linux (github.com)
要約
OmniPTYは、Rustで完全に書かれたmacOSおよびLinux向けのネイティブターミナルエミュレータです。tmux、ファイルマネージャー、プロンプトフレームワークなどの一般的なターミナルツールを内蔵しており、設定は単一のTOMLファイルで行えます。GPUレンダリングとAlacrittyのターミナルエミュレーションを採用し、高いパフォーマンスと互換性を実現しています。アカウント登録やテレメトリは一切不要で、プライバシーに配慮した設計です。
全文翻訳
OmniPTY
[画像: OmniPTYアイコン — 錆びたリングの中のターミナルプロンプト]
通常、ターミナルに追加するツールが、最初から組み込まれています。
Rustで完全に記述された、macOSおよびLinux向けのネイティブターミナル。
About · Download · Documentation · Contributing · Discord
[画像: 最新リリース] [画像: CI] [画像: MITライセンス] [画像: Discordに参加]
About
ターミナルが実際にはターミナルに多数のアドオン(分割やセッションのためのtmux、別のペインでのファイルマネージャー、プロンプトフレームワーク、コピーモードプラグイン)を追加したものになっている場合、OmniPTYはそれらをすべて組み込んでおり、すべて1つのTOMLファイルから設定でき、保存時にリロードされます。
GPUレンダリングはGPUI(ZedのUIフレームワーク)で行われ、エミュレーションはalacritty_terminalが担当しているため、vim、htop、tmux自体も問題なく動作します。アカウント不要、AI不要、テレメトリ不要:OmniPTYがネットワークに問い合わせるのは、新しいリリースがあるかどうかだけです。
OmniPTYはバージョン0.9.0まではOxideと呼ばれていました。インストール済みのコピーはアップデート時に引き継がれます。Homebrewやドットファイルからのアップグレードについては、Oxideからのアップグレードを参照してください。
他との違い
- 常に追従するファイルツリー。 ペインの横にあるvim風のドロワーで、シェルが
cdするたびにルートが変更されます。yで選択したパスをプロンプトにドロップし、cmd-clickで出力中のpath:lineをエディタのその行で開きます。 - tmuxセッションの代わりにワークスペース。 名前付きのタブと分割のセット。1つをピン留めすると、同じレイアウト、ディレクトリ、起動コマンドで再オープンされます。
- tmuxの操作感、tmuxなしで。
ctrl-wによる分割、ズーム、入力のブロードキャスト、スクロールバック全体でのvimコピーモード。 - コマンドの実行結果を把握。 ステータスバーでの実行時間、バックグラウンドペインの失敗時の赤色点滅、長時間または失敗したコマンドのデスクトップ通知、すべてのペインで検索可能な履歴。
- 現在地を把握。 ステータスバーのGitブランチとステータス。
sshセッションはホストを表示し、ホストごとのアクセントで本番環境に赤い境界線を表示できます。 - インライン画像。 kitty、iTerm2、sixelグラフィックスが、テキストのようにスクロールバック内に表示されます。
- 自分好みにカスタマイズ。 システムのライトモードとダークモードに追従する25種類のテーマ、キーバインドの再設定、ドットファイルに一切触れないオプションのPowerlineプロンプト。
ダウンロード
macOS 12以降、Apple SiliconまたはIntel:
brew install --cask omnipty-terminal/tap/omnipty
または、署名および公証済みのDMGをダウンロードしてください。OmniPTYはそこから自身を最新の状態に保ちます。
Linux x86_64、WaylandまたはX11: リリースtarballは~/.localに./install.shでインストールされ、Archユーザーはpackaging/aurのpacmanパッケージをビルドできます。
要件、すべてのインストールルート、ソースからのビルドについては、インストールドキュメントを参照してください。
ドキュメント
ドキュメントはomnipty.com/docsにあり、各機能のページに加え、設定、キーバインド、トラブルシューティングがあります。 変更履歴には各リリースが記載されており、iTerm2、Ghostty、kitty、WezTerm、Alacritty、Warpとの正直な比較もあります。
ロードマップ/目標
OmniPTYはすでに、開発者が通常追加する機能が満載です。
この短いロードマップと目標リストは、OmniPTYをさらに改善し、より多くの開発者にリーチすると同時に、潜在的なエラーを発生時に即座に検出し修正をリリースするための次のステップとなります。
| # | Goal | Status |
|---|---|---|
| 1 | Rename to OmniPTY | ✅ |
| 2 | Add Sentry for Error/Crash reporting | 🛠️ |
| 3 | Global workspace/tab/pane name search and jump-to | ❌ |
| 4 | Windows port | ❌ |
OmniPTYが成長するにつれて、このリストも増えていきます。また、網羅的ではないため、ここに記載されていない小規模な機能追加や修正がある場合もあります。
機能リクエストがある場合は、機能リクエストセクションを参照してください。
貢献
プルリクエストを歓迎します。CONTRIBUTING.mdには、ビルドの実行方法、コードの構成方法、変更に伴って更新すべき内容が記載されています。小規模な修正以上のものについては、まずイシューを開いて、コードを書く前に話し合いましょう。
Rustに慣れていない方? GitHubでのスポンサーやコーヒーの購入も助けになります。
イシューと機能リクエスト
イシューを開くと、バグレポートまたは機能リクエストのテンプレートを選択できます。アプリからもアクセスできます:Help → Report an Issue (Linuxでは☰メニュー)、またはコマンドパレットのReport an Issue。
質問やセットアップのヘルプはDiscordへどうぞ。セキュリティに関する問題は、security@omnipty.comまでプライベートにご報告ください。
ライセンス
MIT、LICENSEを参照してください。OmniPTYはGPUIとalacritty_terminalを基盤としており、両方ともApache-2.0ライセンスです。