はじめに
Linux Debianのインストール環境を整えていく中で、AIにおすすめアプリを聞くと、複数の候補の中で目に留まった「WezTerm」というターミナル用アプリ。
かなり細かくカスタムできることが分かり、早速導入していじってるのですが、設定項目が多いので備忘録を兼ねてメモを残したいと思います。
対応OSは、Linux以外に、WIndowsと、Macにも対応してますが、今回はWIndowsで試してます。
追記:2025-07-30 更にカスタムしました
🛠 インストール方法(Windows編)
-
Scoop経由
scoop install wezterm -
インストール後の初回起動と「背景画像表示」などの確認
🚀 基本操作とショートカット
| 機能 | 操作 |
|---|---|
| ウィンドウ横分割 | Ctrl + Shift + Alt + % |
| ウィンドウ縦分割 | Ctrl + Shift + Alt + " |
| ペインの移動 | Ctrl + Shift + →(矢印キー)など |
| ペインの閉じる | Ctrl + Shift + w |
| 新しいタブを開く | Ctrl + Shift + t |
| タブの切り替え | Ctrl + Tab / Ctrl + Shift + Tab |
| コマンドパレット | Ctrl + Shift + p(fzfっぽいUI!) |
🧙♂️ .wezterm.lua カスタマイズ事例
各ユーザーのルートディレクトリ「c:\user(ユーザー名)\」に、.wezterm.luaを作成し、ファイル内に設定を記述。
Linuxなども共通です。
背景画像の設定
config.background = {
{
source = {
File = 'D:\\image\\wallpaper.jpg'
},
hsb = { brightness = 0.05 },
opacity = 0.3,
attachment = { Parallax = 0.5 },
horizontal_offset = 0,
vertical_offset = -800,
}
}
カラースキームと透明度
config.color_scheme = "zenwritten_dark"
config.window_background_opacity = 0.93
PowerShell をデフォルトで起動
config.default_prog = { "pwsh" }
wezterm + fzf + bat でコマンド履歴やログ検索が快適
🧰 各ツールの役割
| ツール名 | 役割 |
|---|---|
| wezterm | 美しくカスタマイズ可能なターミナル |
| fzf | インタラクティブな絞り込み検索ツール(fuzzy finder) |
| bat | catの進化版。シンタックスハイライト付きファイル表示ツール |
🧪 1. コマンド履歴検索
過去のコマンド履歴から、必要なものを一瞬で検索して実行できる。
✅ 実行コマンド:
history | fzf
または Zsh の場合:
fc -l 1 | fzf
選んだコマンドは、Enterキーでそのまま貼り付ける or 実行も可能(シェルの設定による)。
📜 2. 複数ログファイルを絞り込み閲覧(catより快適)
複数のログファイルの中から、目的のエラーやキーワードを高速検索&美しく閲覧。
✅ 例:ログファイルのリストから1つ選び、batで閲覧:
ls *.log | fzf --preview 'bat --style=numbers --color=always {}'
🪄 解説:
ls *.log:カレントディレクトリのログ一覧fzf:絞り込み式検索--preview:右側にbatの内容をプレビュー表示(上下で切り替え可能)
💡 補足:
--preview-window=up:70%などでプレビュー表示のレイアウトも調整可能rg(ripgrep)と組み合わせると全文検索もできる
🧩 3. 組み合わせ応用例:grep結果から選択して開く
rg "エラー" . | fzf --preview 'bat --style=numbers --color=always {1}' | cut -d: -f1 | xargs -r bat
rg:全文検索fzf:結果からインタラクティブに選択bat:美しい表示で開く
💎 WezTerm でさらに快適に
WezTermの設定で fzf を毎回起動するカスタムキーバインドを作成することもできます(Luaスクリプトで実装可能)。あるいは、起動時に自動的にログ表示ペインを開くことも。
📝 まとめ
| 操作例 | 内容 | |
|---|---|---|
| `history | fzf` | コマンド履歴を検索して選択 |
| `ls *.log | fzf –preview` | ログファイルをインタラクティブに選ぶ |
rg + fzf + bat |
エラー検索→プレビュー→詳細表示 |
この3種の神器が揃うと、作業効率と快適度が一気に上がります。
タブごとに作業コンテキストを変えると超効率化
1つのターミナルに全部詰め込むのではなく、 「タブ1つ = 1つの作業目的」 に分離することで、頭の中もスッキリ整理されます。
💼 実用例:タブと作業内容の対応
| タブ名 | 作業内容例 |
|---|---|
1: dev |
コーディング・ビルド作業(例:npm run dev) |
2: git |
Git操作やリモートへのPush/Pull管理 |
3: logs |
エラーログや出力結果のモニタリング |
4: db |
DB操作・マイグレーション(例:psql) |
5: misc |
一時的な検証・テスト・コマンド確認など |
✨ WezTermの強み
WezTermは、タブごとに以下のような状態を 完全に独立して保持 できます:
- カレントディレクトリ
- シェルの履歴
- 環境変数
- 端末の背景・色テーマ(スクリプトで可変)
さらに、画面分割(pane) と組み合わせると…
🖼️ タブ + 分割ペイン:最強の開発環境に
例えば dev タブの中で:
+------------------------------+
| npm run dev (左ペイン) |
| |
| tail -f logs/output.log (右) |
+------------------------------+
などとすれば、開発とログ監視を同時に視認 できます。
⌨️ WezTerm 操作まとめ(再掲)
| 操作 | ショートカット |
|---|---|
| タブを新規作成 | Ctrl + Shift + Alt + t(設定可) |
| タブ間の切替 | Ctrl + Tab / Ctrl + Shift + Tab |
| ペインを縦に分割 | Ctrl + Shift + Alt + " |
| ペインを横に分割 | Ctrl + Shift + Alt + % |
| ペイン間の移動 | Ctrl + Shift + ↑↓←→ |
※
wezterm.luaでカスタマイズ可能
Tips: wezterm.lua にタブ名を動的に表示する
config.tab_max_width = 25
config.use_fancy_tab_bar = true
さらに、wezterm.on("format-tab-title", function(tab) イベントを使えば、現在のディレクトリ名やSSH先のホスト名をタブに表示することも可能です。
まとめ:メリット
- 複数作業を視覚的に明確に分離できる
- 間違って別プロジェクトでコマンド実行する事故が減る
- 作業の切替がタブジャンプだけで済むので高速
**「ターミナルの中でマルチタスクを整理する」**という発想は、コードと向き合う時間をより集中させてくれます。
🌐 WezTerm × WSL/SSH:快適なマルチ環境接続
WezTerm は Windows環境から WSL や リモートLinux に接続する作業 を、タブごとに独立して構成できます。
1. WSLの起動(Windows上)
WezTerm で以下のように .wezterm.lua を記述することで、
UbuntuなどのWSL環境を即起動するタブを定義可能です。
local wezterm = require 'wezterm'
return {
default_prog = { 'wsl.exe', '~' }, -- デフォルトをWSLにする
launch_menu = {
{
label = 'WSL Ubuntu',
args = { 'wsl.exe' }
},
{
label = 'WSL Debian',
args = { 'wsl.exe', '-d', 'Debian' }
},
}
}
🔹 起動方法
WezTerm を起動し、右クリック → Launch Menu や
ターミナル内で Ctrl + Shift + P → Launcher から選択できます。
2. SSH接続先を登録しておく(例:自宅サーバ)
たとえば、よく接続する VPS や Raspberry Pi、Debianサーバなどがある場合:
launch_menu = {
{
label = 'Remote: MyServer',
args = { 'ssh', 'lain@192.168.0.101' },
},
{
label = 'Remote: VPS',
args = { 'ssh', 'fixjp@your-vps-hostname.com' },
},
}
💡 ssh-agentや公開鍵認証を使えば、パスワード不要ですぐ接続できます。
3. タブ分離で同時作業が可能
Tab1: ローカル PowerShellTab2: WSL UbuntuTab3: SSH DebianサーバTab4: SSH VPS
すべてが別々のシェル・環境として並列実行できるので、 「SSH切り替えで時間をロス」「何度も認証でイライラ」といった無駄が減ります。
4. .ssh/config があると更に楽!
# ~/.ssh/config
Host myserver
HostName 192.168.0.101
User lain
IdentityFile ~/.ssh/id_rsa
これで .wezterm.lua からもシンプルに:
{
label = 'My Server',
args = { 'ssh', 'myserver' }
}
💡 さらに便利なTips:
weztermは接続先ごとにタブ名・背景・色を変える設定も可能- 起動直後にカレントディレクトリを指定することもできます
まとめ
| 機能 | メリット |
|---|---|
| WSL起動 | Windows内でも高速にLinuxコマンドが実行可能 |
| SSH登録 | 複数のサーバに瞬時にアクセス |
| タブ分離 + LaunchMenu | マルチ開発環境を1画面で制御できる |
WindowsからLinuxサーバの管理や、開発用WSLの切替も自在にできる。 これが WezTerm の最大の魅力の一つです。
wezterm-mux-server でマルチ端末共有も可能
🧩 wezterm-mux-server とは?
WezTerm は **内部に「tmuxのようなセッション管理機構(MUXサーバ)」**を持っています。
- 複数の WezTerm インスタンス(GUI、CLI問わず)から 同じセッションを共有・再接続できる
- 分割画面やコマンド実行状態を維持したまま、複数端末から操作可能
- リモートでも 接続先にWezTermがあれば、GUIから再接続可能
できること(tmux類似)
| 機能 | 説明例 |
|---|---|
| セッションの再接続 | WezTermを閉じても、次回起動で元の画面を復元可能 |
| 複数WezTermからのセッション共有 | 同じマシン上の別GUIウィンドウや、SSH先のWezTermから再接続可能 |
| コマンド実行状態の保持 | 実行中の top や vim、npm run などをそのまま保てる |
設定方法(シンプル)
WezTerm の .wezterm.lua に以下を追記:
return {
enable_mux = true, -- MUX機能をONに
-- 他の設定と共存可能
}
これだけで、自動的に wezterm-mux-server が起動されます。
セッションの再接続方法
wezterm connect
または GUI 版から起動時に 以前のセッションを選択できます。
複数端末で同じサーバにSSH →
wezterm connectを実行すれば、同じセッションを共有できる!
応用:サーバにWezTermを置いて共有
- 自宅サーバ(Linuxなど)に WezTerm をインストール
- GUIではなく
wezterm connectだけで起動(CLIクライアント) - 複数ユーザー/PCからアクセス → 1つのセッションを共有・同時操作可能
これは、離れた場所から「同じ端末」を一緒に見るような感覚です。 共同作業やトラブル対応にも役立ちます。
補足:現在のセッションを確認するには?
wezterm cli list
で、現在のセッションやペインの一覧が確認できます。
注意点
- MUX機能はセッション永続化に優れる一方で、セキュリティ(アクセス権)に注意が必要です
- 特に共有環境で使う場合は、ローカルユーザー間での制限設定や暗号化通信を検討してください
まとめ:wezterm-mux-server の魅力
| 機能 | 効果 |
|---|---|
| セッションの再接続 | 開いたままにしたい画面を復元できる |
| 多端末共有 | GUIとCLI、複数PC間で同じターミナル画面を共有 |
| 作業効率アップ | tmuxの代替として柔軟かつシームレスに操作可 |
WezTerm は単なる「見た目がカッコいいターミナル」ではなく、 本格的なセッションマネージャーでもあるということですね!
🎁 まとめと今後のカスタマイズ案
weztermは見た目だけでなく、実用性も最高峰.wezterm.luaに慣れると「手になじむターミナル」になる- 今後は「スクリプト自動化」や「起動時にレイアウト復元」なども紹介予定
💬 コメント