tmux の status line の設定方法

  • 129
    Like
  • 0
    Comment
More than 1 year has passed since last update.

status line の設定方法について調べたのでここにメモしておきます。

status line の構成

tmux の status line は下図のように 3 つの部分から構成されています。

tmux-statusline-1.png

status-left の部分はデフォルトではセッション名が表示されています。
status-right の部分はデフォルトでは現在のウィンドウのタイトルと、現在時刻が表示されています。
window-status にはデフォルトではウィンドウのインデクス、名前、フラグが表示されます。

status line の設定

とりあえず、下のような status line を設定してみました。サンプルとして、無駄にロードアベレージを表示しています。

tmux-statusline-2.png

# status line を更新する間隔を 1 秒にする
set-option -g status-interval 1

# window-status を中央揃えで配置する
set-option -g status-justify "centre"

# status line の背景色を指定する。
set-option -g status-bg "colour238"

# status line の文字色を指定する。
set-option -g status-fg "colour255"

# status-left の最大の長さを指定する。
set-option -g status-left-length 20

# status-left のフォーマットを指定する。
set-option -g status-left "#[fg=colour255,bg=colour241]Session: #S #[default]"

# status-right の最大の長さを指定する。
set-option -g status-right-length 60

# status-right のフォーマットを指定する。
set-option -g status-right "#[fg=colour255,bg=colour241] #h | LA: #(cut -d' ' -f-3 /proc/loadavg) | %m/%d %H:%M:%S#[default]"

# window-status のフォーマットを指定する。
set-window-option -g window-status-format " #I: #W "

# カレントウィンドウの window-status のフォーマットを指定する
set-window-option -g window-status-current-format "#[fg=colour255,bg=colour27,bold] #I: #W #[default]"

サンプルから分かる通り、status-left, status-right, window-status-[current-]format で status line に表示する文字列のフォーマットを指定できます。特殊文字列を指定することで、色を変えたり、シェルの出力を表示したりできるので、結構柔軟にいろいろなものを表示できるようになっています。

status line で指定できる特殊文字列

以下の特殊文字列が指定できます。

Character pair Replaced with
#(shell command) コマンドの出力の最初の行
#[attributes] 色や属性の変更
#H ローカルホストのホスト名
#h ローカルホストのドメイン名を除いたホスト名
#F カレントウィンドウのフラグ
#I カレントウィンドウのインデクス
#D カレントペインの識別子
#P カレントペインのインデクス
#S セッション名
#T カレントペインのタイトル
#W カレントウィンドウの名前
## #

#(shell command) で実行した結果の文字列に #[attributes] が含まれている場合、attributes にしたがって色や属性の変更が起こります。それ以外の特殊文字列が含まれていても無視されるようです。

#24T のように特殊文字の前に数字を書くと最大長を指定できます。

また、上記の特殊文字列に加えて、%Y-%m-%d %H:%M:%S などの strftime が認識する特殊文字列も書くことができます。

attributes に指定できる文字列

#[fg=colour255] のように色を指定できます。指定できる色については、下記の色一覧を参照してください。

また、#[bold] というように色以外にもいくつかの属性を設定できます。設定できる属性は以下の通りです。

  • bright (or bold)
  • dim
  • underscore
  • blink
  • reverse
  • hidden
  • italics

複数の属性を指定するときはコンマで区切って指定します。

また、#[default] と書くと属性をリセットできます。

色一覧

tmux-powerline についてくる color_palette.sh を実行すると色一覧を出力してくれます。

tmux-colours.png

参考文献