LoginSignup
13
10

More than 1 year has passed since last update.

【WSL2】WSL2環境でOh my zshを入れてAgnosterのテーマを適用する

Last updated at Posted at 2022-06-13

本記事で取り扱うこと

  • WSL2環境のUbuntu20.04環境へのZsh・Oh my zsh導入方法。
  • zshのthemeとしてAgnosterを適用する方法(文字化け回避含め)
  • その他細かいTips(Windowsターミナルの既定値変更、ホストネームの非表示)

ゴール

こんな感じのターミナルを目指します。
image.png

本記事であまり取り扱わないこと

  • 他環境での設定
  • WSL2の導入(ひと昔前に比べたら楽に適用できると思いますのでMicrosoft公式Docを参照ください)

環境

  • WSL2導入済み環境(Windows10、ビルドバージョン19043.1706)
  • Ubuntu20.04LTS
  • Windowsターミナルを利用

元々他作業でセットアップ済みのソフトウェア等あるかもしれませんので、詰まるようであればコメントまでお願いします。

はじめに

久しぶりにQiita記事を書くので軽いネタにしておきます。
私用のMacbookでzshを利用しているのですが、WSL2の環境でも合わせてみたくなったので
導入してみました。
※zshがbashの上位互換というわけではありませんので、自己責任でお願いします。

前提

WSL2が導入されており、Microsft StoreからUbuntu20.04LTSがインストールされていること。
※MicrosoftのWSL のインストールWindows10でWSL2を使うといった記事を参照ください。

1. zshのインストール

基本的にはUbuntuのセットアップ後は以下の通りbashが適用されていると思います。
echo $SHELLで確認。
image.png

zshインストール

# インストール
$ sudo apt install zsh
# バージョン確認
$ zsh --version
zsh 5.8 (x86_64-ubuntu-linux-gnu)
# デフォルトのシェルをzshに変更
$ chsh -s $(which zsh)

上記まで実行し、Ubuntuを再起動すると以下のようになります。
image.png
デフォルトのシェルがzshに変更されていますね。
ただしデフォルトだとシンプルすぎるようです。

2. Oh my zshのインストール

Oh my zshはzsh用のフレームワークで良い感じのターミナルを実現するのに役立ちます。

Oh my zshのインストール

# curlでのインストール(curlが入っているかはcurl --versionなどで確認)
$ sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

完了すると、こんな感じでお出迎えされます。
image.png

3. テーマの変更(Agnoster)

Oh my zshインストールの際にも記載されていますが、~/.zshrcが設定ファイルとなります。
ここでは設定ファイル中のテーマにagnosterを適用します。

テーマの変更

デフォルトはrobbyrussellが適用されているため変更します。

$ vi ~/.zshrc

~~~中略~~~
# Set name of the theme to load --- if set to "random", it will
# load a random theme each time oh-my-zsh is loaded, in which case,
# to know which specific one was loaded, run: echo $RANDOM_THEME
# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
ZSH_THEME="robbyrussell"
# ↑を"agnoster"に変更し、保存
~~~~~~~~

# 設定ファイルの再読み込み
$ source ~/.zshrc

上記まで行って再読み込みをすると、何やら文字化けしています、、
image.png

文字化けの解消(フォントのインストール)

agnosterテーマのGitHubにも記載がありますが、利用するためにはPowerline-patched fontがインストールされている必要があります。
ニッチですが今回ここで詰まったので参考記事を元にやります。
Windows側に関連ファイルがあるとWSLの処理が遅くなる可能性があるためWSL側で作業します。(未検証)

powerlineをインストール

# 作業用のフォルダに移動
$ cd /var/tmp
# インストール
$ git clone https://github.com/powerline/fonts.git

PowerShellでのpsファイル実行

インストールしたfontsフォルダ中にあるinstall.ps1を管理者実行したPowerShellで叩きます。

  • 管理者として実行したPowerShellで以下を実行
# WSL側の上記でインストールしたフォルダに移動
cd \\wsl$\Ubuntu-20.04\var\tmp\fonts
# 実行ポリシーを変更
Set-ExecutionPolicy Bypass
# フォントをインストール
.\install.ps1
# 実行ポリシーをデフォルトに戻す
Set-ExecutionPolicy Default

インストール出来たら/var/tmp/fontsは削除しても構いません。

フォントの変更

  • Windowsターミナル上でCtrlと「,」のキーを同時押しし、設定画面を立ち上げます
    サイドメニューの「Ubuntu-20.04」→外観→フォントフェイスで「XXXXX for Powerline」というPowerline系のフォントを選択します。
    複数あるため好きなもので。添付では「Cousin for Powerline」を選択しています。
    image.png
    ここではWindowsターミナルを利用していますが、
    Ubuntu20.04アプリでは上のバーを右クリック→既定値→フォント で変更したり、
    VSCodeのターミナルなどでもフォントを追加・変更すれば大丈夫かと思います。

完成

ターミナルを再起動などすれば文字化けなども無くなり、意図したテーマが利用できます。
良きターミナルライフを!
次回はpeco入れようと思います。
image.png

その他関連Tips

Windowsターミナルの規定値をUbuntuにする

最初はWindows PowerShellが立ち上がるかと思いますが、この規定値は変更することができます。(settings.jsonで管理されているっぽい)

  1. Ctrlと「,」のキーを同時押しし、設定画面を立ち上げます
    image.png

  2. 既定のプロファイルで「Ubuntu-20.04」などを選択し、保存します

ホストネーム(@以降)を非表示にする

~/.zshrcの最後に以下を付け加える。

prompt_context() {
  if [[ "$USER" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then
    prompt_segment black default "%(!.%{%F{yellow}%}.)$USER"
  fi
}

アフターはこんな感じです。
image.png

13
10
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
13
10