WindowsターミナルのWSLプロファイルのカスタマイズ

# 要旨
WindowsターミナルからWSL2のLinuxを起動すると、エクスプローラーのWindowsとLinuxのディレクトリパスをLinux形式で貼り付けることができ、便利です。
WSLのアイコンは自由に変更できるので、使用する内容に応じたものへ変更すれば、気分良く選択することができます。
WSLディストリビューションを何度も入れ替えして遊んでいると、トラブルに出会いました。トラブルシューティングについても記載します。

![スクリーンショット 2025-04-26 151013.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4014034/70c3c1e0-2374-4114-b482-3345ac6d90d5.png "Windowsターミナルのvマークをクリック")

# 1. カスタマイズ方法
### アイコン
WindowsターミナルにWSLディストリビューションの名前が認識されていることが前提です。
上図の設定をクリックして、左側から対象のディストリビューションを選びます。
設定タブのアイコンをクリックし、置き換えるpng, icoファイルを指定します。
なお、表示が小さいので細かい図柄は判別できません。
使用するアプリ、そのウェブサイトに使われるアイコン、あるいはAIにより作成したアイコンを使用しています。

![スクリーンショット 2025-04-26 153704.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4014034/77fed939-bbb3-4adc-ac31-64788e6c038f.png "WSLの設定タブ")

### その他の設定
以前、[WSL2の基本操作の1.3項](https://qiita.com/HD_mount_Music/items/e2ee236765f1df8a1ed3)に記載したように、パスの変換機能が便利です。これは、追加の設定＞詳細設定の項目により確認することができます。

![スクリーンショット 2025-04-26 154737.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4014034/6abdbba0-9b79-4839-ace6-03581d319dcf.png)

# 2. トラブルシューティング
### (1) 'wsl -d ディストリビューション名'から起動するが、Windowsターミナルに登録されない
#### settings.jsonファイルを確認する（上図の設定画面左下の"JSONファイルを開く"）
- "disabledProfileSources"の記述があるか
- "disabledProfileSources":[ ]の記述がある場合は、[ ]内に、"Windows.Terminal.Wsl－旧記述", "Microsoft.WSL－新記述"など、"WSL"を連想するものが含まれる場合は、削除する

#### 最低限のsettings.jsonファイル設定での動作確認
- 認識しないWSLディストリビューションを"commandline"と"name"のみとして、Windowsターミナルを再起動する（うまくいかない場合は、管理者権限も実施する。この編集では壊れることはありません）
私がこれまで経験したケースでは、この設定で自動認識しました。
```JSON：settingsjson
{
    "commandline": "wsl -d Fistr_Oracle9",
    "name": "Fistr_Oracle9"
}
```
#### GUIから設定する
- 設定なしで自動生成される項目
"guid", "hidden"
- GUIから設定する項目
開始ディレクトリ："startingDirectory"に反映される。通常"~"で良い。
アイコン："icon"項目に反映される。
詳細設定 > プロファイルの終了動作： "closeOnExit"に反映される。

:::note info
最も役に立つ機能
詳細設定 > パスの変換：WSL（C:\ -> /mnt/c）
:::

#### 設定ファイルの完成状態（最低限の入力からGUIにより追加）
```JSON：settings.json
            {
                "closeOnExit": "always",
                "commandline": "wsl -d Fistr_Oracle9",
                "guid": "{c7477bdc-7b4a-55ba-a81d-xtsh367pfkjlshus}",
                "hidden": false,
                "icon": "C:\\Users\\...\\LocalState\\Force-R1.ico",
                "name": "Fistr_Oracle9",
                "pathTranslationStyle": "wsl",
                "startingDirectory": "~"
            }
```

#### 設定ファイルの完成状態（2025年4月に自動認識、アイコンとプロファイルの終了動作を手動設定）
```JSON：settings.json
            {
                "closeOnExit": "always",
                "guid": "{58486d3e-83cb-5614-962b-jdhgerui782flgrd}",
                "hidden": false,
                "icon": "D:\\WSL_VMs\\elmer_deb12\\Elmer.png",
                "name": "elmer_deb12",
                "source": "Microsoft.WSL"
            }
```

### (2) 'wsl -d ディストリビューション名'から起動しなくなった
- Windows + R → regedit と入力
- HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss
- 起動しないWSLをDistributionName、Flavor、OsVersionから見つける
- BasePathに誤りがないか確認する（名前とPathが合っていれば、起動するはずです）

![WSLレジストリ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4014034/af1d0389-db6e-40c8-9937-330963bf6f52.png)

# 参考情報
### WSLのLinuxの操作
GNOMEなどのLinuxデスクトップを使用する場合は、Windowsと同様にアイコンから起動することが多いと思います。
WSLの場合は、コマンド操作が基本ですので、~/.bashrcにechoコマンドを追加して、起動時にアプリ情報を確認できるようにしています。

```bash:~/.bashrc
########## 設定 ###########
echo -e \\n"Elmer / Ice function, with HYPRE, MUMPS, MMG (ParMMG), Lua, and Zoltan libraries." \\n
echo -e "Linux Appli: Salome 9.14, Scilab, Onelab (Gmsh+GetDp), Paraview 5.11" \\n
echo -e "winpv5: paraview 5.13.2 for windows" \\n

########## 起動時のメッセージ ############ 
Elmer / Ice function, with HYPRE, MUMPS, MMG (ParMMG), Lua, and Zoltan libraries.

Linux Appli: Salome 9.14, Scilab, Onelab (Gmsh+GetDp), Paraview 5.11

winpv5: paraview 5.13.2 for windows
```

### 多数のWSLディストリビューションを使用する場合の推奨事項
レジストリの編集とファイルの移動により、ディストリビューションの名前や保存場所の変更ができます。
しかし、Windowsターミナルの設定には情報が伝わらないので、不具合の生じる可能性が高いです。面倒でも、エクスポート・インポートにより移動する方法が無難です。
[WSLでディストリビューションをインポート・エクスポート](https://zenn.dev/sakky4869/articles/2b9f155f341001)