このプロジェクトについて
mTermは、Swiftで書かれたネイティブmacOSターミナルエミュレータで、ウィンドウにAppKit、ターミナルビューにMetalレンダラーを使用しています。Macネイティブな感触、GPUクラスのレンダリング、そして大規模な設定画面ではなく意図的に小さな機能セットを求める開発者向けのiTerm2の代替として位置づけられています。AI機能、クラウドアカウント、シェルの再考を明示的に避けています。
レンダリングとターミナルエミュレーション
ターミナルビューはMetalレンダリングで、ピクセルスナップされたグリフアトラスを使用し、GPUフィルタリングのぼやけなしに、あらゆるサイズでテキストを鮮明に保つことを目的としています。太字と斜体は、合成された傾きではなくフォントの実際のフェイスを使用し、列が揃うように同じアドバンス幅を持ちます。下線、フェイント、インバース属性がサポートされており、それらをオフにするコードも含まれます。リサイズはバッファをリフローします。折り返された行は新しい幅で再結合および再分割され、ドラッグ中にグリッドサイズの読み出しが表示されます。
互換性は、vim、neovim、htop、fzf、less、gitページャーなどのツール向けにxterm-256colorをターゲットにしています。24ビットトゥルーカラー、オルタネートスクリーン、スクロール領域(DECSTBM)、DECライン描画、同期出力(DEC 2026)をサポートします。マウスレポートは、クリック、ドラッグ、モーション、ホイール用のSGR(1006)およびレガシーエンコーディングをカバーし、代わりに選択するには⇧を押します。ブラケットペースト、フォーカスイベント、デバイス/カーソル位置レポートが含まれます。東アジアおよび全角文字は2列を占め、結合マークは前のグリフに合成されます。
タブ、ナビゲーション、コマンドハブ
AppKitウィンドウには、ドラッグして並べ替えられるタブ付きサイドバーがあり、フルスクリーンをサポートし、セッション(タブ、そのディレクトリ、プロファイル)を復元します。⌘Kは、すべてのウィンドウのすべてのタブとすべてのメニューバーコマンドの上にハブを開き、1つのリストにランク付けします。タブ行には、インデックス、実行状態、タイトル、ディレクトリ、フォアグラウンドプロセスが表示されます。空のクエリは最近のタブをリストし、前のタブが選択されているため、⌘K ⏎で戻ります。⌘⌫はハイライトされたタブを閉じます。アクションは、「cls」でClear Screen、「blurry」でストロークウェイトなど、ユーザーが思いつくであろう単語で検索可能で、設定が開き、そのコントロールにフォーカスリングが表示されます。
シェル統合とtmux
zsh、bash、fish用のシェル統合は、OSC 133を使用して、終了ステータスで色分けされたガターのプロンプトマーカーと⌘↑ / ⌘↓のプロンプトジャンプを追加します。ユーザーのrcファイルは変更しません。代わりに、各シェルはラッパー(zsh用ZDOTDIR、bash用--rcfile、fish用vendor_conf.dスニペット)を取得し、最初に実際の起動ファイルをソースします。tmuxコントロールモードがサポートされています。tmux -CCを実行すると、各tmuxウィンドウが実際のmTermタブになり、⌘Tと⌘Wがtmuxウィンドウの作成とクローズにマッピングされ、名前変更とウィンドウ切り替えが双方向でtmuxに従います。タブにはそのウィンドウのアクティブペインが表示されます。一度に1セッションのみ。デタッチするとタブが終了します。
リンク、トリガー、プロファイル
⌘クリックでリンクが開きます。URLはブラウザに、ファイルパスはFinderで表示されます。リンクは、ポインタがリンクの上にあり⌘が押されている間だけ視覚的に区別され、そのときリンクはテーマのアクセントカラーと下線を取り、カーソルは手になります。ディスクに存在するパスのみが提供され、行をまたがって折り返されたURLは1つのアドレスとして扱われます。⌘クリックで、インラインコードや引用ドラフトなど、色で区切られたテキストをコピーすることもでき、テキストと文字数を示す確認が表示されます。
トリガーは、正規表現とアクションを組み合わせます。ハイライト、再色付け、下線、URLとして開く、Finderで表示、$1をマッチとしてコマンドを実行。設定でインラインテスターを使用して編集され、triggers.jsonに保存されます。ユーザールールは、URLとファイルパスの2つの組み込みルールの前に試行され、これらは無効化できますが編集はできません。プロファイルは、名前付きコマンド、開始ディレクトリ、環境、オプションの固定テーマを定義し、profiles/の下にそれぞれ1つのJSONファイルとして保存されるため、共有またはコミットできます。ファイル > プロファイル付き新規タブまたは⌘⌥1–9で開き、⌘Tはデフォルトプロファイルを使用します。
設定、テーマ、構成
設定ウィンドウには、外観、プロファイル、トリガー、一般、通知のペインがあり、名前または口語的な説明でコントロールを見つける検索フィールドがあります。テーマには、Tomorrow Night、Solarized(ライトとダーク)、Nord、Dracula、Gruvbox Dark、mTerm独自のライトとダークが含まれ、iTerm2 .itermcolorsファイルのインポートと自動ライト/ダーク切り替えがあります。フォントファミリー、サイズ、ストロークウェイト、行間隔(1.0×–2.0×、デフォルト1.15×)はライブで調整可能です。スクロールバック深度は1kから100k行まで構成可能で、タブごとのコストが表示されます。macOS通知は、ターミナルの注意イベント(ベル、OSC 9 / OSC 777)をカバーします。実行中のフォアグラウンドプロセスに対するクローズ確認とClear Screen確認は切り替え可能です。構成は~/Library/Application Support/mTerm/のsettings.json、state.json、profiles/*.json、triggers.jsonにあります。v1には別の構成ファイルはありません。
インストールとステータス
インストールは、Homebrew cask(brew install --cask d0x2a/tap/mterm)、署名および公証済みのユニバーサルDMG、またはmacOS 14+とXcode 15+(またはSwift 5.10+コマンドラインツール)でソースからビルドし、swift run -c release mTermを使用します。プロジェクトはv1.3.1で、SPEC.mdの定義済み完了項目がすべて出荷されたと述べています。スクロールバックメモリターゲットは余裕を持って達成されていますが、スループットは仕様の目標数値を下回っていると報告しています。両方の測定とハーネスはdocs/BENCHMARKS.mdに文書化されています。ライセンスはMIT、著作権はDox2A Labs LLCです。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.