Bash
powerline

5分でターミナルの表示をカッコよくする

More than 3 years have passed since last update.

powerline

たまに見かけるこんな感じのカッコいい表示。powerlineというやつを使います。

SS1

導入エントリを見るとだいたいvimがーとかtmuxがーとか出てくる。
ただターミナルをカッコよくしたいだけなのにbundleだーNeoBundleがーとかfontforgeでFontにパッチをあててーとか、手間が多い!

めんどくさいインストールとか設定とかはできるだけやりたくない。
今すぐカッコよくしたい、そんなあなたに。

powerline-shell

powerline-shellを使えばすぐにカッコよくなります。

milkbikis/powerline-shell

step1 フォントをダウンロードしよう

powerlineでカッコいい表示にするにはフォントにパッチをあてるという一手間が必要ですが、パッチを当てたフォントを公開してくれてるのでそこからダウンロードしましょう。

Lokaltog/powerline-fonts

今回はSourceCodeProフォルダにあるSauce Code Powerline Light.otfをダウンロードします。

ダウンロードしたフォントはFont Bookでインストールするか/Liblary/Fonts/に入れてください。

step2 ターミナルのフォントを変更する

ダウンロードしてインストールしたフォントに変更します。

SS2

ターミナルを開いてcmd+,で設定画面がでるので、そこでフォントの選択画面に行き、Source Code Pro for Powerlineを選択します。

step3 powerline-shellをクローンしてインストール

クローンします。

terminal
$ git clone https://github.com/milkbikis/powerline-shell

クローンしたpowerline-shellフォルダに移動してinstall.pyを実行します。

terminal
$ cd ./powerline-shell
$ ./install.py

install.pyを実行するとpowerline-shell.pyが作られます。

step4 powerline-shell.pyにシンボリックリンクを貼る

ln -sのあとに続いて第二引数にpowerline-shell.pyがある場所のパスを入れます。
そして第三引数に ~/powerline-shell.pyとシンボリックリンクを貼る場所を指定します。

terminal
$ ln -s path/to/powerline-shell.py ~/powerline-shell.py

step5 .bashrc(.zshrc)からpowerline-shellを呼ぶ

ホームディレクトリ(~/)にある.bashrcを編集します。ない人は

terminal
$ touch ~/.bashrc

などを実行して作ってください。

編集する

.bashrcに下記のコードを追加してください。

function _update_ps1() {
       export PS1="$(~/powerline-shell.py $? 2> /dev/null)"
    }

    export PROMPT_COMMAND="_update_ps1; $PROMPT_COMMAND"

追加したあと反映するためにターミナルを閉じて開き直すか

terminal
$ source .bashrc

を実行してください。

おつかれさまでした

これであなたのターミナルもカッコよくなったはずです。so easy。

表示項目変えたい、配色がイケてない、と思う人はconfig.pypowerline-shell.pyをイジってカスタマイズしましょう。

zsh使ってるって人はpowerline-shellのページに書いてあるやり方を見てください。


おまけ

表示項目のカスタマイズ

powerline-shellフォルダにあるconfig.pyを開くと以下のような記述が並んでます。

config.py


# Show current virtual environment (see http://www.virtualenv.org/)
    'virtual_env',

# Show the current user's username as in ordinary prompts
    'username',

# Show the machine's hostname. Mostly used when ssh-ing into other machines
    'hostname',

# Show a padlock when ssh-ing from another machine
    'ssh',

# Show the current directory. If the path is too long, the middle part is
# replaced with ellipsis ('...')
    'cwd',


並んでる項目からなんとなくあたりを付け、行の先頭に#を付けてコメントアウトします。

編集したらinstall.pyを実行する

config.pyを編集したあとはinstall.pyをもう一度実行する必要があります。

terminal
$ ./install.py

これでターミナルで新しいタブを開くと反映されます。

色をカスタマイズ

色の変更はpowerline-shell.pyをいじります。
エディタで開いて177行目あたりにこんな記述があります。

powerline-shell.py
class DefaultColor:
    """
    This class should have the default colors for every segment.
    Please test every new segment with this theme first.
    """
    USERNAME_FG = 250
    USERNAME_BG = 240

    HOSTNAME_FG = 250
    HOSTNAME_BG = 238

    HOME_SPECIAL_DISPLAY = True
    HOME_BG = 31  # blueish
    HOME_FG = 15  # white
    PATH_BG = 31  # dark grey
    PATH_FG = 250  # light grey
    CWD_FG = 254  # nearly-white grey
    SEPARATOR_FG = 244

    READONLY_BG = 124
    READONLY_FG = 254

    SSH_BG = 166 # medium orange
    SSH_FG = 254

    REPO_CLEAN_BG = 148  # a light green color
    REPO_CLEAN_FG = 0  # black
    REPO_DIRTY_BG = 161  # pink/red
    REPO_DIRTY_FG = 15  # white

    JOBS_FG = 39
    JOBS_BG = 238

    CMD_PASSED_BG = 236
    CMD_PASSED_FG = 15
    CMD_FAILED_BG = 161
    CMD_FAILED_FG = 15

    SVN_CHANGES_BG = 148
    SVN_CHANGES_FG = 22  # dark green

    VIRTUAL_ENV_BG = 35  # a mid-tone green
    VIRTUAL_ENV_FG = 00

BGが背景色でFGが文字色です。

パスが表示されてる部分の色を変更したい場合はPATH_BGPATH_FGの色番号を変更してください。

Gitのブランチ名の色を変更したい場合REPO_CLEAN_BGREPO_DIRTY_BGの色をいじってください。

install.pyの再実行は必要ありません。
ターミナルで新しいタブを開いたら反映されています。

色番号は bash/zshで16色(ANSI カラーコード)と256色のカラーパレットを表示 を見ながらやるとやりやすいです。

おわり

とっても簡単にターミナルがカッコよくなりました。

でもなんか遅く感じたりちょっともっさりしたなと思ったら powerline-daemon を入れると良いらしいです。

参考: POWERLINE が重いとか都市伝説を信じてる奴ってまだいるの?(5日目 POWERLINE-DAEMON 編)