WSL2とUbuntu22.04LTS環境によるzsh(Powerlevel10k)環境構築

# こんな人におすすめ
かっこいい、かわいいシェルが使いたい！
WSL2に触ってみたい！って方におすすめです
普通にやるならめちゃくちゃ勉強してシェルをカスタムするのが一番だと思いますが、
僕は断然Powerlevel10kです
この記事の通りにやるとだいたいこんな感じになります
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3664244/cc7f3b30-1329-0743-9b2c-aecc3ee36484.png)


僕個人のこだわりとして、できるだけホームディレクトリを汚さないこと
そして可能な限りHomeBrewなどのパッケージマネージャーで、深い階層にファイルを置かない（パス短縮のためです）などを徹底してます
ですので、考えが合わねえなあと思ったら、ここでの方法を使うのはやめておいたほうがいいと思います
許容範囲かな…という人はぜひ一読してください
（ちなみにまともにWSL2とかZsh始めて三日も経ってないので、何か間違いなどがあれば是非教えていただけると助かります）

# 自分の環境について（言い訳）
Windows11 23H2
Ryzen 5800H
RTX3060LAPTOP
こんな感じの変な環境なので、以下の手順による再現性がなかった場合は、ごめんちゃい…という言い訳セクションです
成功をお祈りしてます

# コマンド一覧
WSL導入（${DISTRO_NAME}の部分は、直前のコマンドで表示された中からお好きなディストリビューションを選択）
今回はubuntu-22.04です
```powershell:powershell
wsl --install
wsl --set-default-version 2
wsl -l
wsl --install -d ${DISTRO_NAME}
```
ユーザーネームとパスワードはお好みで
個人的には
username:user
passwordはPCのログインパスワードと一緒でいいと思います

環境リセット用(失敗したときなどにご活用ください)
```powershell:powershell
wsl --unregister ubuntu-22.04
wsl --install -d ubuntu-22.04
```
Linuxログイン後必須コマンド
```console:Ubuntu
$ sudo apt update
$ sudo apt upgrade
$ sudo apt install python3-update-manager
$ sudo apt install zsh
$ chsh -s /bin/zsh
$ sudo git clone --depth=1 https://github.com/romkatv/powerlevel10k.git /etc/zsh/plugins/powerlevel10k
$ sudo vi /etc/zsh/zshrc
```
viエディタを使ったことがない人はごめんなさい
iを押せばインサートモード（編集モード）になります
一番下まで付いたら改行などをして、最後尾にカーソルを移動してください
以下の文を最後尾にペースト(ctrl + v)後にesc + :wq
```:/etc/zsh/zshrc
source /etc/zsh/plugins/powerlevel10k/powerlevel10k.zsh-theme
```
:::note warn
今回は他ユーザーを作ったり切り替えたりしても使えるように共通のzshrcにコマンドを書きました
しかし、このやり方では/etc/zsh/zshrc側にもともと書かれていた、個人用の~/.zshrcの初期化プログラムを一度踏んでしまい、非常に冗長になってしまいます
ですので、/etc/zsh/zshrc_bkpなどに名前を変更後、zshrcを新しく作って、そちらに書くことをおすすめします
:::
以下その場合のコマンド
```:bash
$ cd /etc/zsh
$ sudo mv zshrc zshrc_bkp
$ sudo vi /etc/zsh/zshrc
```
そしてこの新しく作ったファイルに、先ほどの文章の書き込みを行えば完了です

# 解説
`$ sudo apt update`
`$ sudo apt upgrade`
上二つを実行するとひとつだけどうしてもアップグレードされなかったものがあるため
下のコマンドにてそれをインストールする

`$ sudo apt install python3-update-manager`
これを実行することで全てのアップグレードが完了する

`$ sudo apt install zsh`
zshのインストール
なぜか5.8.1がインストールされた（最新は5.9）

`$ sudo chsh -s /bin/zsh`
デフォルトターミナルをbashからzshに切り替える

`$ sudo git clone --depth=1 https://github.com/romkatv/powerlevel10k.git /etc/zsh/plugins/powerlevel10k`
とても汚い（依存などが怖そうな）場所に置いてあるが、ホームディレクトリ直下よりはマシなはず
~~あとは単純に汎用性上げたかったのとまとめておきたかったのが本音~~

`sudo mv zshrc zshrc_bkp`
sudoじゃないとPermission Denied（権限不足）って吐かれるので注意
~~てかmvコマンドってファイル名も変えられるの初めて知りました~~
右側のファイル名は適当なので勝手にしてください
エラーが出たら、このコマンドの後半二つの順番を逆にして実行してください

# 再ログイン
他にもやりたい作業がある人はそちらを済ませて、満足したら下矢印から設定タブを開いてください

![設定 2023_12_29 13_37_42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3664244/cb85c6a4-015d-acd1-9ed9-067124f5a746.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3664244/c0c49646-9a35-8393-eab6-50143741b834.png)

設定タブから、使用しているディストリビューションの部分を見つけましょう

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3664244/74d76a53-5eb6-26cd-6eb6-92c44a1c6b7c.png)

見つかりましたね
あとは下に移動して外観というのを開くとこんな感じになると思います

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3664244/548d932b-2e81-89f6-1216-07e73c141175.png)

そしたらフォントを変更します

:::note warn
必ずNF(Nerd Font)※オタクフォントと付いているものを使用してください
逆に言えば、それさえ守れていればどんなフォントでも構いません
:::

公式推奨のものや、僕がよく使っているものを紹介します（今回使用するのは後者）
公式:https://github.com/romkatv/powerlevel10k?tab=readme-ov-file#fonts
Firge:https://github.com/yuru7/Firge
白源:https://github.com/yuru7/HackGen/releases

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3664244/7f083f22-2044-234a-79fa-9a352cda2d9b.png)

外観というのを開くとこんな感じになると思います
35はつかなくてもいいですし、警告が出ているのは気にしないでもいいです
~~なんなら35がついてない方がいいですが、なんとなくで選んでるだけです~~

あとは変更を保存したら、先ほど設定を開いた時と同じように、Ubuntu-22.04.3 LTSを選択してタブを開けば初期設定が始まるはずなので、その通りに従ってください

:::note alert
おそらく、zshrcを新しく作った人と、追加した人で処理が変わります
追加した人は、最初のログイン時にzsh側の初期化が始まるはずなので、一度だけqを押してください
そうするとすぐにPowerlevel10k側の初期化が実行されるはずなので、指示に従ってください
たぶん前者の方はPowerlevel10k側の初期化に一発で行けます
:::

# さいごに
もし次回があれば自動補完などについてだと思います
今回の記事がみなさまの役に立つことをお祈りしておきます
よいお年を