💻

WSL2でClaude Codeの複数セッションを一括管理するためにtmuxをインストール、およびキーボードショートカットカスタマイズ

に公開

モチベーション

  • プライベート開発での作業をClaude Codeにほぼすべて任せるようになってきた。
  • そこで、シリアルにClaude Codeを動かしていると待ち時間が無駄に感じるようになってきた。
    • 無駄を省きたくなるのがITエンジニアの性(クソデカ主語)
  • 複数ウィンドウを並べるのもアリだけど、1ウィンドウ内にペインを分割表示して一括管理出来た方が取り回しがよいため、実現したくなった。
  • デフォルトのキーボードショートカットに馴染みがなく、自分好みにカスタマイズしたかった。

動作環境

Ubuntu 22.04.05 LTS (WSL2)で確認。

tmuxインストール

Ubuntu (WSL)環境でも、公式ドキュメントのインストール手順通りインストールできる。

sudo apt update
sudo apt-get install -y tmux

キーボードショートカットカスタマイズ

基本的に、以下のマニュアルを元にカスタマイズしていく。
https://man7.org/linux/man-pages/man1/tmux.1.html

設定ファイル作成

インストール直後は設定ファイルが無いため作成する必要あるため、以下コマンドで作成する。

mkdir -p ~/.config/tmux
touch ~/.config/tmux/tmux.conf

キーボードショートカットを登録

以下は、個人的にあったら便利だと思った~/.config/tmux/tmux.confの内容。

# マウスで ペイン選択/スクロール/リサイズなどをできるようにする
set -g mouse on

# 各ペインのスクロールバック(履歴)を増やす
set -g history-limit 200000

# window番号/ペイン番号を1始まりにする
set -g base-index 1
setw -g pane-base-index 1

# windowを閉じた時に番号を詰める
set -g renumber-windows on

# monitor-activity で “出力があった” を監視対象にし、visual-activity で ステータス/表示で通知する
set -g monitor-activity on
set -g visual-activity on

# ベル系の挙動を抑制/視覚通知に寄せる
set -g bell-action none
set -g visual-bell on

# デフォルト分割(" と %)を外して、| と - に割り当て
bind-key | split-window -h
bind-key - split-window -v

# ペイン枠の「ステータス行」を表示(top or bottom)
set -g pane-border-status top

# ペイン枠に表示する文字列(例:1.2 = window 1 / pane 2)
set -g pane-border-format "#{window_index}.#{pane_index} #{pane_current_command}"

# prefix + w + 数字 で window を選択(w=window)
bind-key w command-prompt -p "window(1-9):" "select-window -t :%%"

# prefix + p + 数字 で pane を選択(p=pane)
bind-key p command-prompt -p "pane(1-9):" "select-pane -t :.+%%"

# 設定リロード
bind-key r source-file ~/.config/tmux/tmux.conf \; display-message "tmux.conf reloaded"

少し触ってみての感想

  • 複数ターミナルウィンドウを1つのウィンドウ内に並べられるの便利。
  • ちょこちょこ不便だと感じる部分を自分好みにできるの嬉しい。
  • Claude Codeへのタスクの投げ方を、本格的に並列で行えるように考えないとな。。。

良いtmuxライフを!

Discussion