tmuxのステータスラインのクリックでセッションを切り替える方法

tmuxのウィンドウの切り替えはキーバインドの他、ステータスラインのマウスクリックでもできます。vim-jpのSlackで、「設定すればセッションもクリックで切り替えられる」と教えてもらったので設定しました。この記事はその備忘録です。

## 元のステータスライン

筆者のステータスラインはこんな感じです。左側の青い部分がセッション一覧です。

ステータスバーにもセッション情報を表示

カレントセッションは「アイコン+名前」、それ以外はアイコンだけにしています。今回は、この見た目はそのままにしてクリックサポートだけ追加します。

マルチセッション・ステータスライン設定方法はそれぞれ別の記事に詳しく書いています。

## 設定方法

設定方法は単純です。ステータスラインで指定する文字列のうち、クリック範囲にしたい部分を#[range...]#[norange]で囲みます。

if [ "$session" = "$current_session" ]; then
# カレントセッション:アイコン+名前+区切り
output+="#[range=session|$session_id]#[bg=$color,fg=$text_fg]$icon $session_name#[norange]#[bg=$bg,fg=$color] "
else
# その他:アイコンのみ
output+="#[range=session|$session_id]$icon #[norange]"
fi

#[range=session|セッションID]と書くことで、そこから先の範囲をクリックしたときにそのセッションに切り替えられます。

筆者の2026年1月8日時点でのステータスライン設定の全体はdotfilesにあります。

もっと詳しい仕様はman 1 tmux^\s*rangeみたいな検索すると出てきます。

## 実際に切り替えてみる

こんな感じです。


以上、マウスクリックによるセッション切り替えの設定方法でした。
ターミナル外のGUI操作メインのときにマウスクリックしたくなるので満足です。あと単純にウィンドウ切り替えができるならセッションでもできた方がなんかかっこいい。