LoginSignup
24
23

More than 5 years have passed since last update.

tmuxのステータスバー

Last updated at Posted at 2017-06-13

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を探してみよう。
こちらで確認する。

参考

24
23
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
24
23