かわいい terminal をつくろう

terminal をかわいくするぞ (固い意思)

prompt

プロンプトは terminal の入力受付の部分です。

標準だと ↓ こんな感じなのではないでしょうか

user@Macbook-Pro:~ $

こんな感じ ↓ にしたいと思います。

sudachi@DaiMac:~
(*'-') < 

設定をいじっていきます

私は bash を普段使いしているので .bashrc を編集します。

同じ bash でも mac を使っていると .bash_profile という設定ファイルで管理している方も おられるかもしれません。

私は Ubuntu をいじることもあり、「設定は .bashrc で全て管理したい」ということから .bash_profile には、「もし .bashrc があったら、それを読み込んでね」とだけ書いています。

if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

もちろん、この辺はご自身の好みでいじっていただければと思います。

zsh をお使いの方は .zshrc などでしょうし...

  • 補足

本当は、

  • .bash_profile の方が .bashrc より先に読まれる
  • bash_profile はユーザがログインした時に1回だけ読まれるが、.bashrcbash 起動時に毎回読まれる

などの違いがありますが、mac を普段使いしていて、そんなにたくさん設定を書くことはないですし、 この macbook 使うの、だいたい僕だけだし...と思って、.bashrc に書いています。( サボりです。 )

さて、前置きが長くなりましたが、プロンプトを変えていきます。

方法としては、.bashrcPS1 という変数名で、環境変数として設定すれば OK です。

標準ぽいモノを最初にいくつか紹介します (私の好みにより ubuntu like です)

途中に $(__git_ps1) という謎の変数が出てきますが、git init されているディレクトリでは、カレントブランチをプロンプトの一部に表示するために付けています。

( TODO: この辺もできたら書きます... )

export PS1='\[\033[32m\]\u@\h\[\033[00m\]:\[\033[34m\]\w\[\033[31m\]$(__git_ps1)\[\033[00m\]\$ '

実はしばらくは ↑ を少しいじったりして使っていました

ディレクトリをフルパスで表示したい 場合は \w の部分を \W とすれば出来ますし、 どっかに \n を入れると改行できて、fish をお洒落に使いこなされる方の気分になれます(なれません)。

さて、これをもっとかわいくしましょう。 復讐になりますが、以下のような感じにしたいのでした。

sudachi@DaiMac:~
(*'-') < 

こんな感じになりました。かわいい

設定の記載だけ先に書きますね。

export PS1='\[\033[32m\]\u@\h\[\033[01m\]:\[\033[34m\]\W\[\033[31m\]$(__git_ps1)\[\033[00m\]\n'"(*'-') < "

こんな感じです。

最後の顔のところはシングルコーテーションが入ってしまっているので、 ちょっと理想からは外れますが、ダブルコーテーションで括って繋げました...

ちなみに、処理が正常終了 ( == exit code が 0) か / そうでないか (Error, ここでは、乱暴に exit code 0 以外で決め打ち)でプロンプトを変えることもできます。

export PS1='\[\033[32m\]\u@\h\[\033[01m\]:\[\033[34m\]\W\[\033[31m\]$(__git_ps1)\[\033[00m\]\n'

exitstatus() {
    if [[ $? == 0]]; then
        echo "(*'-') < "
    else
        echo "(*x_x) < "
    fi
}

export PS1=$PS1'$(exitstatus)'

なんて めんどうな いや、物好きな ことをすると

# 前回正常終了
sudachi@DaiMac:~
(*'-') < sl

# 正常終了でない
bash: sl: command not found
sudachi@DaiMac:~
(*x_x) < 

という風に分岐できました。かわいい

これの詳しい作り方などは、別エントリーでまとめようと思います...(長くなりそうなので...)


terminal のカラーテーマを変えよう

現状、以下の2択かなぁ...と思っています。 (ドラキュラはあまり好みではありませんでした (-人-) )

  1. Iceberg

参考: 気分転換にTerminal.appの配色を変えてみる?暗青系のテーマ「Iceberg」を移植しました

  1. Solarized

参考: 【Mac】ターミナルの配色設定は「Solarized」がおしゃれで見やすくておすすめ

( 今は、ダークテーマの Basic をいじって使っています...導入したら追記予定です (-人-) )


terminal app を変えよう

特にこだわりがなければ、mac 標準の terminal.app を使えばいいと思います。 ネットの記事では賛否両論ありますが、そんなに不便ではないですし、 コマンドの受け皿 (送り先?) としては十分な機能などは持ていると思います。

ただ、「より良いデザインを!」とか「宗教上の理由で...」という方がいらっしゃいましたら 私の知っている terminal app を2つ紹介します。

  • iTerm2

    • 私の観測範囲では、そこそこの方が使っている (乗り換えている) イメージがあります。確かに標準のものに比べると、カラーテーマがデフォルトでたくさんご用意してあったり、キーバインドなどいろいろ取り替えられて便利ではあります。私も一時期使ってました。
  • Hyper

    • Electron ベースのターミナルアプリらしいです。ちょっと使ってみたいけど、まだ手を出したことはありません...

Links

プロンプトの編集