WezTermタブを整理する:Luaで実現した見やすい設定集
本記事はVim駅伝の2026-03-13の投稿です。
前回の記事はmikoto2000さんによるローカル LLM でコード補完する Vim プラグインを作ったでした。
はじめに
WezTermを使い始めてから、タブをたくさん開くようになりました。しかし、どのタブがどのディレクトリで、どのタブがどのサーバーに繋がっているのか、ぱっと見では判別しづらい状況になりがちでした。
そこで、Luaで書けるWezTermの設定ファイルを使って、タブバーを見やすくカスタマイズしました。
WezTermのタブ操作について、タブの見た目・タイトル表示・SSH色分け・キーバインドの4つの観点で書いていきます。
タブバーの見た目を整える
最初にタブバーを何も設定していない時の状態を見てください。
Claudeが影分身の術を使っていて何が何だかわかりません。且つ、自分がどのディレクトリでタブを開いているのかローカルなのかstgなのか本番なのか、どこにいるのかわかりません。

常にタブバーを表示する
WezTermはタブが1つのときにタブバーを隠すのがデフォルトです。まぁコレは好みの範囲でしょう。
config.hide_tab_bar_if_only_one_tab = false
config.use_fancy_tab_bar = true
アクティブタブを目立たせる
アクティブタブと非アクティブタブに差をつけることで、今どこにいるかがすぐわかります。
active_tab = {
bg_color = '#7aa2f7', -- 青
fg_color = '#1a1b26',
intensity = 'Bold',
},
inactive_tab = {
bg_color = '#24283b',
fg_color = '#565f89',
},
タブタイトルを工夫する
ディレクトリ名だけを表示する
フルパスをそのまま表示するとタブが横に長くなります。末尾のディレクトリ名だけを取り出すようにしました。
添付画像を見てわかるようにClaudeが表示されるのではなく、どこで作業しているのかがすぐにわかります。

以下の図は、CWD URIからタブタイトルを決定する流れです。
flowchart TD
A[CWD URIを取得] --> B[ホスト名を抽出]
B --> C{リモートホスト?}
C -->|No| D[ホームディレクトリを~に短縮]
C -->|Yes| E[リモートフラグをONにする]
D --> F[末尾のディレクトリ名を取得]
E --> F
F --> G[タブタイトルとして使用]
ポイントは2つあります。まず、ローカル環境ではホームディレクトリのパスを ~ に短縮します。次に、[^/]+$ というパターンで末尾のディレクトリ名だけを取り出します。
path = path:gsub('^' .. home, '~')
return path:match('[^/]+$') or path, is_remote
これにより、/Users/hogehoge/fugafuga/dotfiles は dotfiles と表示されます。
タブ番号も一緒に表示する
タブタイトルには番号も付けています。Cmd + 数字 でのジャンプに迷いがなくなります。
local title = string.format(' %d: %s ', n, dirname)
環境ごとにタブを色分けする
複数のサーバーに接続しながら作業する場合、タブの色だけで「今どのサーバーか」がわかると非常に便利です。
本番環境は赤にすることで下手なことしないように注意できます。

以下の図は、タブの色を決定するロジックです。
flowchart TD
A[format-tab-titleイベント] --> B{WEZTERM_ENV変数の通知あり?}
B -->|Yes| C[local.luaで定義した環境ラベルの色を適用]
B -->|No| D{CWD URIがリモートホスト?}
D -->|Yes| E[パープル系で表示]
D -->|No| F[デフォルトのタイトルを返す]
シェルからの通知で色を変える
SSH接続時に、シェルスクリプト側で WEZTERM_ENV というユーザー変数を通知します。WezTermはそれを受け取って、事前に local.lua に設定した色でタブを塗り分けます。
wezterm.on('user-var-changed', function(_, pane, name, value)
if name ~= 'WEZTERM_ENV' then return end
pane_env[pane:pane_id()] = value ~= '' and value or nil
local win = pane:window()
if win then win:set_config_overrides({}) end
end)
キーバインド
タブの見た目を整えたあとは、操作性も合わせて整備しました。
| 操作 | キー |
| 新規タブを開く | Cmd + T |
| タブを切り替える | Ctrl + ← / → |
| タブを並び替える | Cmd + Shift + ← / → |
| 番号でタブに飛ぶ | Cmd + 1〜5 |
終わりに
WezTermのタブバーは、設定次第で見やすさと使いやすさが大きく変わります。この記事でご紹介した工夫を導入してから、複数タブや複数サーバーを同時に扱う場面でも効率よく作業ができるようになりました。
タブタイトルの整理、SSH環境の色分け、キーバインドの整備は、どれも小さな変更です。積み重なることで毎日の作業効率に効いてきます。
では、快適なターミナルライフをお過ごしください🚀
コメントを残す