tmuxのステータスラインをいい感じにする
概要
今回はtmuxのステータスラインをいい感じにしてみたので、その手順についてメモを残しておきます。
具体的には以下の情報が表示されるようにステータスバーを変更しました。
- 現在のセッション / ペイン / ウィンドウのインデックス
- prefixが押された時に、ハイライトされたprefixを表示
- copyモードやsyncモードに入った時も、視覚的にわかるようにモード名を表示
- 現在のペインのパス
- メモリ、CPU使用率
- 日付
- 天気
今回設定したファイルはこちらのレポジトリにて公開しております。
また、別の記事でターミナルをいい感じにする方法についてもメモを残しておりますので、よければご参照ください。
実行環境
設定方法
TPMのインストール
まず初めにTmux Plugin Manager (TPM)をインストールします。
TPMはその名の通りTmuxのプラグインを管理するものです。
インストールは上記レポジトリをクローンします。
$ git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
クローンが完了したら、~/.tmux.conf
に以下を記述します。
set -g @plugin 'tmux-plugins/tpm' # .tmux.confの一番下に記入 run '~/.tmux/plugins/tpm/tpm'
プラグインのインストール
今回は以下の3つのプラグインを使用しています。
- GitHub - tmux-plugins/tmux-prefix-highlight: Plugin that highlights when you press tmux prefix key
prefixが押された時に、視覚的に通知してくれるプラグイン。copyモードやsyncモードに入った時も、通知してくれる - GitHub - xamut/tmux-weather: 🌤 Weather plugin for tmux
天気予報を表示する - GitHub - thewtex/tmux-mem-cpu-load: CPU, RAM, and load monitor for use with tmux
CPU、メモリ使用率、average loadを表示する
いずれもTPMでインストール可能です。
上記パッケージをインストールするには、~/.tmux.conf
に以下を記述します。
set -g @plugin 'tmux-plugins/tmux-prefix-highlight' set -g @plugin 'xamut/tmux-weather' set -g @plugin 'thewtex/tmux-mem-cpu-load'
その後tmuxを起動し、prefix + I
を押すことでインストール完了です。
※自分の環境ではtmux-mem-cpu-loadだけ、TPMでインストールすると、tmux起動時にtmux-mem-cpu-loadの出力が表示されず、その都度prefix + I
を実行するという問題が発生していました。そのため、こちらのみbrew install tmux-mem-cpu-load
でインストールしています。
ステータスラインの設定
必要なプラグインのインストールが完了したので、あとは出力したい内容や設定を~/.tmux.conf
に記述するだけです。
今回は以下のような設定にしてみました。
# tmux-prefix-highlightの設定 set -g @prefix_highlight_fg 'white' set -g @prefix_highlight_bg 'cyan' # copyモードに入った時に"Copy"という文字を表示 set -g @prefix_highlight_show_copy_mode 'on' set -g @prefix_highlight_copy_prompt 'Copy' # syncモードに入った時に"Sync"という文字を表示 set -g @prefix_highlight_show_sync_mode 'on' set -g @prefix_highlight_sync_prompt 'Sync' set -g @prefix_highlight_sync_mode_attr 'fg=default,bg=green' # tmux-weatherの設定 # 天気予報を表示したい場所を設定 set-option -g @tmux-weather-location "Tokyo" # 場所 + 天気の絵文字 + 気温を表示 set-option -g @tmux-weather-format "%l:+%c+%t" # 単位を摂氏温度に set-option -g @tmux-weather-units "m" # 256色端末を使用する set -g default-terminal "screen-256color" # ステータスラインの色を設定 set -g status-style fg=white,bg=black # ウィンドウリストの色を設定 setw -g window-status-style fg=cyan,bg=default,dim # アクティブなウィンドウを目立たせる setw -g window-status-current-style fg=white,bg=red,bright # ステータスライン左側の設定 # ステータスライン左側の最大の長さ set -g status-left-length 100 # セッション、ウィンドウ、ペインのインデックスを表示 + prefixが押された時に視覚的に通知する (#{prefix_highlight}の部分) set -g status-left " #[fg=green]Session: #S #[fg=yellow]Window #I #[fg=cyan]Pane: #P #{prefix_highlight}" # ステータスライン右側の設定 # ステータスライン右側の最大の長さ set-option -g status-right-length 120 set-option -g status-right-style default # メモリとCPU使用率を表示。自分は`-a 0`を指定してaverage loadは非表示にしていますが、こちらを変えることでaverage loadも表示可能です # また、tpm経由でtmux-mem-cpu-loadを指定した場合は#(tmux-mem-cpu-load)の部分が変わります。 # 詳しくはこちらを参照してください。https://github.com/thewtex/tmux-mem-cpu-load#configuring-tmux set-option -g status-right "#[fg=green,bg=default,bright]#(tmux-mem-cpu-load -a 0) " set-option -ag status-right " #[fg=cyan][%Y-%m-%d(%a) %H:%M:%S] #{weather} " # ウィンドウステータスのフォーマットの指定。各ウィンドウで選択しているペインのパスを表示 set -g window-status-format '#[fg=colour196]#I:#(pwd="#{pane_current_path}"; echo ${pwd####*/})' set -g window-status-current-format '#[fg=colour255,bg=colour124][#I:#(pwd="#{pane_current_path}"; echo ${pwd####*/})]' # その他ステータスラインの位置や更新間隔の設定 set -g status-justify absolute-centre set -g status-position top set -g status-interval 1
ステータスバーの設定方法については以下の記事が参考になりますので、合わせてご覧いただければと思います。
完成したステータスライン
全体像
prefixを押した時
copyモードに入った時
syncモードに入った時
Reference
- GitHub - tmux-plugins/tpm: Tmux Plugin Manager
- GitHub - tmux-plugins/tmux-prefix-highlight: Plugin that highlights when you press tmux prefix key
- GitHub - xamut/tmux-weather: 🌤 Weather plugin for tmux
- GitHub - thewtex/tmux-mem-cpu-load: CPU, RAM, and load monitor for use with tmux
- tmux の status line の設定方法 - Qiita
- How does the tmux color palette work? - Super User