Tech Racho エンジニアの「?」を「!」に。
  • 開発

シェルのPowerlineをPowerline-goに置き換えてみた

こんにちは、hachi8833です。

Powerline使ってますか?私もシェルのプロンプトを便利かつかっこよく表示できるPowerlineを半年ぐらい前から使っています。特にGitのディレクトリでステータスを表示できるところが非常にありがたいです。

これまで使っていたLokaltog/vim-powerlineを開いてみるとdeprecation warningが表示されていることに気づき、そして他の変種も含めて本家Powerlineに収束したらしいことを今になって知りました。

しかし本家Powerlineに差し替えてみようとしたところ、なまじpyenvをインストールしていることもあってか、Python周りの設定がいろいろ面倒で途中でくじけました。それにpowerline-daemonを常駐させないとやはり重いらしく、常駐させるのは自分的に残念です。

そんなときに見つけたのが、Go言語で書かれたpowerline-goでした。


github.com/justjanne/powerline-goより

以前にも別のGo製Powerlineを見つけたことがあったのですが、機能が少なすぎてあきらめたことがありました。これはいけるかも。

インストール

releaseディレクトリからバイナリを取ってきてもよいのですが、Go環境があるので以下で即インストールしました。

go get -u github.com/justjanne/powerline-go

私の場合Powerlineで必要なフォントは既にインストール済みだったので省略します。必要な方はpowerline-fontsなどでお探しください。

後は.bashrcに以下を追加してsource .すれば完了です。

# .bashrc
function _update_ps1() {
    PS1="$(<パス>/powerline-go -error $?)"
}

if [ "$TERM" != "linux" ]; then
    PROMPT_COMMAND="_update_ps1; $PROMPT_COMMAND"
fi

あっさり動きました。

カスタマイズ

後は好みに合わせてカスタマイズです。表示をあまりギンギラギンにしたくなかったのと、なるべくPowerlineが幅を取らないようにしたかったのですが、既存のオプションだと少々力不足だったので、forkして雑にカスタマイズしました。完全に自分用なのでプルリクはしません。

  • セグメントの前後のスペースを削除
  • ディレクトリ表示の...を削除
  • プロンプト$の色を変更
  • デフォルト設定を自分好みに変えてオプションを与えなくて済むようにした

powerline-goのディレクトリでgo installを実行してインストールします。

ワンバイナリできびきび動いてくれて安心かつ満足です。AWSやDockerにも対応しているようなのでそのうちチェックしてみます。


CONTACT

TechRachoでは、パートナーシップをご検討いただける方からの
ご連絡をお待ちしております。ぜひお気軽にご意見・ご相談ください。