Windows 向けのターミナルエミュレータ。 複数のシェルを縦タブで並べて使えて、タブごとに色分けでき、よく使う作業環境を「プリセット」として保存して起動時や新規タブから呼び出せる。Rust + egui 製で軽快に動く。
- 縦タブで並行作業 — PowerShell やコマンドプロンプトなど複数のシェルを 1 ウィンドウにまとめられる。タブはドラッグで並べ替え、ダブルクリックで改名、閉じる時は確認ダイアログで誤操作を防止。
- タブごとに色分け — タブ単位で背景色・アクセントカラーを設定。「本番用は赤」「ローカルは青」のように一目で見分けられる。
- プリセット(型) — よく使うタブ構成(名前・シェル・作業フォルダ・色・起動コマンド)を「プリセット」として保存・複製できる。起動タブや新規タブ(+)から選ぶと、その型からタブを実体化する。名前は一意(重複・空は警告表示)。
- 起動タブ — 起動時に開くタブを並べておくと、次回から自動でその環境が開く。各行は「マニュアル」(その場で定義)/「プリセット参照」を切り替えられ、参照が解決できないときはタブ名に警告印(⚠)を付けて知らせる。
- Explorer から直接開く — フォルダ(またはフォルダ内の空白)を右クリック →「LustTermina で開く」で、そのフォルダをタブで開ける。既に起動していれば新しいタブとして追加される。インストール時に登録される。
- スクリプトを右クリックで実行 —
.ps1/.bat/.cmdを右クリック →「LustTermina で実行」で、そのファイルのあるフォルダを作業フォルダにして実行(実行後もシェルは開いたまま出力を確認できる)。.ps1は「プログラムから開く」の一覧にも LustTermina が並ぶ(候補に出るだけで、既定のアプリは変更しない)。 - 日本語入力・表示に対応 — IME での日本語入力、日本語の表示どちらも OK。
- マウスで選択 → コピー — ドラッグで範囲選択して
Ctrl+Cでコピー、Ctrl+Vで貼り付け。 - スクロールバック — マウスホイールで過去の出力(最大 1 万行)を遡れる。入力すると最新位置へ戻る。
- 設定は画面から — 既定のシェル・作業フォルダ・テーマ・タブパネルの左右配置を GUI で変更。変更内容はファイルに保存され、次回も引き継がれる。
- 見た目 — シェルの種類ごとにアイコンを表示。ウィンドウ/タスクバーにも独自アイコン。
タブごとに色分け — 環境ごとに背景色・アクセントカラーを割り当てて見分けられます。
![]() |
![]() |
タブパネルは左右どちらにも — タブの列を好みの側に配置できます。
![]() |
![]() |
色の設定 / 対応シェル — 色はパレットから選択(「起動タブに追加」で起動構成にも保存)。対応シェルは PowerShell 7・Windows PowerShell・コマンドプロンプト・VS Developer・Git Bash・WSL をアイコン付きで選べます(一覧に出るのは実際に導入済みのシェルです)。
![]() |
![]() |
プリセット/起動タブの編集 — 設定の「プリセット」タブで、再利用できるタブ定義(型)を追加・複製・並べ替えできます。「起動タブ」タブでは起動時に開くタブを並べ、各行を「マニュアル」(その場で定義)か「プリセット参照」に切り替えられます。「現在のタブ構成を抜き出す」で、今開いているタブをそのまま起動構成に保存することもできます。
日本語の表示・入力にも対応 — IME での日本語入力、日本語の表示どちらにも対応しています。
システム設定 — 現在のバージョン、設定データの管理(データフォルダを開く/初期化)、アンインストールをまとめています。
インストーラ(更新対応) — 配布 exe を起動すると導入先(このユーザー専用/PC 全体)を選べます。導入済みなら現在の版を検出して「更新/再インストール」を出し分けます。
- Windows 10 / 11
- ビルドする場合は Rust ツールチェイン
Releases からビルド済みの exe を入手できます(インストール不要・単一ファイル)。
ダウンロードした exe はコード署名していないため、初回起動時に Microsoft Defender SmartScreen が
Windows によって PC が保護されました
と警告を出すことがあります。これは「署名が無く、まだ実行実績の少ない」アプリに対する Windows の既定の挙動で、アプリの中身を危険と判定しているわけではありません。
起動する手順:
- 警告ダイアログの 「詳細情報」 をクリック
- 下に現れる 「実行」 ボタンを押す
または、ダウンロードした .exe を 右クリック → プロパティ → 全般タブ下部の「ブロックの解除」にチェック → OK しておくと、以降は警告なしで起動できます。
気になる場合は、下の「使い方」からソースをビルドしてください(自分でビルドした exe にはこの警告は出ません)。
リポジトリを取得してそのまま起動:
git clone https://github.com/Capsicum0907/LustTermina.git
cd LustTermina
cargo run(初回は依存クレートのコンパイルで数分かかります。以降は数秒。)
日常使い(ダブルクリックで起動したい場合):
cargo build --releaseで target/release/lust_termina.exe ができるので、これを指すショートカットをデスクトップ等に置くだけ。コンソール窓は出ません。ショートカットの「作業フォルダ」をホームにしておくと、シェルがホームから始まります。
設定は次のファイルに自動保存されます(手で編集してもOK):
%APPDATA%\LustTermina\config.toml
プリセット(型)は [[presets]]、起動時に開くタブは [[startup_tabs]] に並びます。起動タブの各行は マニュアル(その場でインライン定義)か プリセット参照 のどちらかです。参照は use_preset = true を明示し(これがモードの唯一の判断材料。use_preset が無ければ preset 値があってもマニュアル扱い)、preset に参照するプリセット名を入れます。
[[presets]]
name = "Atrium" # プリセット名=タブ名。ライブラリ内で一意にする
shell = "pwsh"
cwd = 'C:\work\Atrium'
accent = "#19C37D"
commands = ["claude"]
[[startup_tabs]] # プリセット参照
use_preset = true
preset = "Atrium"
[[startup_tabs]] # マニュアル(インライン定義)
name = "作業"
shell = "cmd"0.2.x までの [[startup_tabs]](インライン定義のみ)はそのままマニュアルの行として読めます(移行不要)。
起動タブの「起動コマンド」は、直前の出力が静まってから次の行を送る方式で投入します。これにより claude のような対話型 TUI(自前で入力を1文字ずつ処理するアプリ)にも、起動を待ってスラッシュコマンド等を順に入力できます。特定のアプリ名を特別扱いはしていません。
通信待ちなどで一時的に出力が止まるコマンド(例: /remote-control)が稀に取りこぼされる場合は、config.toml に次を足して静穏窓を広げてください(GUI には出ない設定です):
startup_quiet_ms = 1500 # 各入力の後、出力がこのミリ秒静まったら次へ(既定 800)
startup_max_wait_ms = 8000 # 出力が止まらないアプリで固まらないための待ち上限(既定 8000)なお、あるフォルダで claude を初めて起動するときはフォルダの信頼確認ダイアログが出ます。これは起動コマンドの投入とは別で、先に一度手動で承認しておくと以降の起動が安定します。
exe はそのままでも起動できます(単一ファイル・インストール不要)。インストールすると、スタートメニューと、右クリックの「LustTermina で開く」/スクリプトの「LustTermina で実行」が登録されます。
初回に未インストールの exe を起動すると、インストールするか尋ねられます(**「このユーザー専用」**=管理者権限不要 / **「PC 全体」**=管理者権限が必要、をラジオボタンで選択)。固定パスに入るので、新しい版は同じ exe をもう一度インストールするだけで上書き更新できます(アンインストール不要)。
アンインストールは次のいずれからでも行えます:
- アプリの 設定 →「システム」タブ →「アンインストール」
- インストールフォルダ内の
Uninstall LustTermina.lnk - Windows の 「アプリと機能」
いずれも本体・ショートカット・右クリック項目をまとめて削除します。設定データ(%APPDATA%\LustTermina)も消すかは、アンインストール時のチェックボックスで選べます(既定は残す)。「システム」タブからは、データフォルダを開く/設定を初期化することもできます。
- 選択範囲をスクロールに追従させる処理
- CJK 全角文字の幅計算(描画はされるが幅の扱いは素朴)
- イタリック表示(属性は取得するが斜体フォント面が未ロード)
- マウスレポート / 差分描画(性能最適化)
- IME のインライン変換(現状は候補ウィンドウのみ)
シェルの入出力を仮想端末(ConPTY)経由でやり取りし、端末エスケープを解釈してグリッド化、それを GPU で描画しています。
シェル ⇄ portable-pty(ConPTY) ⇄ alacritty_terminal(グリッド) → egui で描画
↑ 入力: egui → エンコード → pty
- 本体は
src/main.rsに集約。 - PTY の読み取りは別スレッドで行い、共有した端末状態を更新して再描画を要求。
- 色は 16 / 256 / truecolor、per-cell 背景色、反転・bold・dim・下線・取り消し線の属性に対応。
主な依存:
eframe0.35(egui 同梱、wgpu バックエンド)portable-pty0.9(ConPTY)alacritty_terminal0.26(VT/グリッド解釈)
Lust ×(Rust)の L/R 引っかけ + Termina(terminus=終端)。カナ「ラスト」は Lust / Rust / Last の三重掛け。
MIT または Apache License 2.0 のデュアルライセンス。好きな方を選んで使えます。
アイコン表示に Material Icons(© Google, Apache License 2.0)を同梱しています。










