面白コンテンツ探求日記

社会の厳しさと戦っています

tmux-powerline導入メモ

お手軽にtmuxのステータスバーをかっこよくできるerikw/tmux-powerline · GitHubを導入してみました。インストールが完了すると、以下のように時刻やらVCSの情報をキレイに表示できます。

f:id:horimislime:20120902163733p:image

環境

動作には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をインストールします。

homebrewの場合

githubページの通りにbrew install 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の仕様変更で表示できないようです。