WSL2をインストール(『Windows 10バージョン21H1でのWSL2インストール』)した後、GUIの日本語化を行う。
X Server
WSLgが使える場合は、追加ソフトや設定の必要はない。WSLgが使えないWindows 10 Version 22H2以前の場合はサードパーティのX Serverのインストールが必要。
WSLgが使える場合
追加設定は不要。サードパーティ製X Serverの場合に手動設定が必要だった環境変数DISPLAYは、デフォルトで次のように表示されるはずだ
$ printtenv DISPLAY :0
WSLgのX Serverの情報をダンプするとこんな感じ
WSLのUbuntuシェル
$ xrandr --verbose Screen 0: minimum 16 x 16, current 1920 x 1080, maximum 32767 x 32767 XWAYLAND0 connected 1920x1080+0+0 (0x41) normal (normal left inverted right x axis y axis) 476mm x 268mm Identifier: 0x21 Timestamp: 7169 Subpixel: unknown Gamma: 1.0:1.0:1.0 Brightness: 0.0 Clones: CRTC: 0 CRTCs: 0 Transform: 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 filter: non-desktop: 0 supported: 0, 1 1920x1080 (0x41) 173.000MHz -HSync +VSync *current +preferred h: width 1920 start 2048 end 2248 total 2576 skew 0 clock 67.16KHz v: height 1080 start 1083 end 1088 total 1120 clock 59.96Hz 1440x1080 (0x42) 129.000MHz -HSync +VSync ~ 以下省略
VcXsrvのインストールと初期設定
Windows 21H1ではWSLgがまだ提供されていないので、VcXsrv Windows X Server(https://sourceforge.net/projects/vcxsrv/)を用いる。
VcXsrvはスタートメニューにXLaunchという「起動条件を設定するランチャー」が登録されるので、通常はこれをクリックして起動する。
毎回同じ起動条件を選択するのがめんどくさく、クリック1つで起動したいのなら、vcxsrv.exeのショートカットを作り起動条件のオプションを書き込んでおけばよい(公式ドキュメントより)。
VcXsrvを標準設定で起動するショートカット
"C:\Program Files\VcXsrv\vcxsrv.exe" -multiwindow -clipboard -wgl -ac
- -multiwindow : Run the server in multi-window mode
- -clipboard : Enable [disable] the clipboard integration. Default is enabled
- -wgl : Enable the GLX extension to use the native Windows WGL interface for hardware-accelerated OpenGL
- -ac : disable access control restrictions
WSLで起動したUbuntuシェル内で、VcXsrvをX Serverとして認識させるため、環境変数 DISPLAY を設定する。毎回手動で入力するのはめんどくさいので、~/.profile スクリプトの末尾に次のように記述しておく
~/.profile
# X Server export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0.0
Ubuntuシェルを再起動して、環境変数がちゃんと設定されているか念のため確認
WSLのUbuntuシェル
$ printenv DISPLAY 172.29.16.1:0.0
geditなど、GUIプログラムを起動すると、VcXsrvの初回アクセス時にWindows Defender ファイアウォールの設定ダイアログが一度だけ表示される。
必ず、パブリックネットワークからのアクセスも有効にすること。
"Windows Defenderファイアウォールの設定ダイアログ
もし、ここでパブリックネットワークのアクセスを無効のままとした場合は、Windows Defender ファイアウォールのコントロールパネルを開き、VcXsrvの受信規則を全て有効化すればよい。
GUIアプリケーションのアイコンが少し変
アイコンが、通常のUbuntuのデスクトップテーマ(Yaru)ではなく、モノクロ版になっている...
yaru-theme-gtk, yaru-theme-icon パッケージをインストールし、gnome-tweaksアプリケーションで外観設定すれば変更は可能。(AdwaitaからYaruに変更)
Ubuntu 20.04の日本語化
日本語版の言語サポートをすべて有効化
現在有効化されている言語サポートのパッケージと、これからインストール可能なパッケージを表示して確認する。既にインストール完了した時点での表示なので、 --show-installed
で表示されているパッケージをすべてインストールすればよいことになる
WSLのUbuntuシェル (インストール済みの言語パッケージの表示)
$ check-language-support --show-installed fcitx fcitx-frontend-gtk2 fcitx-frontend-gtk3 fcitx-frontend-qt5 fcitx-mozc fcitx-ui-classic fonts-noto-cjk fonts-noto-cjk-extra gnome-user-docs-ja ibus-mozc language-pack-gnome-ja language-pack-ja mozc-utils-gui
WSLのUbuntuシェル (未インストールの言語パッケージの表示)
$ check-language-support -l ja
← 何も表示されなければ、すべてインストール済みを示す
日本語の言語サポートのすべてのパッケージをインストールする
WSLのUbuntuシェル
$ sudo apt install -y $(check-language-support -l ja) language-pack-ja
環境変数を日本語対応に切り替える
WSLのUbuntuシェル
$ sudo update-locale LANG=ja_JP.UTF8
Ubuntuシェルを再起動して環境変数が切り替わっているのを確認する
WSLのUbuntuシェル
$ locale LANG=ja_JP.UTF8 LANGUAGE= LC_CTYPE="ja_JP.UTF8" LC_NUMERIC="ja_JP.UTF8" LC_TIME="ja_JP.UTF8" LC_COLLATE="ja_JP.UTF8" LC_MONETARY="ja_JP.UTF8" LC_MESSAGES="ja_JP.UTF8" LC_PAPER="ja_JP.UTF8" LC_NAME="ja_JP.UTF8" LC_ADDRESS="ja_JP.UTF8" LC_TELEPHONE="ja_JP.UTF8" LC_MEASUREMENT="ja_JP.UTF8" LC_IDENTIFICATION="ja_JP.UTF8" LC_ALL=
タイムゾーンを「東京」に変更する。設定後、dateコマンドなどでJSTと表示されればOK
WSLのUbuntuシェル
sudo dpkg-reconfigure tzdata
シェルウインドウを経由せずに、Windowsコマンドプロンプトから直接GUIプログラムを起動する
ショートカットファイルなどを作りスタートメニューに登録すれば、クリックするだけでLinuxのGUIプログラムを起動できる
Windowsコマンドプロンプト(Windows Power Shell)
C:\> wsl.exe [-d Ubuntu-20.04] bash -lc Linuxコマンド
日本語IMEのインストール
日本語化で fcitx はインストール済みのため、mozc のみをインストールすればよい
WSLのUbuntuシェル
$ sudo apt install fcitx-mozc
そして、Ubuntuシェル起動時にfcitxが自動的に起動するようにする
~/.profile
export GTK_IM_MODULE=fcitx export QT_IM_MODULE=fcitx export XMODIFIERS=@im=fcitx export DefaultIMModule=fcitx if [ $SHLVL = 1 ] ; then fcitx-autostart > /dev/null 2>&1 xset -r 49 fi
xset -r は、キーのリピートを無効にするという意味合いで、全角・半角キーと重複するキーコード 49 『 ` 』が無駄にリピート入力されるバグを抑える働きをする。
日本語モードに切り替えるホットキーは、デフォルトで Ctrl + Space だが、これは fcitx-configtool でカスタマイズ可能。
Windows側にインストールされているVisual Studio CodeをLinux内から呼び出して使う
Microsoftの公式ドキュメント『 Linux 用 Windows サブシステムで Visual Studio Code の使用を開始する 』に書かれている手順を実施するだけ。
VS CodeにRemote Development 拡張機能パックをインストールする
この拡張機能パックには、Remote WSL, Remote Containers, Remote SSH の3つがパッケージされていて、一括でインストール可能になっている。