Help us understand the problem. What is going on with this article?

tmuxのステータスバー

More than 1 year has passed since last update.

tmuxのステータスバーを格好良く表示したい。

書き方がとても面倒だし、せっかくマニュアルを参考にして書いても、格好良く表示されない。
vimのpowerlineやvim-airline、lightlineのようなステータスバーを見た覚えがあって、ググって調べたら、tmuxline.vimという宝物を見つけた。
tmuxline.vimはtmuxのステータスバーを作るためのジェネレーターである。
tmuxline.vimを使えば、これ以上tmuxのマニューアルを見ながら書き方を学ばなくてもいい。

注意点

  • tmuxを先に起動
    • tmuxが起動された場合、vimの編集画面でステータスバーが確認される。
    • .vimrcを開き、tmuxline.vimを編集したあと.vimrcをリロードすることで作りたいステータスバーが確認される。
    • しかし、tpmで起動されるpluginの場合、vimの編集画面では表示されない。あくまでvimの編集画面でのことでtmux上ではちゃんと表示される。
  • vimのpluginとしてpowerline、vim-airline、lightlineのいずれか一つが必要

使い方

tmuxline.vimを設置する。
ここではvim plugin managerとしてvim-plugを使っている。
作りたいステータスバーのpresetとthemeを指定する。
下記の設定はtmuxline.vimのreadmeから持ってきたものだ。

vim ~/.vimrc

Plug 'edkolev/tmuxline.vim'

let g:tmuxline_preset = {
  \'a'    : '#S',
  \'c'    : ['#(whoami)', '#(uptime | cud -d " " -f 1,2,3)'],
  \'win'  : ['#I', '#W'],
  \'cwin' : ['#I', '#W', '#F'],
  \'x'    : '#(date)',
  \'y'    : ['%R', '%a', '%Y'],
  \'z'    : '#H'}
let g:tmuxline_theme = 'papercolor'

tmuxのステータスバーは左側と右側に別れて設定を行う。
presetの'a', 'b', 'c'が左側の設定で、'x', 'y', 'z'が右側の設定である。
'win', 'cwin'はウィンドウ名を表示する設定だ。
vimのコマンドモードでTmuxlineSnapshot 「ファイル名」を実行してみよう。
ここでのファイル名はtmuxline.confにする。

:TmuxlineSnapshot tmuxline.conf

tmuxline.confというtmuxステータスバーを表示するための設定ファイルが作られる。
.tmux.confファイルからtmuxline.confファイルを読み込む設定を追加する。
tmuxline.vimで生成された設定ファイルは、.tmuxというディレクトリを生成してその配下で管理することを推奨する。
tpmを使っている場合はすでに生成されている。

# tmuxline.vim
source-file ~/.tmux/tmuxline.conf

リロードする前にtmuxline.vimから生成されたtmuxline.confの下記の行を修正する。

- set -g status-utf8 "on"
+ set -gq status-utf8 "on"

比較的に新しいtmuxのバージョンには対応されてないぽい。修正しないとエラーメッセージが表示される。

.tmux.confファイルリロードすれば、新しいステータスバーが表示される。

tmux source-file .tmux.conf

リロードするたびにコマンドを実行するのは面倒な作業なので、バインディングを追加する。
「prefix + r」を押すことで設定ファイルをリロードする。

bind r source-file ~/.tmux.conf\; display "Reloaded!"

下記は僕の設定でキャプチャした画面である。
스크린샷 2017-06-12 12.13.08.png

おまけに設定も入れて置いたので、必要な方は参考にしていただければと思う。

" tmuxline
let g:tmuxline_preset = {
      \'a'    : '#S',
      \'c'    : ['#(whoami)'],
      \'win'  : ['#I', '#W'],
      \'cwin' : ['#I', '#W', '#F'],
      \'x'    : ['#{battery_percentage} #{battery_icon}', '#{cpu_percentage} #{cpu_icon}'],
      \'y'    : ['%a', '%R', '#(ansiweather -l tokyo -w false -h false -p false -a false | cut -d " " -f7,8,9)'],
      \'z'    : '#H',
      \'options' : {'status-justify':'left'}}
let g:tmuxline_theme = 'papercolor'

右側にバッテリーとCPUの使用率、天気情報を表示しているのが見えるだろうか。
バッテリーやCPUはtmuxのpluginを設置して表示しているもので、天気情報はansiweatherというコマンドで表示している。

追記(2017/09/29)

  • ansiweatherがバージョンアップされてオプションとか変更されたみたい。天気情報が正常に表示されない場合は、次のように直して見ましょう。
#(ansiweather -l tokyo -w false -h false -p false -a false -s true | cut -d \" \" -f6,7,8,9)

tmuxのpluginを設置するためにはtpmというplugin managerが必要だ。
tpmの使い方については別途の記事を作成したので、ご参考にしていただければと思う。

ちなみに僕はvim-airlineを使っていてthemeもvim-airlineのものを使っている。
vim-airlineのthemeの中で好みのthemeを探してみよう。
こちらで確認する。

参考

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした