Tools

WSL2 / HiDPI環境でGoLand + 日本語入力を快適に使うまでの道のり

投稿日:

はじめに

皆さん、Windows使っていますか~? 私は最近、WindowsでWebアプリケーションの開発をしています。PC向けのWebアプリケーションでは、ほとんどのユーザがWindowsを使っているため、普段からWindowsでの動作が確認できるという安心感があるところが良いですね。また、様々な筐体があり、魅力的なマシンが多いのも良いところです。

WindowsでWeb関係の開発をするときは、WSLとVSCodeもしくはJetBrainsのIDEを組み合わせるのが定番だと思います。いずれのIDEもWSL対応は進んでいるのですが、実際に使ってみると次のような課題があります。

  • VSCodeの課題
    • WSL Remoteのレイテンシが気になる。(クライアント側とWSL側の通信が遅い模様)
    • 特に、TypeScriptでのパフォーマンスが悪くなってしまう。
  • JetBrains系IDEの課題
    • WSL側のプロジェクトを開くには \\wsl.localhost\ 経由でしか開くことが出来ず、I/Oが遅い。
      この問題はJetBrainsの問題ではなく、WSL側の問題であるため、WSL側での問題解決が待たれる状況。

そこで、私はWSL上でJetBrains系IDEを動作させて、上記の問題を回避したので、その方法を紹介します。
今回の環境はこちらです。

  • ホストマシン: Windows 11 Pro 21H2 Build 22000.651
  • WSL2上のマシン: Ubuntu 20.04 LTS

X Serverの設定

WSLと組み合わせるX Serverソフトとしては、VcXsrvもしくはWSLgが良くある組み合わせです。ただ今回私はVcXsrvを使いました。その理由としてはWSLgに次のような課題があり、今のところ回避策が無いためです。

  • 小数点スケーリング(175%など)に非対応
  • 複数のスケーリングを持つディスプレイを使用している場合に動作が不安定になってしまう

また現状では、問題が発生したときに、 VcXsrvの方が情報量が多いこともあり、今回はVcXsrvを使用します。

VcXsrvの初期設定

まずはVcXsrvをこちらからダウンロードし、インストールしてください。「XLaunch」というアプリケーションがインストールさせるので、こちらを開きます。
XLaunchは、VcXsrvのコンフィグファイルを生成するためのアプリケーションです。

起動すると、ウィザード形式でコンフィグファイルを作成することができるので、次のように設定します。

  1. Select display setting
    • Multiple windowsを選択します
    • Display numberは -1 を選択します。
  2. Select how to start clients
    • Start no clientを選択します。
  3. Extra settings
    • Clipboard: オン
      • Primary Selection: オフ (GoLandで選択した文字列が勝手にクリップボードにコピーされてしまう現象が発生してしまうためオフにします。)
    • Native opengl: オン
    • Disable access control: オン
      (代わりに、Additional parametersに -ac を指定しても同じです。)

最後に、コンフィグファイルを保存して終了です。

VcXsrvのHiDPI設定

デフォルトでは、VcXsrvをHiDPI環境で起動すると、ぼやけて描画されてしまいます。そこで、vcxsrv.exeのHiDPI設定を上書き、くっきり描画されるようにします。

  1. エクスプローラーでvcxsrv.exeのプロパティを開く (私の環境では C:\Program Files\VcXsrv\vcxsrv.exe にありました。)
  2. 互換性タブ -> 高 DPI設定の変更
  3. 「高いDPIスケールの動作を上書きします。」にチェック
  4. 拡大縮小の実行元に「アプリケーション」指定。

DISPLAY環境変数の設定

ここで一旦WSL2上のUbuntuにログインし、 .bashrc に次の内容を追記します。

Ubuntu側のスケーリング設定

GoLandを正しいスケーリングで起動させるには、Ubuntu側のX Resourcesの設定をする必要があります。 ~/.Xresource に次の内容を書き込みます。

これで200%のスケーリングに設定されます。この値は、Windows側で指定しているスケーリングの値と合わせると良いでしょう。

この内容を反映させるには、次のコマンドを実行します。

常にディスプレイを使用する場合は、上記のコマンドを ~/.bashrc に書いておき、自動実行させた方が良いでしょう。

動作確認

ここまで設定できたら、先ほど作成したコンフィグファイルを開き、VcXsrvを起動させてください。Ubuntuで xeyes を実行し、ウインドウが表示されたら成功です。
初回起動時にはファイアウォールの許可画面が表示されるため、アクセスを許可してください。

GoLandのインストールと設定

