Edited at

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

More than 5 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 編)