Powerlevel10kを用いてmacのターミナルをいじってみた
はじめに
このページは琉球大学知能情報アドベントカレンダー Advent Calendar 2023の12月16日の記事です!
macのターミナルはデフォルトの見た目だとこのようになっていて、これはこれで落ち着くのですが、ちょっと物足りない気もします、、、
そこで今回は下のようにターミナルの見た目をカッコよくしていきたいと思います。
環境
以下の環境を想定します。
Icebergの設定
Iceberg は、Vim および NeoVim 向けに、うまくデザインされた目に優しいダークブルーの配色です。 IcebergにはTerminal(iTerm2)版もあるのでそれを設定していきます。
Terminalの場合
公式ページの一番下にあるIceberg for macOS
をダウンロードする。
ターミナルを起動し、上のメニューバーからターミナル>設定>プロファイル
を開き、左下の◯の中に3つの点があるボタンを押して読み込む
を選択します。
そして、先程ダウンロードした設定ファイルをインポートし、デフォルトのプロファイルに設定します。
iTerm2の場合
iTerm2用に移植されたこちらを使用します。 以下のコマンドを実行して設定ファイルをダウンロードします。
curl -O https://raw.githubusercontent.com/Arc0re/Iceberg-iTerm2/master/iceberg.itermcolors
iTerm2を起動し、メニューバーからiTerm2>Settings>Profiles>Colors
を開きます。
右下のColor Presets
のボタンを押して、import
から先程ダウンロードしたファイルを指定します。
Sheldonの導入
SheldonはRust製のプラグインマネージャーでzshやBashに対応しています。
シェルのプラグインマネージャーにこだわりは無いのですが、README曰く高速とのことなので、今回はSheldonを使用していきます。 まず、homebrewでSheldonをインストールします。
brew install sheldon
次に、Sheldonの設定ファイルを生成します。下のコマンドを実行すると~/.config/sheldon/plugins.toml
が自動で生成されます。(~/.configフォルダがない場合は先に作っておいてください)
sheldon init --shell zsh
~/.zshrc
に以下を追記します。
eval "$(sheldon source)"
Powerlevel10kのセットアップ
Powerlevel10kはzshのテーマで、プロンプトをカスタマイズできます。
フォントの追加
通常のフォントだとアイコン等が文字化けしてしまうため、こちらの手順に従い専用フォントをターミナル(iTerm2)に適用してください。(Nerd Fontsだったらなんでもいいっぽい)
powerlevel10kのインストール
~/.config/sheldon/plugins.toml
(Sheldonの設定ファイル)に以下を追記します。
[plugins.powerlevel10k] github = "romkatv/powerlevel10k"
その後、以下のコマンドで~/.zshrc
を読み込み、powerlevel10kをインストールします。
source ~/.zshrc
以下のようなウィザードが表示されるので、設定を行っていきましょう。
- オススメ設定
- Prompt Style → (3) Rainbow.
- プロンプトの背景色を変えたいなら必須
- Prompt Height → (2) Two lines.
- プロンプトが長い場合はコマンドがすぐに折り返すので、2行に分けた方がいい
- Prompt Frame → (1) No frame. or (2) Left.
- 右側にフレームがあるとコマンドと出力をコピペする際に面倒くさい
- Prompt Spacing → (2) Sparse.
- Enable Transient Prompt? → (n) No.
- Yesを選ぶと現在のプロンプトだけが表示されるので、かっこよさという観点からするとNoを選んだほうが良い
- Prompt Style → (3) Rainbow.
色の変更
~/.p10k.zsh
を書き換えることで、プロンプトの色等を変更することができます。
使用できる色は0~255までの256種類あり、以下のコマンドで確認することができます。
for i in {0..255}; do print -Pn "%K{$i} %k%F{$i}${(l:3::0:)i}%f " ${${(M)$((i%6)):#3}:+$'\n'}; done
以下は冒頭で紹介した改造したターミナル
の図の設定例です。(ウィザードでPrompt Style → (3) Rainbow.
以外を選択した場合、設定項目が~/.p10k.zsh
に存在していないことがあります)
- git関連
- ディレクトリ関連
- POWERLEVEL9K_DIR_BACKGROUND=37
- POWERLEVEL9K_DIR_FOREGROUND=254
- POWERLEVEL9K_SHORTEN_STRATEGY=truncate_to_last
- カレントディレクトリのみを表示する
- POWERLEVEL9K_DIR_SHORTENED_FOREGROUND=254
- アイコン関連
- POWERLEVEL9K_OS_ICON_FOREGROUND=254
- POWERLEVEL9K_OS_ICON_BACKGROUND=240
- condaの仮想環境の表示
- POWERLEVEL9K_ANACONDA_FOREGROUND=254
- POWERLEVEL9K_ANACONDA_BACKGROUND=37
- 時間関連
- POWERLEVEL9K_TIME_FOREGROUND=254
- POWERLEVEL9K_TIME_BACKGROUND=240
注意するところ
テキストのコントラストを最小にする
テキストのコントラストが大きいと以下の図のように、プロンプトの頭や尻尾の部分だけ色が若干合いません。
そのためコントラストを最小に設定します。しかし、はじめに述べた通りmacのターミナルだとこちらの設定ができません。このためiTerm2での環境構築を推奨しています。*2
iTerm2を起動し、メニューバーからiTerm2>Settings>Profiles>Colors
でMinimum Contrast
を0に設定してください。
画面を半透明にしない
Minimum Contrast
を0に設定していたとしても、画面を半透明にすると以下の図のようにプロンプトの頭や尻尾の部分だけ色が若干合わなくなります。
※こちらは調べたところ参考になりそうな情報がありませんでした。
※半透明にしながらプロンプトの色も変わらない方法を知っている方がいれば教えてください!
フォントサイズを変えてみる
フォントサイズによっては以下の図のようにプロンプトの形が崩れることがあります。*3 以下はフォントサイズが12の場合です。 これはフォントサイズを変更すると解消する場合があります。 私の環境ではフォントサイズを13に設定することで形が綺麗になりました。