memo

2024-05-01

tmux で session の一覧を表示させておきたい

  • tmux で session の一覧を表示させておきたい

    • 複数の window をまとめるのに session を使っているので、開かれている session の一覧を表示させておきたい

      • 多段タブ的なイメージ

    • デフォルトで window の一覧は表示されるけど、それと似たような感じで session も表示したい

  • ということで色々頑張って以下の設定でそれっぽくできた:

    # status line を2行表示
    set-option -g status 2
    
    # status line の2行目に session の一覧を表示する (session 名:window 数)
    set-option -g status-format[1] '#[#{status-style} none]#{S:#{?#{==:#{session_name},#{client_session}},#[fg=white#,bg=blue#,bold]*,#{?session_alerts,#[fg=white#,bg=black]!, }}#[range=session|#{session_id}]#{session_name}:#{session_windows}#[#{status-style} norange none] }'
    
    # マウスクリックやホイールで session を切り替え
    bind-key -T root MouseDown1Status if -F '#{==:#{mouse_status_range},session}' { switch-client } { select-window -t = }
    bind-key -T root WheelUpStatus if -F '#{==:#{mouse_status_range},session}' { switch-client -p } { previous-window }
    bind-key -T root WheelDownStatus if -F '#{==:#{mouse_status_range},session}' { switch-client -n } { next-window }