macのbashにpowerlineを導入する

忘れやすい鳥頭なので、備忘録的な感じで残しておきます。


powerlineのインストール

まずpowerlineに対応しているフォントをダウンロードします。下のURLに飛んで、Clone or downloadDownload ZIPを選択します。そうするとダウンロードが始まります。

GitHub - mzyy94/RictyDiminished-for-Powerline: Ricty Diminished with Powerline patched --- fonts for programming

ダウンロードしたファイルを解凍します。解凍したフォルダの中にpowerline-fontpatchedというフォルダがあるので、その中のフォントをインストールします。



powerlineをインストールします。ターミナルで以下のコマンドを実行します。

git clone https://github.com/b-ryan/powerline-shell  
cd powerline-shell  
python setup.py install  

次に.bash_profileの設定をします。

vim ~/.bash_profile

.bash_profileに以下を追記

function _update_ps1() {
    PS1=$(powerline-shell $?)
}

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

これで終わりです。


コンフィグの設定

ターミナルで $ より左の表示の設定を変えたいときは、コンフィグファイルの設定をします。
まずデフォルトの設定を生成します。ターミナルで以下のコマンドを実行します。

powerline-shell --generate-config > ~/.powerline-shell.json

次に.powerline-shell.jsonの設定を変更します。人によって使いやすい設定が異なるので、各自がいい感じに書き変えてあげる必要がありますが、自分は以下のように設定しました。

vim ~/.powerline-shell.json
{
  "segments": [
    "virtual_env",
    "username",
    "ssh",
    "cwd",
    "git",
    "hg",
    "jobs",
    "root"
  ]
}

powerlineの▶︎を取りたい

先ほどの.powerline-shell.json"mode": "flat"を追加します。

{
  "segments": [
    "virtual_env",
    "username",
    "ssh",
    "cwd",
    "git",
    "hg",
    "jobs",
    "root"
  ],
  "mode": "flat"
}

配色を変えたい

結構めんどくさいです。
以下のコマンドを実行します。

cd powerline-shell/powerline_shell/themes/
cp solarized_light.py mytheme.py

mythemeのカラーコードの数字を変えていきます(カラーコード表はここ)。これも各自がいい感じにする必要があります。自分の設定は以下の通りです。

vim mytheme.py
from powerline_shell.themes.default import DefaultColor


class Color(DefaultColor):
    USERNAME_FG = 15
    USERNAME_BG = 4
    USERNAME_ROOT_BG = 1

    HOSTNAME_FG = 15
    HOSTNAME_BG = 10

    HOME_SPECIAL_DISPLAY = False
    PATH_FG = 220
    PATH_BG = 14
    CWD_FG = 0
    SEPARATOR_FG = 21

    READONLY_BG = 1
    READONLY_FG = 7

    REPO_CLEAN_FG = 0
    REPO_CLEAN_BG = 15
    REPO_DIRTY_FG = 1
    REPO_DIRTY_BG = 15

    JOBS_FG = 4
    JOBS_BG = 7

    CMD_PASSED_FG = 15
    CMD_PASSED_BG = 2
    CMD_FAILED_FG = 15
    CMD_FAILED_BG = 1

    SVN_CHANGES_FG = REPO_DIRTY_FG
    SVN_CHANGES_BG = REPO_DIRTY_BG

    VIRTUAL_ENV_BG = 15
    VIRTUAL_ENV_FG = 2

    TIME_FG = 15
    TIME_BG = 10

こんな感じになりました。 f:id:choco_late3:20180305192528p:plain