6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Windows用のtmuxライクなターミナルマルチプレクサ(Rust製)

6
Last updated at Posted at 2026-01-08

image.png

wtmux は、Windows 上で動作する tmux ライクなターミナルマルチプレクサ です。Rust で書かれており、Windows の ConPTY を活用した高い操作性と柔軟性を備えています。

➡ GitHub: wtmux - A tmux-like terminal multiplexer for Windows, written in Rust.

特徴

  • tmux互換キーバインド - おなじみの Ctrl+B プレフィックスコマンド
  • 複数タブ(ウィンドウ) - タブの作成、切り替え、名前変更、管理
  • ペイン分割 - 水平・垂直分割、リサイズ対応
  • ペインズーム - 任意のペインを全画面表示
  • レイアウトプリセット - 5種類のレイアウト(横均等、縦均等、メイン横、メイン縦、タイル)
  • コピーモード - vimライクなスクロールバック操作とテキスト選択
  • 検索機能 - スクロールバック内をハイライト検索
  • カラースキーム - 8種類の組み込みテーマ(default、solarized、monokai、nord、dracula、gruvbox、tokyo-night)
  • 設定ファイル - TOML形式の設定ファイル対応
  • ConPTY対応 - Windows標準の擬似端末
  • 複数シェル対応 - cmd.exe、PowerShell、PowerShell 7、WSL
  • エンコーディング対応 - UTF-8とShift-JIS(CP932)

動作要件

  • Windows 10 バージョン1809以降(ConPTYサポートが必要)
  • Rust 1.70以降(ソースからビルドする場合)

インストール

方法1: リリース版をダウンロード

Releases ページからダウンロード:

  • インストーラー (wtmux-0.1.0-x64-installer.zip) - 一般ユーザー向け推奨
  • ポータブル版 (wtmux-x.x.x-portable-x64.zip) - インストール不要、展開して実行するだけ

方法2: ソースからビルド

git clone https://github.com/fukuyori/wtmux.git
cd wtmux
cargo build --release

# 任意の場所にコピー
copy target\release\wtmux.exe C:\your\bin\path\

使い方

# デフォルト: マルチペインモード
wtmux

# PowerShell 7 + UTF-8
wtmux -7 -u

# WSL
wtmux -w

# シンプルモード(単一ペイン)
wtmux -1

# ヘルプ表示
wtmux --help

コマンドラインオプション

オプション 説明
-1, --simple シンプルモード(単一ペイン)
-p, --powershell Windows PowerShellを使用
-7, --pwsh PowerShell 7を使用
-w, --wsl WSLを使用
-s, --shell <CMD> カスタムシェルコマンド
-u, --utf8 UTF-8エンコーディング
-h, --help ヘルプ表示

キーバインド

すべてのコマンドは Ctrl+B をプレフィックスキーとして使用します(tmuxと同じ)。

ウィンドウ(タブ)

キー 動作
Ctrl+B, c 新規ウィンドウ作成
Ctrl+B, & 現在のウィンドウを閉じる
Ctrl+B, n 次のウィンドウ
Ctrl+B, p 前のウィンドウ
Ctrl+B, l 最後のウィンドウに切り替え
Ctrl+B, 0-9 番号でウィンドウを選択
Ctrl+B, , ウィンドウ名を変更

ペイン

キー 動作
Ctrl+B, " 水平分割(上下)
Ctrl+B, % 垂直分割(左右)
Ctrl+B, x 現在のペインを閉じる
Ctrl+B, o 次のペイン
Ctrl+B, ; 前のペイン
Ctrl+B, ←↑↓→ 指定方向のペインにフォーカス移動
Ctrl+B, Ctrl+←↑↓→ ペインサイズ変更
Ctrl+B, z ペインズーム切り替え
Ctrl+B, Space レイアウトプリセット切り替え
Ctrl+B, q ペイン番号表示(その後0-9で選択)
Ctrl+B, { 前のペインと入れ替え
Ctrl+B, } 次のペインと入れ替え

コピーモード

