かわろぐ

技術、セキュリティ、その他もろもろ

MENU

tmux に powerline-status が反映されなかったので調べてみた

これまでは powerline-status を使っていたのですが、 tmux を3.0に更新したあたりから、 powerline-staus を認識してくれなくなってしまいました。

結論から言うと、私のMacは上記の更新をしたタイミングでメインの言語を日本語から英語に変更していました。加えて、環境変数の LC_ALL が定義されていなかったことが原因のようでした。

export LANG='en_US.UTF-8'
export LC_ALL='en_US.UTF-8’  #これが書いてなかった!

どうやって特定したか?

tmux の設定ファイルを変更して、リロードコマンド

$ tmux source-file path/to/.tmux.conf

を打ったら poworline xxx returned 1 という文字列が表示された。これはおそらく何らかのエラーが起きている証だと思いました。

そこで、シェルから直接 powerline-damon を起動させてみると、locale 周りでエラーが出ていました。 Shell の設定ファイルを確認してみると LANG は設定しているけど LC_ALL を設定していないことに気づいたので、LANG 同様に追記して Shell を再起動してtmux を起動してみるときれいなステータスラインが表示されました。

エラーコードとかしっかり書かなくては。とおもって LC_ALL を削除してすべて再起動しても powerline-status はきれいに表示されたままでエラーが再現せず。。。内部でキャッシュしてるのかなぁ。。。?

tmux 2: Productive Mouse-Free Development

tmux 2: Productive Mouse-Free Development

  • 作者:Hogan, Brian P.
  • 発売日: 2016/11/27
  • メディア: ペーパーバック