status line の設定方法について調べたのでここにメモしておきます。
status line の構成
tmux の status line は下図のように 3 つの部分から構成されています。
status-left の部分はデフォルトではセッション名が表示されています。
status-right の部分はデフォルトでは現在のウィンドウのタイトルと、現在時刻が表示されています。
window-status にはデフォルトではウィンドウのインデクス、名前、フラグが表示されます。
status line の設定
とりあえず、下のような status line を設定してみました。サンプルとして、無駄にロードアベレージを表示しています。
# 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
を実行すると色一覧を出力してくれます。