キー 動作
Ctrl+B, [ コピーモードに入る
Ctrl+B, / 検索モードに入る

コピーモード中:

キー 動作
h/j/k/l または矢印キー カーソル移動
0 / $ 行頭 / 行末
g / G バッファ先頭 / 末尾
Ctrl+U / Ctrl+D 半ページ上 / 下
Ctrl+B / Ctrl+F 1ページ上 / 下
Space または v 選択開始/切り替え
Enter または y 選択範囲をコピーして終了
/ 前方検索
? 後方検索
n / N 次 / 前のマッチ
q または Esc コピーモード終了

履歴機能

wtmuxには、シェルの履歴機能とは別に、独自のコマンド履歴機能が搭載されています。入力したコマンドを記録し、複雑なコマンドを何度も入力する必要がなくなります。

キー 動作
Ctrl+R 履歴検索表示

image.png

その他

キー 動作
Ctrl+B, t テーマ選択
Ctrl+B, b アプリケーションにCtrl+Bを送信
Esc プレフィックスモードをキャンセル

設定

wtmuxは ~/.wtmux/config.toml から設定を読み込みます。

# 一般設定
[general]
default_shell = "powershell"  # cmd, powershell, pwsh, wsl
encoding = "utf8"             # utf8, sjis

# 外観
[appearance]
color_scheme = "tokyo-night"  # default, solarized, monokai, nord, dracula, gruvbox, tokyo-night

# カーソル設定
[cursor]
shape = "block"               # block, underline, bar
blink = true

利用可能なカラースキーム

  • default - デフォルトのターミナル色
  • solarized - Solarized Dark
  • monokai - Monokai Pro
  • nord - Nord
  • dracula - Dracula
  • gruvbox - Gruvbox Dark
  • tokyo-night - Tokyo Night

シェルからwtmuxを検出する

wtmuxは子プロセスが検出できる環境変数を設定します:

REM cmd.exe
if defined WTMUX echo wtmux内で実行中
# PowerShell
if ($env:WTMUX) { "wtmux内で実行中" }
# bash/WSL
[ -n "$WTMUX" ] && echo "wtmux内で実行中"

tmuxとの比較

機能 tmux wtmux
プラットフォーム Unix/Linux/macOS Windows
バックエンド PTY ConPTY
ウィンドウ/ペイン
キーバインド ✓(互換)
コピーモード
検索
レイアウトプリセット
設定ファイル
カラースキーム
マウスサポート
デタッチ/アタッチ
セッション共有 予定
スクリプティング 予定

プロジェクト構成

wtmux/
├── Cargo.toml
├── README.md
├── README.ja.md
├── LICENSE
├── CHANGELOG.md
├── config.example.toml
├── install.ps1
├── build-portable.ps1
├── build-installer.ps1
├── build-inno-installer.ps1
├── installer/
│   ├── wtmux.iss          # Inno Setupスクリプト
│   ├── wtmux.wxs          # WiXスクリプト
│   └── license.rtf
└── src/
    ├── main.rs            # エントリーポイント
    ├── config.rs          # 設定
    ├── copymode.rs        # コピーモード
    ├── history.rs         # コマンド履歴
    ├── core/
    │   ├── pty.rs         # ConPTYラッパー
    │   ├── session.rs     # セッション管理
    │   └── term/
    │       ├── state.rs   # ターミナル状態
    │       └── parser.rs  # VTパーサー
    ├── ui/
    │   ├── keymapper.rs   # キーマッピング
    │   ├── renderer.rs    # 画面描画
    │   └── wm_renderer.rs # マルチペイン描画
    └── wm/
        ├── manager.rs     # ウィンドウマネージャ
        ├── tab.rs         # タブ管理
        ├── pane.rs        # ペイン管理
        └── layout.rs      # レイアウト計算

既知の制限

  • Windowsのみ(ConPTYはWindows専用)
  • デタッチ/アタッチは未サポート(将来のリリースで対応予定)
  • セッション共有は未サポート

ライセンス

このプロジェクトはMITライセンスの下でライセンスされています。詳細は LICENSE ファイルをご覧ください。

謝辞

  • tmux - このプロジェクトのインスピレーション
  • Windows ConPTYチーム - 擬似端末API
  • crossterm - クロスプラットフォームターミナル操作
  • unicode-width - Unicode文字幅計算
6
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?