tmux-powerline導入メモ
お手軽にtmuxのステータスバーをかっこよくできるerikw/tmux-powerline · GitHubを導入してみました。インストールが完了すると、以下のように時刻やらVCSの情報をキレイに表示できます。
環境
動作にはtmux以外にbashも必要になります。bashはデフォで入ってると思いますが、4.0以上のバージョンが必要なので要確認です。自分の環境では以下のバージョンをMacPortsよりインストールしています。
- tmux / 1.6
- bash / 4.2.37
bashはtmux-powerlineのシェルスクリプト実行に必要なだけで、ターミナルでzshなどを使っている人はシェルを変更する必要はありません。
インストール
まずはtmux-powerlineをclone。
% git clone https://github.com/erikw/tmux-powerline.git
cloneしたら、.tmux.conf内にpowerlineを有効にする設定を追加します。
set-option -g status on set-option -g status-interval 5 set-option -g status-utf8 on set-option -g status-justify "centre" set-option -g status-left-length 60 set-option -g status-right-length 60 set-option -g status-left "#(‾/.tmux.d/tmux-powerline/status-left.sh)" set-option -g status-right "#(‾/.tmux.d/tmux-powerline/status-right.sh)"
Fontにパッチを当てる
ここまでの設定だけでもpowerlineは動作しますが、このままだとステータスの表示が崩れてしまうので、ターミナルで使うフォントのパッチを当てみます。まずはパッチ当てに必要なFontforgeをインストールします。
MacPortsの場合
まずhttps://trac.macports.org/ticket/31852 からMakefileとPortfileのパッチをダウンロードし、以下のようにして適用します。
% cd /opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/graphics/fontforge % wget https://trac.macports.org/raw-attachment/ticket/31852/Portfile-fontforge.diff % wget https://trac.macports.org/raw-attachment/ticket/31852/patch-Makefile.dynamic.in.diff -P files/ % patch -u < Portfile-fontforge.diff
バリアントを確認して、python26, python27が指定可能になっていれば成功です。環境で使っているpythonのバージョンに合ったものを指定してインストールします。
% port variants fontforge #バリアントを確認 % port install fontforge +python27
fontforgeの導入がおわったら、ターミナルで使っているフォントにパッチを当てます。
% git clone https://github.com/Lokaltog/vim-powerline.git vim-powerline % fontforge -script ./vim-powerline/fontpatcher/fontpatcher ~/Library/Fonts/Ricty-Bold.ttf
上では普段ターミナルで使っているRictyにパッチを当ててみました。fontforgeを実行すると、カレントディレクトリに[指定したフォントの名前]-powerline.ttfというフォントが生成されます。これをFontsフォルダに移動し、ターミナルのフォント設定から選べば作業はすべて終わりです。
※上の画像では天気情報がでるはずの場所がerrorになってますが、Issue #40: Google Weather API Rejecting Queries · erikw/tmux-powerline · GitHubにもある通りgoogleの天気APIの仕様変更で表示できないようです。