はじめに
ターミナル環境を見やすく、使いやすくするために、
- Zsh
- Oh My Zsh
- Powerlevel10k
- Nerd Font
を導入します。
この記事では macOS と Ubuntu の両方について、ZshのインストールからPowerlevel10kの設定までまとめます。
最終的には、例えば次のような情報をプロンプトに表示できるようになります。
- OSやホストを表すアイコン
- ホームディレクトリや現在のディレクトリ
- Gitブランチ
- Gitの変更状態
- Python仮想環境
- コマンドの終了ステータス
特にPowerlevel10kでは特殊なアイコンを多数使用するため、Nerd Fontの設定が重要です。
1. 全体の構成
今回構築する環境は次のようになります。
Terminal
└── Zsh
└── Oh My Zsh
└── Powerlevel10k
さらに、アイコンを正しく表示するために、
MesloLGS NF
というNerd Fontをターミナルに設定します。
大まかな流れは、
1. Zshをインストール
2. Zshをデフォルトシェルにする
3. Oh My Zshをインストール
4. Powerlevel10kをインストール
5. Nerd Fontをインストール
6. ターミナルでNerd Fontを指定
7. p10k configure を実行
です。
2. macOSの場合
2.1 Zshの確認
現在のmacOSではZshが標準でインストールされているため、まず確認します。
zsh --version
例えば、
zsh 5.x.x (...)
のように表示されればOKです。
使用中のシェルも確認できます。
echo $SHELL
/bin/zsh
となっていれば、すでにZshがデフォルトシェルです。
その場合、Zshを追加でインストールする必要はありません。
Homebrew版Zshを使用したい場合
Homebrew版を使いたい場合は、
brew install zsh
でもインストールできます。
ただし、特に理由がなければmacOS標準のZshで十分です。
3. Ubuntuの場合
UbuntuではZshをインストールします。
sudo apt update
sudo apt install -y zsh git curl
インストールを確認します。
zsh --version
Zshの場所も確認します。
which zsh
通常は、
/usr/bin/zsh
となります。
3.1 Zshをデフォルトシェルにする
Ubuntuでは、
chsh -s "$(which zsh)"
を実行します。
確認します。
grep "$USER" /etc/passwd
末尾が、
/usr/bin/zsh
になっていれば設定されています。
一度ログアウトして、再度ログインします。
その後、
echo $SHELL
を実行して、
/usr/bin/zsh
となっていればOKです。
4. Oh My Zshのインストール
macOS / Ubuntuともに、ここからはほぼ同じです。
Oh My Zshをインストールします。
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
インストールが完了すると、
~/.oh-my-zsh
が作成されます。
また、
~/.zshrc
も作成されます。
確認してみます。
ls -la ~ | grep zsh
5. Powerlevel10kのインストール
Powerlevel10kをOh My Zshのカスタムテーマディレクトリにcloneします。
git clone --depth=1 \
https://github.com/romkatv/powerlevel10k.git \
"${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k"
次に、
nano ~/.zshrc
などで .zshrc を開きます。
次の行を探します。
ZSH_THEME="robbyrussell"
これを、
ZSH_THEME="powerlevel10k/powerlevel10k"
に変更します。
保存したらZshを起動し直します。
exec zsh
初回起動時にはPowerlevel10kの設定ウィザードが起動します。
起動しない場合は、
p10k configure
を実行します。
6. Nerd Fontをインストールする
Powerlevel10kでは、
- フォルダ
- Git
- Home
- OS
- 各種ステータス
などをアイコンで表示します。
通常のフォントではこれらの文字を持っていないことがあるため、Nerd Fontを使用します。
Powerlevel10kで推奨されているのが、
MesloLGS NF
です。
必要なのは基本的に次の4フォントです。
MesloLGS NF Regular
MesloLGS NF Bold
MesloLGS NF Italic
MesloLGS NF Bold Italic
7. macOSにMesloLGS NFをインストール
例えば次のようにダウンロードします。
mkdir -p ~/Downloads/MesloLGS-NF
cd ~/Downloads/MesloLGS-NF
curl -fLo "MesloLGS NF Regular.ttf" \
"https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Regular.ttf"
curl -fLo "MesloLGS NF Bold.ttf" \
"https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold.ttf"
curl -fLo "MesloLGS NF Italic.ttf" \
"https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Italic.ttf"
curl -fLo "MesloLGS NF Bold Italic.ttf" \
"https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold%20Italic.ttf"
Finderから各 .ttf ファイルを開いて、
インストール
を選択します。
8. UbuntuにMesloLGS NFをインストール
Ubuntuではユーザー用フォントディレクトリ、
~/.local/share/fonts
に入れるのがおすすめです。
mkdir -p ~/.local/share/fonts
cd ~/.local/share/fonts
フォントをダウンロードします。
wget \
"https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Regular.ttf"
wget \
"https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold.ttf"
wget \
"https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Italic.ttf"
wget \
"https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold%20Italic.ttf"
フォントキャッシュを更新します。
fc-cache -fv
インストールされたか確認します。
fc-list | grep "MesloLGS NF"
表示されればOKです。
~/.fonts でもよい?
以前は、
~/.fonts
もよく使われていました。
現在は、
~/.local/share/fonts
を使用するほうがよいでしょう。
9. ターミナル側のフォントを変更する
フォントをOSへインストールしただけでは、Powerlevel10kのアイコンが正しく表示されないことがあります。
実際に使用しているターミナルのフォントを MesloLGS NF に変更します。
ここがかなり重要です。
macOS Terminal
Terminalの設定から、
Terminal
→ Settings
→ Profiles
→ Text
→ Font
を開き、
MesloLGS NF
を指定します。
iTerm2
iTerm2の場合は、
Settings
→ Profiles
→ Text
→ Font
から、
MesloLGS NF
を指定します。
Ghostty
Ghosttyでは設定ファイルに、
font-family = "MesloLGS NF"
を指定します。
macOS/Linuxともに、設定を反映したあとGhosttyを再起動します。
GNOME Terminal
Ubuntu標準のGNOME Terminalの場合、
Preferences
→ Profile
→ Text
→ Custom font
を有効にして、
MesloLGS NF
を選択します。
VS Code
VS CodeのIntegrated TerminalでもPowerlevel10kを使用する場合は、
"terminal.integrated.fontFamily": "MesloLGS NF"
を設定します。
10. Powerlevel10kの初期設定
フォントを設定した状態で、
p10k configure
を実行します。
Powerlevel10kの設定ウィザードが開始されます。
最初に、
Does this look like a diamond?
など、特殊文字が正常に見えているか確認されます。
正常に表示されていれば、
Yes
を選択します。
その後、
Prompt Style
Character Set
Show Current Time?
Prompt Separators
Prompt Heads
Prompt Tails
Prompt Height
Prompt Connection
Prompt Frame
Prompt Spacing
Icons
Prompt Flow
Transient Prompt
Instant Prompt
などを対話形式で設定できます。
特にこだわりがなければ、プレビューを見ながら好きなものを選んでいけば問題ありません。
11. Powerlevel10kの設定ファイル
設定ウィザードを完了すると、
~/.p10k.zsh
が作成されます。
.zshrc の末尾付近には通常、
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
が追加されます。
したがって構成としては、
~/.zshrc
↓
~/.p10k.zsh
となっています。
Powerlevel10kの細かい表示を変更したい場合は、
nano ~/.p10k.zsh
などで編集できます。
12. Powerlevel10kを再設定する
デザインを変更したくなった場合は簡単です。
p10k configure
をもう一度実行します。
設定ウィザードが最初から起動します。
例えば、
- アイコンを増やしたい
- 1行表示から2行表示に変更したい
- Git情報の見え方を変えたい
- Unicode表示がおかしいので再設定したい
といった場合に便利です。
13. AppleマークやHomeアイコンが表示されない場合
Powerlevel10kは動いているのに、
やHome、Gitなどのアイコンが表示されず、
□
や文字化けになってしまうことがあります。
この場合、Powerlevel10kそのものではなく、フォント設定が原因であることが多いです。
まず、
p10k configure
を実行します。
最初の特殊文字確認で正しく表示されなければ、ターミナルのフォントを確認します。
使用しているフォントが、
MesloLGS NF
になっていることを確認します。
単に、
Meslo
や、
Migu 1M
などを指定しただけでは、Powerlevel10kで使用するNerd Fontのアイコンがすべて表示できるとは限りません。
Powerlevel10kのアイコン表示を確実にしたい場合は、
MesloLGS NF
を使用するのが簡単です。
14. Oh My Zshのプラグイン
Oh My Zshでは .zshrc の、
plugins=(git)
という部分でプラグインを設定できます。
例えば、
plugins=(
git
sudo
)
とできます。
変更後は、
exec zsh
でZshを再起動します。
15. autosuggestionsとsyntax highlightingも追加する
さらに使いやすくしたい場合には、
- zsh-autosuggestions
- zsh-syntax-highlighting
も便利です。
zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-autosuggestions \
"${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions"
zsh-syntax-highlighting
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git \
"${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting"
.zshrc を、
plugins=(
git
sudo
zsh-autosuggestions
zsh-syntax-highlighting
)
のように変更します。
その後、
exec zsh
します。
16. .zshrc の例
最終的な .zshrc の主要部分は、例えば次のようになります。
# Path to your Oh My Zsh installation.
export ZSH="$HOME/.oh-my-zsh"
# Powerlevel10k
ZSH_THEME="powerlevel10k/powerlevel10k"
# Oh My Zsh plugins
plugins=(
git
sudo
zsh-autosuggestions
zsh-syntax-highlighting
)
source $ZSH/oh-my-zsh.sh
# Powerlevel10k configuration
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
実際にはPowerlevel10kのInstant Prompt関連の記述なども追加されるため、p10k configure が生成した内容は基本的にそのまま残しておくことをおすすめします。
17. Powerlevel10kのアップデート
Oh My Zshのカスタムテーマとしてインストールした場合、
git -C \
"${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k" \
pull
でPowerlevel10kを更新できます。
更新後は、
exec zsh
でZshを再起動します。
18. Oh My Zshのアップデート
Oh My Zshは、
omz update
で更新できます。
19. UbuntuでZshにならない場合
設定したのにBashのままの場合は、
echo $SHELL
を確認します。
まだ、
/bin/bash
となっていたら、
chsh -s "$(which zsh)"
を実行し直します。
その後、ターミナルを閉じるだけではなく、一度ログアウトしてログインし直します。
20. 設定をバックアップする
別のPCでも同じPowerlevel10k設定を使いたい場合は、
~/.zshrc
~/.p10k.zsh
を保存しておくと便利です。
例えばGitHubのdotfilesリポジトリなどで管理しておけば、
Mac
Ubuntu
リモートワークステーション
などでほぼ同じZsh環境を構築できます。
ただし、
~/.oh-my-zsh
そのものをバックアップするよりも、
.zshrc
.p10k.zsh
macOS / Ubuntu で Zsh + Oh My Zsh + Powerlevel10k 環境を構築する
はじめに
ターミナル環境を見やすく、使いやすくするために、
- Zsh
- Oh My Zsh
- Powerlevel10k
- Nerd Font
を導入します。
この記事では macOS と Ubuntu の両方について、ZshのインストールからPowerlevel10kの設定までまとめます。
最終的には、例えば次のような情報をプロンプトに表示できるようになります。
- OSやホストを表すアイコン
- ホームディレクトリや現在のディレクトリ
- Gitブランチ
- Gitの変更状態
- Python仮想環境
- コマンドの終了ステータス
特にPowerlevel10kでは特殊なアイコンを多数使用するため、Nerd Fontの設定が重要です。
1. 全体の構成
今回構築する環境は次のようになります。
Terminal
└── Zsh
└── Oh My Zsh
└── Powerlevel10k
さらに、アイコンを正しく表示するために、
MesloLGS NF
というNerd Fontをターミナルに設定します。
大まかな流れは、
1. Zshをインストール
2. Zshをデフォルトシェルにする
3. Oh My Zshをインストール
4. Powerlevel10kをインストール
5. Nerd Fontをインストール
6. ターミナルでNerd Fontを指定
7. p10k configure を実行
です。
2. macOSの場合
2.1 Zshの確認
現在のmacOSではZshが標準でインストールされているため、まず確認します。
zsh --version
例えば、
zsh 5.x.x (...)
のように表示されればOKです。
使用中のシェルも確認できます。
echo $SHELL
/bin/zsh
となっていれば、すでにZshがデフォルトシェルです。
その場合、Zshを追加でインストールする必要はありません。
Homebrew版Zshを使用したい場合
Homebrew版を使いたい場合は、
brew install zsh
でもインストールできます。
ただし、特に理由がなければmacOS標準のZshで十分です。
3. Ubuntuの場合
UbuntuではZshをインストールします。
sudo apt update
sudo apt install -y zsh git curl
インストールを確認します。
zsh --version
Zshの場所も確認します。
which zsh
通常は、
/usr/bin/zsh
となります。
3.1 Zshをデフォルトシェルにする
Ubuntuでは、
chsh -s "$(which zsh)"
を実行します。
確認します。
grep "$USER" /etc/passwd
末尾が、
/usr/bin/zsh
になっていれば設定されています。
一度ログアウトして、再度ログインします。
その後、
echo $SHELL
を実行して、
/usr/bin/zsh
となっていればOKです。
4. Oh My Zshのインストール
macOS / Ubuntuともに、ここからはほぼ同じです。
Oh My Zshをインストールします。
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
インストールが完了すると、
~/.oh-my-zsh
が作成されます。
また、
~/.zshrc
も作成されます。
確認してみます。
ls -la ~ | grep zsh
5. Powerlevel10kのインストール
Powerlevel10kをOh My Zshのカスタムテーマディレクトリにcloneします。
git clone --depth=1 \
https://github.com/romkatv/powerlevel10k.git \
"${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k"
次に、
nano ~/.zshrc
などで .zshrc を開きます。
次の行を探します。
ZSH_THEME="robbyrussell"
これを、
ZSH_THEME="powerlevel10k/powerlevel10k"
に変更します。
保存したらZshを起動し直します。
exec zsh
初回起動時にはPowerlevel10kの設定ウィザードが起動します。
起動しない場合は、
p10k configure
を実行します。
6. Nerd Fontをインストールする
Powerlevel10kでは、
- フォルダ
- Git
- Home
- OS
- 各種ステータス
などをアイコンで表示します。
通常のフォントではこれらの文字を持っていないことがあるため、Nerd Fontを使用します。
Powerlevel10kで推奨されているのが、
MesloLGS NF
です。
必要なのは基本的に次の4フォントです。
MesloLGS NF Regular
MesloLGS NF Bold
MesloLGS NF Italic
MesloLGS NF Bold Italic
7. macOSにMesloLGS NFをインストール
例えば次のようにダウンロードします。
mkdir -p ~/Downloads/MesloLGS-NF
cd ~/Downloads/MesloLGS-NF
curl -fLo "MesloLGS NF Regular.ttf" \
"https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Regular.ttf"
curl -fLo "MesloLGS NF Bold.ttf" \
"https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold.ttf"
curl -fLo "MesloLGS NF Italic.ttf" \
"https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Italic.ttf"
curl -fLo "MesloLGS NF Bold Italic.ttf" \
"https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold%20Italic.ttf"
Finderから各 .ttf ファイルを開いて、
インストール
を選択します。
8. UbuntuにMesloLGS NFをインストール
Ubuntuではユーザー用フォントディレクトリ、
~/.local/share/fonts
に入れるのがおすすめです。
mkdir -p ~/.local/share/fonts
cd ~/.local/share/fonts
フォントをダウンロードします。
wget \
"https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Regular.ttf"
wget \
"https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold.ttf"
wget \
"https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Italic.ttf"
wget \
"https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold%20Italic.ttf"
フォントキャッシュを更新します。
fc-cache -fv
インストールされたか確認します。
fc-list | grep "MesloLGS NF"
表示されればOKです。
~/.fonts でもよい?
以前は、
~/.fonts
もよく使われていました。
現在は、
~/.local/share/fonts
を使用するほうがよいでしょう。
9. ターミナル側のフォントを変更する
フォントをOSへインストールしただけでは、Powerlevel10kのアイコンが正しく表示されないことがあります。
実際に使用しているターミナルのフォントを MesloLGS NF に変更します。
ここがかなり重要です。
macOS Terminal
Terminalの設定から、
Terminal
→ Settings
→ Profiles
→ Text
→ Font
を開き、
MesloLGS NF
を指定します。
iTerm2
iTerm2の場合は、
Settings
→ Profiles
→ Text
→ Font
から、
MesloLGS NF
を指定します。
Ghostty
Ghosttyでは設定ファイルに、
font-family = "MesloLGS NF"
を指定します。
macOS/Linuxともに、設定を反映したあとGhosttyを再起動します。
GNOME Terminal
Ubuntu標準のGNOME Terminalの場合、
Preferences
→ Profile
→ Text
→ Custom font
を有効にして、
MesloLGS NF
を選択します。
VS Code
VS CodeのIntegrated TerminalでもPowerlevel10kを使用する場合は、
"terminal.integrated.fontFamily": "MesloLGS NF"
を設定します。
10. Powerlevel10kの初期設定
フォントを設定した状態で、
p10k configure
を実行します。
Powerlevel10kの設定ウィザードが開始されます。
最初に、
Does this look like a diamond?
など、特殊文字が正常に見えているか確認されます。
正常に表示されていれば、
Yes
を選択します。
その後、
Prompt Style
Character Set
Show Current Time?
Prompt Separators
Prompt Heads
Prompt Tails
Prompt Height
Prompt Connection
Prompt Frame
Prompt Spacing
Icons
Prompt Flow
Transient Prompt
Instant Prompt
などを対話形式で設定できます。
特にこだわりがなければ、プレビューを見ながら好きなものを選んでいけば問題ありません。
11. Powerlevel10kの設定ファイル
設定ウィザードを完了すると、
~/.p10k.zsh
が作成されます。
.zshrc の末尾付近には通常、
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
が追加されます。
したがって構成としては、
~/.zshrc
↓
~/.p10k.zsh
となっています。
Powerlevel10kの細かい表示を変更したい場合は、
nano ~/.p10k.zsh
などで編集できます。
12. Powerlevel10kを再設定する
デザインを変更したくなった場合は簡単です。
p10k configure
をもう一度実行します。
設定ウィザードが最初から起動します。
例えば、
- アイコンを増やしたい
- 1行表示から2行表示に変更したい
- Git情報の見え方を変えたい
- Unicode表示がおかしいので再設定したい
といった場合に便利です。
13. AppleマークやHomeアイコンが表示されない場合
Powerlevel10kは動いているのに、
やHome、Gitなどのアイコンが表示されず、
□
や文字化けになってしまうことがあります。
この場合、Powerlevel10kそのものではなく、フォント設定が原因であることが多いです。
まず、
p10k configure
を実行します。
最初の特殊文字確認で正しく表示されなければ、ターミナルのフォントを確認します。
使用しているフォントが、
MesloLGS NF
になっていることを確認します。
単に、
Meslo
や、
Migu 1M
などを指定しただけでは、Powerlevel10kで使用するNerd Fontのアイコンがすべて表示できるとは限りません。
Powerlevel10kのアイコン表示を確実にしたい場合は、
MesloLGS NF
を使用するのが簡単です。
14. Oh My Zshのプラグイン
Oh My Zshでは .zshrc の、
plugins=(git)
という部分でプラグインを設定できます。
例えば、
plugins=(
git
sudo
)
とできます。
変更後は、
exec zsh
でZshを再起動します。
15. autosuggestionsとsyntax highlightingも追加する
さらに使いやすくしたい場合には、
- zsh-autosuggestions
- zsh-syntax-highlighting
も便利です。
zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-autosuggestions \
"${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions"
zsh-syntax-highlighting
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git \
"${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting"
.zshrc を、
plugins=(
git
sudo
zsh-autosuggestions
zsh-syntax-highlighting
)
のように変更します。
その後、
exec zsh
します。
16. .zshrc の例
最終的な .zshrc の主要部分は、例えば次のようになります。
# Path to your Oh My Zsh installation.
export ZSH="$HOME/.oh-my-zsh"
# Powerlevel10k
ZSH_THEME="powerlevel10k/powerlevel10k"
# Oh My Zsh plugins
plugins=(
git
sudo
zsh-autosuggestions
zsh-syntax-highlighting
)
source $ZSH/oh-my-zsh.sh
# Powerlevel10k configuration
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
実際にはPowerlevel10kのInstant Prompt関連の記述なども追加されるため、p10k configure が生成した内容は基本的にそのまま残しておくことをおすすめします。
17. Powerlevel10kのアップデート
Oh My Zshのカスタムテーマとしてインストールした場合、
git -C \
"${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k" \
pull
でPowerlevel10kを更新できます。
更新後は、
exec zsh
でZshを再起動します。
18. Oh My Zshのアップデート
Oh My Zshは、
omz update
で更新できます。
19. UbuntuでZshにならない場合
設定したのにBashのままの場合は、
echo $SHELL
を確認します。
まだ、
/bin/bash
となっていたら、
chsh -s "$(which zsh)"
を実行し直します。
その後、ターミナルを閉じるだけではなく、一度ログアウトしてログインし直します。
20. 設定をバックアップする
別のPCでも同じPowerlevel10k設定を使いたい場合は、
~/.zshrc
~/.p10k.zsh
を保存しておくと便利です。
例えばGitHubのdotfilesリポジトリなどで管理しておけば、
Mac
Ubuntu
リモートワークステーション
などでほぼ同じZsh環境を構築できます。
ただし、
~/.oh-my-zsh
そのものをバックアップするよりも、
.zshrc
.p10k.zsh
だけを管理し、Oh My ZshやPowerlevel10k自体は各PCでインストールし直すほうが扱いやすいと思います。
21. macOS / Ubuntu の違いまとめ
| 項目 | macOS | Ubuntu |
|---|---|---|
| Zsh | 標準搭載 | apt install zsh |
| デフォルトシェル | 通常Zsh |
chsh が必要 |
| Oh My Zsh | 共通 | 共通 |
| Powerlevel10k | 共通 | 共通 |
| 推奨フォント | MesloLGS NF | MesloLGS NF |
| ユーザーフォント | Font Book等 | ~/.local/share/fonts |
| 設定ファイル | ~/.zshrc |
~/.zshrc |
| p10k設定 | ~/.p10k.zsh |
~/.p10k.zsh |
結局、OSによって違うのは主に、
Zshのインストール
フォントのインストール
ターミナル側のフォント設定
くらいです。
Oh My Zsh以降については、macOSとUbuntuでほぼ同じ手順を使用できます。
まとめ
最低限必要な操作だけまとめると、Ubuntuでは、
sudo apt update
sudo apt install -y zsh git curl
chsh -s "$(which zsh)"
ログインし直して、
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
Powerlevel10kをインストールします。
git clone --depth=1 \
https://github.com/romkatv/powerlevel10k.git \
"${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k"
.zshrc を、
ZSH_THEME="powerlevel10k/powerlevel10k"
に変更。
Nerd Fontとして、
MesloLGS NF
をインストールしてターミナル側でも指定し、
exec zsh
p10k configure
を実行すれば完成です。
macOSの場合は、もともとZshが入っているため、基本的には Oh My Zshのインストールから始めればOKです。
Powerlevel10kでアイコンが表示されない場合は、まずPowerlevel10kの設定そのものよりも、
ターミナルで MesloLGS NF が使用されているか
を確認するのがポイントです。
参考
- Oh My Zsh 公式サイト
- Powerlevel10k GitHub
- Zsh Documentation
macOS / Ubuntu で Zsh + Oh My Zsh + Powerlevel10k 環境を構築する
はじめに
ターミナル環境を見やすく、使いやすくするために、
- Zsh
- Oh My Zsh
- Powerlevel10k
- Nerd Font
を導入します。
この記事では macOS と Ubuntu の両方について、ZshのインストールからPowerlevel10kの設定までまとめます。
最終的には、例えば次のような情報をプロンプトに表示できるようになります。
- OSやホストを表すアイコン
- ホームディレクトリや現在のディレクトリ
- Gitブランチ
- Gitの変更状態
- Python仮想環境
- コマンドの終了ステータス
特にPowerlevel10kでは特殊なアイコンを多数使用するため、Nerd Fontの設定が重要です。
1. 全体の構成
今回構築する環境は次のようになります。
Terminal
└── Zsh
└── Oh My Zsh
└── Powerlevel10k
さらに、アイコンを正しく表示するために、
MesloLGS NF
というNerd Fontをターミナルに設定します。
大まかな流れは、
1. Zshをインストール
2. Zshをデフォルトシェルにする
3. Oh My Zshをインストール
4. Powerlevel10kをインストール
5. Nerd Fontをインストール
6. ターミナルでNerd Fontを指定
7. p10k configure を実行
です。
2. macOSの場合
2.1 Zshの確認
現在のmacOSではZshが標準でインストールされているため、まず確認します。
zsh --version
例えば、
zsh 5.x.x (...)
のように表示されればOKです。
使用中のシェルも確認できます。
echo $SHELL
/bin/zsh
となっていれば、すでにZshがデフォルトシェルです。
その場合、Zshを追加でインストールする必要はありません。
Homebrew版Zshを使用したい場合
Homebrew版を使いたい場合は、
brew install zsh
でもインストールできます。
ただし、特に理由がなければmacOS標準のZshで十分です。
3. Ubuntuの場合
UbuntuではZshをインストールします。
sudo apt update
sudo apt install -y zsh git curl
インストールを確認します。
zsh --version
Zshの場所も確認します。
which zsh
通常は、
/usr/bin/zsh
となります。
3.1 Zshをデフォルトシェルにする
Ubuntuでは、
chsh -s "$(which zsh)"
を実行します。
確認します。
grep "$USER" /etc/passwd
末尾が、
/usr/bin/zsh
になっていれば設定されています。
一度ログアウトして、再度ログインします。
その後、
echo $SHELL
を実行して、
/usr/bin/zsh
となっていればOKです。
4. Oh My Zshのインストール
macOS / Ubuntuともに、ここからはほぼ同じです。
Oh My Zshをインストールします。
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
インストールが完了すると、
~/.oh-my-zsh
が作成されます。
また、
~/.zshrc
も作成されます。
確認してみます。
ls -la ~ | grep zsh
5. Powerlevel10kのインストール
Powerlevel10kをOh My Zshのカスタムテーマディレクトリにcloneします。
git clone --depth=1 \
https://github.com/romkatv/powerlevel10k.git \
"${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k"
次に、
nano ~/.zshrc
などで .zshrc を開きます。
次の行を探します。
ZSH_THEME="robbyrussell"
これを、
ZSH_THEME="powerlevel10k/powerlevel10k"
に変更します。
保存したらZshを起動し直します。
exec zsh
初回起動時にはPowerlevel10kの設定ウィザードが起動します。
起動しない場合は、
p10k configure
を実行します。
6. Nerd Fontをインストールする
Powerlevel10kでは、
- フォルダ
- Git
- Home
- OS
- 各種ステータス
などをアイコンで表示します。
通常のフォントではこれらの文字を持っていないことがあるため、Nerd Fontを使用します。
Powerlevel10kで推奨されているのが、
MesloLGS NF
です。
必要なのは基本的に次の4フォントです。
MesloLGS NF Regular
MesloLGS NF Bold
MesloLGS NF Italic
MesloLGS NF Bold Italic
7. macOSにMesloLGS NFをインストール
例えば次のようにダウンロードします。
mkdir -p ~/Downloads/MesloLGS-NF
cd ~/Downloads/MesloLGS-NF
curl -fLo "MesloLGS NF Regular.ttf" \
"https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Regular.ttf"
curl -fLo "MesloLGS NF Bold.ttf" \
"https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold.ttf"
curl -fLo "MesloLGS NF Italic.ttf" \
"https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Italic.ttf"
curl -fLo "MesloLGS NF Bold Italic.ttf" \
"https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold%20Italic.ttf"
Finderから各 .ttf ファイルを開いて、
インストール
を選択します。
8. UbuntuにMesloLGS NFをインストール
Ubuntuではユーザー用フォントディレクトリ、
~/.local/share/fonts
に入れるのがおすすめです。
mkdir -p ~/.local/share/fonts
cd ~/.local/share/fonts
フォントをダウンロードします。
wget \
"https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Regular.ttf"
wget \
"https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold.ttf"
wget \
"https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Italic.ttf"
wget \
"https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold%20Italic.ttf"
フォントキャッシュを更新します。
fc-cache -fv
インストールされたか確認します。
fc-list | grep "MesloLGS NF"
表示されればOKです。
~/.fonts でもよい?
以前は、
~/.fonts
もよく使われていました。
現在は、
~/.local/share/fonts
を使用するほうがよいでしょう。
9. ターミナル側のフォントを変更する
フォントをOSへインストールしただけでは、Powerlevel10kのアイコンが正しく表示されないことがあります。
実際に使用しているターミナルのフォントを MesloLGS NF に変更します。
ここがかなり重要です。
macOS Terminal
Terminalの設定から、
Terminal
→ Settings
→ Profiles
→ Text
→ Font
を開き、
MesloLGS NF
を指定します。
iTerm2
iTerm2の場合は、
Settings
→ Profiles
→ Text
→ Font
から、
MesloLGS NF
を指定します。
Ghostty
Ghosttyでは設定ファイルに、
font-family = "MesloLGS NF"
を指定します。
macOS/Linuxともに、設定を反映したあとGhosttyを再起動します。
GNOME Terminal
Ubuntu標準のGNOME Terminalの場合、
Preferences
→ Profile
→ Text
→ Custom font
を有効にして、
MesloLGS NF
を選択します。
VS Code
VS CodeのIntegrated TerminalでもPowerlevel10kを使用する場合は、
"terminal.integrated.fontFamily": "MesloLGS NF"
を設定します。
10. Powerlevel10kの初期設定
フォントを設定した状態で、
p10k configure
を実行します。
Powerlevel10kの設定ウィザードが開始されます。
最初に、
Does this look like a diamond?
など、特殊文字が正常に見えているか確認されます。
正常に表示されていれば、
Yes
を選択します。
その後、
Prompt Style
Character Set
Show Current Time?
Prompt Separators
Prompt Heads
Prompt Tails
Prompt Height
Prompt Connection
Prompt Frame
Prompt Spacing
Icons
Prompt Flow
Transient Prompt
Instant Prompt
などを対話形式で設定できます。
特にこだわりがなければ、プレビューを見ながら好きなものを選んでいけば問題ありません。
11. Powerlevel10kの設定ファイル
設定ウィザードを完了すると、
~/.p10k.zsh
が作成されます。
.zshrc の末尾付近には通常、
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
が追加されます。
したがって構成としては、
~/.zshrc
↓
~/.p10k.zsh
となっています。
Powerlevel10kの細かい表示を変更したい場合は、
nano ~/.p10k.zsh
などで編集できます。
12. Powerlevel10kを再設定する
デザインを変更したくなった場合は簡単です。
p10k configure
をもう一度実行します。
設定ウィザードが最初から起動します。
例えば、
- アイコンを増やしたい
- 1行表示から2行表示に変更したい
- Git情報の見え方を変えたい
- Unicode表示がおかしいので再設定したい
といった場合に便利です。
13. AppleマークやHomeアイコンが表示されない場合
Powerlevel10kは動いているのに、
やHome、Gitなどのアイコンが表示されず、
□
や文字化けになってしまうことがあります。
この場合、Powerlevel10kそのものではなく、フォント設定が原因であることが多いです。
まず、
p10k configure
を実行します。
最初の特殊文字確認で正しく表示されなければ、ターミナルのフォントを確認します。
使用しているフォントが、
MesloLGS NF
になっていることを確認します。
単に、
Meslo
や、
Migu 1M
などを指定しただけでは、Powerlevel10kで使用するNerd Fontのアイコンがすべて表示できるとは限りません。
Powerlevel10kのアイコン表示を確実にしたい場合は、
MesloLGS NF
を使用するのが簡単です。
14. Oh My Zshのプラグイン
Oh My Zshでは .zshrc の、
plugins=(git)
という部分でプラグインを設定できます。
例えば、
plugins=(
git
sudo
)
とできます。
変更後は、
exec zsh
でZshを再起動します。
15. autosuggestionsとsyntax highlightingも追加する
さらに使いやすくしたい場合には、
- zsh-autosuggestions
- zsh-syntax-highlighting
も便利です。
zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-autosuggestions \
"${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions"
zsh-syntax-highlighting
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git \
"${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting"
.zshrc を、
plugins=(
git
sudo
zsh-autosuggestions
zsh-syntax-highlighting
)
のように変更します。
その後、
exec zsh
します。
16. .zshrc の例
最終的な .zshrc の主要部分は、例えば次のようになります。
# Path to your Oh My Zsh installation.
export ZSH="$HOME/.oh-my-zsh"
# Powerlevel10k
ZSH_THEME="powerlevel10k/powerlevel10k"
# Oh My Zsh plugins
plugins=(
git
sudo
zsh-autosuggestions
zsh-syntax-highlighting
)
source $ZSH/oh-my-zsh.sh
# Powerlevel10k configuration
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
実際にはPowerlevel10kのInstant Prompt関連の記述なども追加されるため、p10k configure が生成した内容は基本的にそのまま残しておくことをおすすめします。
17. Powerlevel10kのアップデート
Oh My Zshのカスタムテーマとしてインストールした場合、
git -C \
"${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k" \
pull
でPowerlevel10kを更新できます。
更新後は、
exec zsh
でZshを再起動します。
18. Oh My Zshのアップデート
Oh My Zshは、
omz update
で更新できます。
19. UbuntuでZshにならない場合
設定したのにBashのままの場合は、
echo $SHELL
を確認します。
まだ、
/bin/bash
となっていたら、
chsh -s "$(which zsh)"
を実行し直します。
その後、ターミナルを閉じるだけではなく、一度ログアウトしてログインし直します。
20. 設定をバックアップする
別のPCでも同じPowerlevel10k設定を使いたい場合は、
~/.zshrc
~/.p10k.zsh
を保存しておくと便利です。
例えばGitHubのdotfilesリポジトリなどで管理しておけば、
Mac
Ubuntu
リモートワークステーション
などでほぼ同じZsh環境を構築できます。
ただし、
~/.oh-my-zsh
そのものをバックアップするよりも、
.zshrc
.p10k.zsh
だけを管理し、Oh My ZshやPowerlevel10k自体は各PCでインストールし直すほうが扱いやすいと思います。
21. macOS / Ubuntu の違いまとめ
| 項目 | macOS | Ubuntu |
|---|---|---|
| Zsh | 標準搭載 | apt install zsh |
| デフォルトシェル | 通常Zsh |
chsh が必要 |
| Oh My Zsh | 共通 | 共通 |
| Powerlevel10k | 共通 | 共通 |
| 推奨フォント | MesloLGS NF | MesloLGS NF |
| ユーザーフォント | Font Book等 | ~/.local/share/fonts |
| 設定ファイル | ~/.zshrc |
~/.zshrc |
| p10k設定 | ~/.p10k.zsh |
~/.p10k.zsh |
結局、OSによって違うのは主に、
Zshのインストール
フォントのインストール
ターミナル側のフォント設定
くらいです。
Oh My Zsh以降については、macOSとUbuntuでほぼ同じ手順を使用できます。
まとめ
最低限必要な操作だけまとめると、Ubuntuでは、
sudo apt update
sudo apt install -y zsh git curl
chsh -s "$(which zsh)"
ログインし直して、
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
Powerlevel10kをインストールします。
git clone --depth=1 \
https://github.com/romkatv/powerlevel10k.git \
"${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k"
.zshrc を、
ZSH_THEME="powerlevel10k/powerlevel10k"
に変更。
Nerd Fontとして、
MesloLGS NF
をインストールしてターミナル側でも指定し、
exec zsh
p10k configure
を実行すれば完成です。
macOSの場合は、もともとZshが入っているため、基本的には Oh My Zshのインストールから始めればOKです。
Powerlevel10kでアイコンが表示されない場合は、まずPowerlevel10kの設定そのものよりも、
ターミナルで MesloLGS NF が使用されているか
を確認するのがポイントです。
参考
- Oh My Zsh 公式サイト
- Powerlevel10k GitHub
- Zsh Documentation
だけを管理し、Oh My ZshやPowerlevel10k自体は各PCでインストールし直すほうが扱いやすいと思います。
21. macOS / Ubuntu の違いまとめ
| 項目 | macOS | Ubuntu |
|---|---|---|
| Zsh | 標準搭載 | apt install zsh |
| デフォルトシェル | 通常Zsh |
chsh が必要 |
| Oh My Zsh | 共通 | 共通 |
| Powerlevel10k | 共通 | 共通 |
| 推奨フォント | MesloLGS NF | MesloLGS NF |
| ユーザーフォント | Font Book等 | ~/.local/share/fonts |
| 設定ファイル | ~/.zshrc |
~/.zshrc |
| p10k設定 | ~/.p10k.zsh |
~/.p10k.zsh |
結局、OSによって違うのは主に、
Zshのインストール
フォントのインストール
ターミナル側のフォント設定
くらいです。
Oh My Zsh以降については、macOSとUbuntuでほぼ同じ手順を使用できます。
まとめ
最低限必要な操作だけまとめると、Ubuntuでは、
sudo apt update
sudo apt install -y zsh git curl
chsh -s "$(which zsh)"
ログインし直して、
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
Powerlevel10kをインストールします。
git clone --depth=1 \
https://github.com/romkatv/powerlevel10k.git \
"${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k"
.zshrc を、
ZSH_THEME="powerlevel10k/powerlevel10k"
に変更。
Nerd Fontとして、
MesloLGS NF
をインストールしてターミナル側でも指定し、
exec zsh
p10k configure
を実行すれば完成です。
macOSの場合は、もともとZshが入っているため、基本的には Oh My Zshのインストールから始めればOKです。
Powerlevel10kでアイコンが表示されない場合は、まずPowerlevel10kの設定そのものよりも、
ターミナルで MesloLGS NF が使用されているか
を確認するのがポイントです。
参考
- Oh My Zsh 公式サイト
- Powerlevel10k GitHub
- Zsh Documentation