GoLandはスタンドアロンでのインストールがおすすめです。詳しくはこちらの内容に沿って進めてください。

スクロールの設定(トラックパッドの場合のみ)

トラックパットでのスクロールがうまくいかないため、スクロールアニメーションをオフにします。

  1. GoLandでFind Actionを開く (Ctrl + Shift + A )
  2. Smooth Scroll Options と入力し、Enterで開く。
  3. Animated smooth scrolling のチェックを外す

日本語入力環境の用意

uim-mozcでの日本語入力環境を用意します。

uim-mozcのセットアップ

次のコマンドを実行してuim-mozcをセットアップします。

次に、 ~/.profile に以下を追記して、uim-ximを自動起動させるようにします。

WSL2を再起動すると、GoLandなどで日本語入力できるようになっていると思います。(デフォルトでは、Shift + Spaceで日本語入力できるようになります。)

キーバインドなどの変更を変更するには uim-pref-gtk コマンドを実行します。ちなみに私は、MacのJISキーボード風に、無変換キーでIMEオフ、変換キーでIMEオンにするため、次の設定をしています。

  • 全体キー設定1
    • [全体オン] に Henkan_Mode を追加
    • [全体オフ] に Muhenkan を追加

ショートカットの作成

GoLandを使うたびにUbuntuのシェルから起動させるのは面倒なので、Windows側にショートカットを作成しておきます。

'Xft.dpi: 200' の部分は、Windowsのスケーリング設定に合わせて変更してください。私の場合は、日によってスケーリングの異なるディスプレイで作業するため、このショートカットを分けて作成し、使い分けています。

さいごに

WSLで快適にGoLandを使うには、色々な作業をする必要がありました。それでも、WSLというVM上で動いている以上、若干のオーバーヘッドがあるように感じています。今のところは、まだMacの方が開発する方が、すぐに始められるので楽ですね。
WSLgも開発は進んでいるので、今後に期待したいなと思います。

おすすめ書籍

Windows Subsystem for Linux 2 (WSL 2) Tips, Tricks, and Techniques: Maximise productivity of your Windows 10 development machine with custom workflows and configurations (English Edition) IntelliJ IDEA パーフェクトガイド Visual Studio Code実践入門!~ソフトウェア開発の強力手段~

blog-page_footer_336




blog-page_footer_336




-Tools
-

執筆者:

免責事項

このブログは、記事上部に記載のある投稿日時点の一般的な情報を提供するものであり、投資等の勧誘・法的・税務上の助言を提供するものではありません。仮想通貨の投資・損益計算は複雑であり、個々の取引状況や法律の変更によって異なる可能性があります。ブログに記載された情報は参考程度のものであり、特定の状況に基づいた行動の決定には専門家の助言を求めることをお勧めします。当ブログの情報に基づいた行動に関連して生じた損失やリスクについて、筆者は責任を負いかねます。最新の法律や税務情報を確認し、必要に応じて専門家に相談することをお勧めします。


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

Gitでやっちまったときに使えるコマンド

1 はじめに2 コミットを修正したい3 コミットを戻したい3.1 複数のコミットをrevertする4 コミット自体をそもそもなかったことにしたい5 reset –hardした差分を元に戻し ...

【Slack】OutgoingWebhookを利用して投稿を転送

1 はじめに2 OutgoingWebhook2.1 OutgoingWebhookの追加2.2 OutgoingWebhookの設定3 IncomingWebhook3.1 IncomingWebh ...

GCP無料枠×Theiaでいつでもコーディング

1 はじめに2 Theiaとは?3 GCPのセットアップ3.1 無料枠の利用を開始3.2 GCEインスタンスの作成3.2.1 1 f1-micro インスタンス(1 か月あたり、バージニア州北部を除く ...

Gitの初期設定と便利な設定

1 はじめに2 初期設定2.1 ユーザ情報の設定3 便りな設定4 Gitの基礎知識4.1 configは3段階4.2 現在の設定を確認する4.3 設定ファイルの保存場所5 参考6 さいごに はじめに ...

元mac使いがUbuntuで理想の作業環境に近づけるためにやったこと

1 はじめに2 Ubuntuのインストール2.1 買ったもの2.2 インストールメディアの作成2.3 インストールメディアの起動3 キーボード・トラックパッド周りのカスタマイズ3.1 kinto.sh ...

フォロー

blog-page_side_responsive

2022年5月
1234567
891011121314
15161718192021
22232425262728
293031  

アプリ情報

私たちは無料アプリもリリースしています、ぜひご覧ください。 下記のアイコンから無料でダウンロードできます。