0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

macOS / Ubuntu で Zsh + Oh My Zsh + Powerlevel10k 環境を構築する

0
Posted at

はじめに

ターミナル環境を見やすく、使いやすくするために、

  • 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
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?