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


## powerline

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

![SS1](https://qiita-image-store.s3.amazonaws.com/0/17969/cdb9b255-4d6b-eb5d-3ac8-afeca4634b37.png "スクリーンショット 2014-02-05 17.53.10.png")

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

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

## powerline-shell

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

[milkbikis/powerline-shell](https://github.com/milkbikis/powerline-shell)


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

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

[Lokaltog/powerline-fonts](https://github.com/Lokaltog/powerline-fonts)

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

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


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

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

![SS2](https://qiita-image-store.s3.amazonaws.com/0/17969/0d8b84c1-072b-78f0-3ce7-656d1662169e.png)


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

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

クローンします。

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

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

```bash:terminal
$ cd ./powerline-shell
$ ./install.py
```

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


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

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

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


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

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

```bash:terminal
$ touch ~/.bashrc
```

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

### 編集する

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


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

    export PROMPT_COMMAND="_update_ps1; $PROMPT_COMMAND"
```

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

```bash:terminal
$ source .bashrc
```
を実行してください。

## おつかれさまでした

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

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

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

---

# おまけ

## 表示項目のカスタマイズ

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

```python: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`をもう一度実行する必要があります。

```bash:terminal
$ ./install.py
```

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


## 色をカスタマイズ

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

```python: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_BG`と`PATH_FG`の色番号を変更してください。

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

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

色番号は [bash/zshで16色(ANSI カラーコード)と256色のカラーパレットを表示](http://yonchu.hatenablog.com/entry/2012/10/20/044603) を見ながらやるとやりやすいです。


## おわり

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

でもなんか遅く感じたりちょっともっさりしたなと思ったら [powerline-daemon](https://github.com/kovidgoyal/powerline-daemon) を入れると良いらしいです。

参考: [POWERLINE が重いとか都市伝説を信じてる奴ってまだいるの？（5日目 POWERLINE-DAEMON 編）](http://blog.remora.cx/2013/05/use-powerline-daemon.html)