![【Linux備忘録】[WezTerm入門] 美しい!高機能!次世代ターミナル徹底ガイド(Windows対応)](https://humanxai.info/images/uploads/linux-wezterm.webp)
はじめに
Linux Debianのインストール環境を整えていく中で、AIにおすすめアプリを聞くと、複数の候補の中で目に留まった「WezTerm」というターミナル用アプリ。
かなり細かくカスタムできることが分かり、早速導入していじってるのですが、設定項目が多いので備忘録を兼ねてメモを残したいと思います。
対応OSは、Linux以外に、WIndowsと、Macにも対応してますが、今回はWIndowsで試してます。

🛠 インストール方法(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
に慣れると「手になじむターミナル」になる- 今後は「スクリプト自動化」や「起動時にレイアウト復元」なども紹介予定
💬 コメント