tmuxのstatus lineの設定例

#tmux #dotfiles

以下の画像のようなstatus lineにするための,tmuxの設定を紹介する.

通常時のstatus line.左から順に,モード,ホスト名,ウィンドウリスト,メモリの容量,ルートのディスクの容量,load average,日付時刻を表示している.

prefix keyを押下したときのstatus line.モード表示の色を反転させている.また,ホスト名の代わりに一部のキーバインドを表示している.

copy modeにおけるstatus line.モードとcopy modeで使える一部のキーバインドを表示している.

この記事では以下の設定について紹介する.

status lineの色の設定

お好みで.

set -g status-fg black
set -g status-bg white

左側の設定

set -g status-left-length 120
# prefix keyが押されていたら色を反転,copy-modeに入ったら表示を変更
set -g status-left '#{?pane_in_mode,#[bg=yellow] COPY ,#[fg=cyan,bg=black]#{?client_prefix,#[reverse],} TMUX }'
# ホスト名を表示,prefix keyが押されたらwhich-key的なヒントを表示,copy-modeに入ったらwhich-key的ヒントを表示
# #H: ホスト名
set -ga status-left '#[default] #{?pane_in_mode,/: search  v: begin-selection  y: copy  q: cancel,#{?client_prefix,M-1: even-h  M-2: even-v  M-3: main-h  M-4: main-v  M-5: tiled  Space: next-layout  d: detach  Enter: copy-mode  p: paste,#H}}'

?pane_in_modeでcopy modeかどうか,?client_prefixでprefix keyが押されているか判別できる.which-key的ヒント用の文字列はお好みで.status leftに表示する文字列の長さに応じてstatus-left-lengthを変更する.

中央(ウィンドウリスト)の設定

set -g status-justify centre # ウィンドウリストを中央寄せ
set -g window-status-current-fg red # アクティブなウィンドウを目立たせる

右側の設定

set -g status-right-length 120
set -g status-right '[mem: #(tmux-status-mem)]' # メモリの容量と空き
set -ga status-right ' [disk: #(tmux-status-disk)]' # /の容量と空き容量
set -ga status-right ' [load: #(tmux-status-load)]' # load average
set -ga status-right ' [%Y-%m-%d %H:%M]' # 日付・時刻

メモリ,ディスク,load averageを取得するスクリプトは,別のスクリプトに分けて,$PATHが通るところに置く..tmux.conf内にスクリプトを書くと,文字列の多重エスケープにより解読不能になるため.

#!/bin/bash

free -h | awk '/^Mem:/{print $3"/"$2}'
#!/bin/bash

# /にマウントされているファイルシステムの容量と空き容量を表示
df -h | awk '$6 ~ /^\/$/ {print $4 "/" $2}'
#!/bin/bash

uptime | awk '{print "1m " $(NF - 2) "/5m " $(NF - 1) "/15m " $(NF)}' | sed 's/,//g'

おまけ

tmuxの設定例(その2)