皆さん、Windows使っていますか~? 私は最近、WindowsでWebアプリケーションの開発をしています。PC向けのWebアプリケーションでは、ほとんどのユーザがWindowsを使っているため、普段からWindowsでの動作が確認できるという安心感があるところが良いですね。また、様々な筐体があり、魅力的なマシンが多いのも良いところです。
WindowsでWeb関係の開発をするときは、WSLとVSCodeもしくはJetBrainsのIDEを組み合わせるのが定番だと思います。いずれのIDEもWSL対応は進んでいるのですが、実際に使ってみると次のような課題があります。
\\wsl.localhost\
経由でしか開くことが出来ず、I/Oが遅い。そこで、私はWSL上でJetBrains系IDEを動作させて、上記の問題を回避したので、その方法を紹介します。
今回の環境はこちらです。
WSLと組み合わせるX Serverソフトとしては、VcXsrvもしくはWSLgが良くある組み合わせです。ただ今回私はVcXsrvを使いました。その理由としてはWSLgに次のような課題があり、今のところ回避策が無いためです。
また現状では、問題が発生したときに、 VcXsrvの方が情報量が多いこともあり、今回はVcXsrvを使用します。
まずはVcXsrvをこちらからダウンロードし、インストールしてください。「XLaunch」というアプリケーションがインストールさせるので、こちらを開きます。
XLaunchは、VcXsrvのコンフィグファイルを生成するためのアプリケーションです。
起動すると、ウィザード形式でコンフィグファイルを作成することができるので、次のように設定します。
-1
を選択します。-ac
を指定しても同じです。)最後に、コンフィグファイルを保存して終了です。
デフォルトでは、VcXsrvをHiDPI環境で起動すると、ぼやけて描画されてしまいます。そこで、vcxsrv.exeのHiDPI設定を上書き、くっきり描画されるようにします。
C:\Program Files\VcXsrv\vcxsrv.exe
にありました。)ここで一旦WSL2上のUbuntuにログインし、 .bashrc
に次の内容を追記します。
export DISPLAY=$(awk '/nameserver / {print $2; exit}' /etc/resolv.conf 2>/dev/null):0
GoLandを正しいスケーリングで起動させるには、Ubuntu側のX Resourcesの設定をする必要があります。 ~/.Xresource
に次の内容を書き込みます。
Xft.dpi: 200
これで200%のスケーリングに設定されます。この値は、Windows側で指定しているスケーリングの値と合わせると良いでしょう。
この内容を反映させるには、次のコマンドを実行します。
$ xrdb -merge ~/.Xresource
常にディスプレイを使用する場合は、上記のコマンドを ~/.bashrc
に書いておき、自動実行させた方が良いでしょう。
ここまで設定できたら、先ほど作成したコンフィグファイルを開き、VcXsrvを起動させてください。Ubuntuで xeyes
を実行し、ウインドウが表示されたら成功です。
初回起動時にはファイアウォールの許可画面が表示されるため、アクセスを許可してください。
GoLandはスタンドアロンでのインストールがおすすめです。詳しくはこちらの内容に沿って進めてください。
トラックパットでのスクロールがうまくいかないため、スクロールアニメーションをオフにします。
Smooth Scroll Options
と入力し、Enterで開く。Animated smooth scrolling
のチェックを外すuim-mozcでの日本語入力環境を用意します。
次のコマンドを実行してuim-mozcをセットアップします。
$ sudo apt install uim uim-mozc uim-xim $ sudo uim-module-manager --register mozc
次に、 ~/.profile
に以下を追記して、uim-ximを自動起動させるようにします。
export GTK_IM_MODULE=uim export QT_IM_MODULE=uim export XMODIFIERS="@im=uim" export UIM_CANDWIN_PROG=uim-candwin-gtk uim-xim &
WSL2を再起動すると、GoLandなどで日本語入力できるようになっていると思います。(デフォルトでは、Shift + Spaceで日本語入力できるようになります。)
キーバインドなどの変更を変更するには uim-pref-gtk
コマンドを実行します。ちなみに私は、MacのJISキーボード風に、無変換キーでIMEオフ、変換キーでIMEオンにするため、次の設定をしています。
Henkan_Mode
を追加Muhenkan
を追加GoLandを使うたびにUbuntuのシェルから起動させるのは面倒なので、Windows側にショートカットを作成しておきます。
C:\Windows\System32\wsl.exe bash -c "export DISPLAY=$(awk '/nameserver / {print $2; exit}' /etc/resolv.conf 2>/dev/null):0 && echo 'Xft.dpi: 200' > ~/.Xresource && xrdb -merge ~/.Xresource && source ~/.profile && sh /opt/goland-2021.3.3/bin/goland.sh"
'Xft.dpi: 200'
の部分は、Windowsのスケーリング設定に合わせて変更してください。私の場合は、日によってスケーリングの異なるディスプレイで作業するため、このショートカットを分けて作成し、使い分けています。
WSLで快適にGoLandを使うには、色々な作業をする必要がありました。それでも、WSLというVM上で動いている以上、若干のオーバーヘッドがあるように感じています。今のところは、まだMacの方が開発する方が、すぐに始められるので楽ですね。
WSLgも開発は進んでいるので、今後に期待したいなと思います。