本記事で取り扱うこと
- WSL2環境のUbuntu20.04環境へのZsh・Oh my zsh導入方法。
- zshのthemeとしてAgnosterを適用する方法(文字化け回避含め)
- その他細かいTips(Windowsターミナルの既定値変更、ホストネームの非表示)
ゴール
本記事であまり取り扱わないこと
- 他環境での設定
- 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
で確認。
zshインストール
# インストール
$ sudo apt install zsh
# バージョン確認
$ zsh --version
zsh 5.8 (x86_64-ubuntu-linux-gnu)
# デフォルトのシェルをzshに変更
$ chsh -s $(which zsh)
上記まで実行し、Ubuntuを再起動すると以下のようになります。
デフォルトのシェルが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)"
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
上記まで行って再読み込みをすると、何やら文字化けしています、、
文字化けの解消(フォントのインストール)
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」を選択しています。
ここではWindowsターミナルを利用していますが、
Ubuntu20.04アプリでは上のバーを右クリック→既定値→フォント で変更したり、
VSCodeのターミナルなどでもフォントを追加・変更すれば大丈夫かと思います。
完成
ターミナルを再起動などすれば文字化けなども無くなり、意図したテーマが利用できます。
良きターミナルライフを!
次回はpeco入れようと思います。
その他関連Tips
Windowsターミナルの規定値をUbuntuにする
最初はWindows PowerShellが立ち上がるかと思いますが、この規定値は変更することができます。(settings.jsonで管理されているっぽい)
ホストネーム(@以降)を非表示にする
~/.zshrc
の最後に以下を付け加える。
prompt_context() {
if [[ "$USER" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then
prompt_segment black default "%(!.%{%F{yellow}%}.)$USER"
fi
}