以下の画像のようなstatus lineにするための,tmuxの設定を紹介する.
通常時のstatus line.左から順に,モード,ホスト名,ウィンドウリスト,メモリの容量,ルートのディスクの容量,load average,日付時刻を表示している.
prefix keyを押下したときのstatus line.モード表示の色を反転させている.また,ホスト名の代わりに一部のキーバインドを表示している.
copy modeにおけるstatus line.モードとcopy modeで使える一部のキーバインドを表示している.
この記事では以下の設定について紹介する.
- emacsのwhich-keyぽいやつ
- モードの表示とprefix keyの状態表示
- メモリ,ディスク容量,load average等の表示
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'