新しいことにはウェルカム

技術 | 電子工作 | ガジェット | ゲーム のメモ書き

WSLのWindowsのフォルダの色が見づらいのを直す

WSL(Windows Subsystem for Linux)のファイルやフォルダはWSL内で閉じていて、エクスプローラーなど、WSLの外からはアクセスできません。

なので、WSLとWindowsの両方からアクセスできる場所として、Windowsのフォルダをシンボリックリンクで参照して使っています。

便利でよく使っているのですが、問題があって、「ls」でファイル一覧を見た時、Windowsのフォルダの色が、緑背景に青文字でとても見づらいのです。

WSLのWindowsのフォルダの色が見づらいのを直す

原因

Windowsのフォルダ・ファイルは、WSLから見ると、other userの書き込み権限がついてしまいます。

そして、「ls」のデフォルトのカラー設定では、other userの書き込み権限がついたフォルダは、緑背景に青文字になっているためです。

なので、「ls」のカラー設定を変更して対処します。

手順

流れ

  • 「ls」のカラー設定は、環境変数「LS_COLORS」で行います
    • 「LS_COLORS」を直接編集してもいいのですが、ここでは、設定をやり易くするコマンド「dircolors」を使います
  • 「dircolors」コマンドは
    • デフォルトのカラー設定を分かり易い形式で出力してくれます
    • 出力したのと同じ形式のカラー設定ファイルを読み込んで、「LS_COLORS」変数を設定してくれます

下記のような流れになります。

  1. 「dircolors」で一旦設定をファイルに出力
  2. 好みの色になるようファイルを編集
  3. シェルの起動スクリプトから「dircolors」で編集したファイルを読み込んで、「LS_COLORS」を設定

LSカラー設定ファイルを出力

dircolors -p > ~/.dircolors

LSカラー設定ファイルを編集

other userの書き込み権限がついたフォルダは「OTHER_WRITEBLE」で、その値は「34;42」=「文字青;背景緑」となっています。

...
OTHER_WRITABLE 34;42 # dir that is other-writable (o+w) and not sticky
...

ここでは「01;32」=「ボールド;文字緑」としてみました。

...
OTHER_WRITABLE 01;32 # dir that is other-writable (o+w) and not sticky
...

色の設定方法

色の設定方法は、出力された設定ファイルのコメントに記載されています。ファイル・ディレクトリ等の種類別(OTHER_WRITEBLE等)に「文字種類(Attribute codes)」「文字色(Text color codes)」「背景色(Background color codes)」を設定でき、設定値は「;」でつなぎます。(3つ全て設定する必要はありません)

# Below are the color init strings for the basic file types. A color init
# string consists of one or more of the following numeric codes:
# Attribute codes:
# 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed
# Text color codes:
# 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white
# Background color codes:
# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white

LS_COLORS設定

dircolors -b [設定ファイルパス]で、LS_COLORSを設定するコードが出力されるので、下記を「.bashrc」などに追記します。

eval $(dircolors -b ~/.dircolors)

以上で完了です。シェルを立ち上げ直すと、Windowsのフォルダが緑文字になっています。

WSLのWindowsのフォルダの色が見づらいのを直す

おまけ

「ColorTool」というMicrosoftのツールを使うと、WSL・コマンドプロンプト・PowerShellのカラーテーマを変えることができます。

github.com

デフォルトだとディレクトリが青で見づらいので、「ColorTool」で見やすくしてみます。

手順

  1. ダウンロードページへ移動
  2. zipファイルをダウンロードして解凍
  3. 解答したフォルダを、Shiftを押しながら右クリックで「PowerShellウィンドウをここに開く」

.\ColorTool.exe -sでスキーム一覧が表示されるので、.\ColorTool.exe -b <スキーム名>で適用します。 (元に戻すには、デフォルトのスキーム「cmd-legacy」を適用します)

WSLのWindowsのフォルダの色が見づらいのを直す
組み込みスキーム一覧

WSLのWindowsのフォルダの色が見づらいのを直す
スキーム「OneHalfDark」を適用したPowerShell

WSLを立ち上げ直すと、WSLの色も変わっています。

WSLのWindowsのフォルダの色が見づらいのを直す
スキーム「OneHalfDark」を適用したWSL

最初と比べて、随分見やすくなりました。

スキーム追加

スキームは「schemes」フォルダにファイルを入れていって追加できます。

こちらの「schemes」にスキームファイルがいっぱいあるのですが、多すぎて組み込みのでいいやとなってしまいました…。

感想など

あまりカスタマイズするのは好きじゃなく、ずっとデフォルトで頑張ってたんですが、画面の小さいノートPCにしたら文字が読めなくなって…。仕方なくカスタマイズすることにしました。

参考記事