Powerline-Shell – コマンドラインを美しく便利にパワーアップ! | Linux Fan

Powerline-Shell - コマンドラインを美しく便利にパワーアップ!

2017年10月8日

Powerline Shellを使えば、以下のようなカラフルでカッコイイなプロンプトにすることができます。

カッコイイだけじゃなく、プロンプトに以下のような便利機能が追加されます。

  • GitやSVNなどのブランチ名を表示する。
  • コマンドが失敗した時にプロンプトの色が変わる。
  • 深いディレクトリに移動した時、ディレクトリを省略表示する。

Powerlineフォントのインストール

Powerline Shellにはパッチが当てられたPowerline Fontsが必要です。以下の手順でまとめて最新版をインストールできます。「./local/share/fonts/」ディレクトリ以下にインストールされます。

git clone https://github.com/powerline/fonts.git --depth=1
cd fonts
./install.sh
cd ..
rm -rf fonts

フォント設定の変更

端末ウィンドウのフォントを、追加したフォントに変更します。以下の2通りの方法があります。

方法1・フォント設定をまとめて変更する

デスクトップ環境の「等幅フォント」をPowershellフォントに変更すれば、通常は端末エミュレーターの設定も連動して変わります。GNOME ShellならGNOME Tweaks(GNOME Tweak Tool)、UnityならUnity Tweak Toolを使って設定することができます。また、GNOMEベースの環境(Unity含む)なら、コマンドラインで以下のように実行して設定することも可能です。

【Ubuntu Mono derivative Powerline 13に設定する例】

gsettings set org.gnome.desktop.interface monospace-font-name 'Ubuntu Mono derivative Powerline 13'

【Source Code Pro for Powerline 11に設定する例】

gsettings set org.gnome.desktop.interface monospace-font-name 'Source Code Pro for Powerline 11'

方法2・端末エミュレーターのフォント設定を変更する

端末エミュレーターで個別にフォントを設定する方法もあります。gnome-terminalなら、「設定」→「プロファイル」を開き、プロファイルを選択して「編集」をクリックします。「フォントを指定する」をクリックし、名前に「Powerline」が含まれるフォントを選択しましょう。

Powerline Shellのインストール

インストールには「pip」コマンドが必要です。インストールされていなければ、以下のコマンドで入れておきます。

Ubuntu/Debian系の場合

sudo apt install -y python-pip

FedoraなどRed Hat系の場合

sudo yum install -y python2-pip

Pipが使えるようになったら、以下のコマンドでPowerline Shellをインストールできます。

pip install --user powerline-shell

シェルごとの設定

使っているシェルごとに、Powerline Shellを実行する設定を書き込みます。設定を変更した覚えがなければ、Bashを使っているはずです。

Bash

「~/.bashrc」に以下を追記します。

function _update_ps1() {
    PS1="$(~/.local/bin/powerline-shell $?)"
}

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

ZSH

「~/.zshrc」に以下を追記します。

function powerline_precmd() {
    PS1="$(~/.local/bin/powerline-shell --shell zsh $?)"
}

function install_powerline_precmd() {
  for s in "${precmd_functions[@]}"; do
    if [ "$s" = "powerline_precmd" ]; then
      return
    fi
  done
  precmd_functions+=(powerline_precmd)
}

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

Fish

「~/.config/fish/config.fish」に以下を追記します(ファイルがなければ作成します)。

function fish_prompt
    ~/.local/bin/powerline-shell --shell bare $status
end

Powerline Shell表示例

設定ファイルで動作をカスタマイズすることもできます。詳しくはPowerline Shellのサイトを参照してください。

関連サイト

https://github.com/banga/powerline-shell
https://github.com/powerline/fonts

更新履歴

2017-10-07 Ubuntu 17.10、Fedora 26で動作を確認