PowerShellでWSLを使うと絶望的に見づらい

画像

Windows Power ShellでWSLを使う際にデフォルト配色だと絶望的に見づらいので、どうにかして見やすい色にできないか頑張ってみた。
この記事では以下の作業についてやったことを簡単に説明する。

  • ColorToolを使用してカラースキームを変更
  • PowerShell起動時にスクリプトを実行してColorToolを使用

背景色の変更じゃダメなのか

PowerShell起動後、ウィンドウ上部を右クリックからのプロパティで背景色を変えられる。
文字の色も変えられるように見えるが、WSL使用時の文字配色にはほぼ反映されない。
試してみると分かるが、背景色を何に変えようと絶望的に見づらい状態を脱することができない。

ColorToolを使う

Microsoftが公開しているツールでカラースキームの変更ができる。
GitHubからダウンロードが可能。
下記サイトのREADMEのInstallingから最新バージョンのダウンロードができる。

terminal/src/tools/ColorTool at master · microsoft/terminal

ググって出てくる記事だとURLが404になってるのがちらほらあるので、上記URLもそのうち無効になるかもしれない。
もし404になっていたら、terminalのリポジトリからColorToolを探せば見つかるはず。

microsoft/terminal: The new Windows Terminal, and the original Windows console host – all in the same place!

ダウンロードしてきたzipを任意の場所に展開する。
この記事ではC:\Users\Candle\Documents\colortoolに展開した前提で記載する。
あとはColorTool.exeをコマンドで実行するだけ。

cd C:\Users\Candle\Documents\colortool
.\ColorTool.exe -b campbell.ini

オプション-bで今開いてるウィンドウに反映しつつデフォルトにも適用できる。
カラースキームはschemesフォルダに入っているファイル名から選択できる。
好きなものを選ぼう。

ここで新しくウィンドウを開いて、ちゃんと変更が反映されていたら平和的解決。
筆者と同じくどういうわけか元のカラースキームで開かれてしまった人は続きを読もう。
なお、執筆時点ではデフォルトに適用できない原因は判明していない。
レジストリの書き換えはできてるっぽいことだけ確認できている。
何かわかった人がいたら是非コメントで報告してほしい。

PowerShellの起動スクリプトを作る

デフォルトにならないなら、毎回起動時にColorToolを使用すればいい。
強硬手段である。
PowerShellには、起動時に実行するスクリプトの設定がちゃんとある。
起動するスクリプトファイルのパスは下記のコマンドで確認できる。

$profile

筆者の環境ではC:\Users\Candle\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1となっていた。
ユーザーのドキュメント直下にWindowsPowerShellフォルダを作り、Microsoft.PowerShell_profile.ps1ファイルを作成する。
中身は下記の通り。先ほどのコマンドをフルパスにしただけ。

C:\Users\Candle\Documents\colortool\ColorTool.exe -b campbell.ini

これが実行されればカラースキームが変更される。が、デフォルトの設定ではPowerShellスクリプトの実行は無効となっている。
実行できるようにするためには管理者権限Set-ExecutionPolicyコマンドを打ち込んで設定を変更する必要がある。
今回は、ローカルのスクリプトは全許可、ダウンロードしたものは署名付きのみ許可となるRemoteSignedに設定する。
設定可能なポリシーは以下の記事を参考。
PowerShell/PowerShellスクリプトを起動できるようにする - Windowsと暮らす

Set-ExecutionPolicy RemoteSigned

これで起動時にスクリプトが実行され、自動でカラースキームが変更される。

感想

なんで自分だけデフォルト適用できないん?

 
comments powered by Disqus