WSLg — Windows で Linux GUI アプリを動かす
WSL2 の GUI 統合(WSLg)を有効にして、Linux デスクトップアプリをネイティブ Windows ウィンドウとして開く。外部 X サーバーや VcXsrv は不要。
以前、WSL から Linux GUI アプリを動かすには VcXsrv や X410 をインストールし、DISPLAY 環境変数を設定して Windows ファイアウォールを調整する必要があった。**WSLg(WSL GUI)**が登場して(Windows 11 + WSL 0.65 以上)、そのすべてが不要になった — Linux アプリがそのまま Windows ウィンドウとして開く。もともとは複雑な設定が避けられないと思っていた。いまでは WSLg によって設定の複雑さが消えたからこそ、Linux GUI アプリを Windows 上で使う障壁が実質的になくなったと考える。
このガイドは Windows 11 22H2 以上 + WSL 2 + Ubuntu 24.04 で WSLg を有効にし、よく使う Linux GUI アプリ(Firefox、gedit、GIMP、GUI デバッガー)を動かす手順を解説する。
TL;DR
wsl --version—WSL version 2.0+とWSLg 1.0+の両方が表示されれば準備完了- 最新バージョンに更新するには
wsl --update sudo apt install -y x11-apps→xcalc— 電卓が Windows ウィンドウとして開けば成功- DISPLAY の設定は不要 — WSLg が自動的に注入する
- Wayland アプリには
WAYLAND_DISPLAY、X11 アプリにはDISPLAY=:0— 両方が自動設定される
前提条件
- Windows 11 22H2 以上(Windows 10 21H2 以上でも動作するが、安定性・パフォーマンスは 11 の方が優れる)
- WSL 2 + Ubuntu 24.04(他のディストリも動作 — Debian、Fedora など)
- 最新の GPU ドライバー(NVIDIA / AMD / Intel — WSLg は vGPU を使用)
1. WSLg の仕組み(概要)
[Linux GUI アプリ] ──Wayland/X11──> [WSLg システムコンポジター]
│
▼
[Windows RDP]
│
▼
[Windows デスクトップ]
- Linux アプリは通常の Wayland または X11 クライアントとして動作する
- WSLg が
Westonコンポジターを動かし、RDP 経由で Windows に転送する - Windows 側から見るとアプリは単なる RDP クライアント — 別途 X サーバーは不要
2. 確認 — すでに動作しているか?
wsl --version
# WSL version: 2.x.x
# WSLg version: 1.x.x ← 両方あれば OKWSLg が表示されない場合は更新する:
wsl --update
wsl --shutdownテスト:
# WSL Ubuntu 内
sudo apt update && sudo apt install -y x11-apps
xcalc # または xeyes / xclockWindows に GUI ウィンドウが表示されれば成功。
何も表示されない場合は §8 トラブルシューティング を参照。
3. よく使う GUI アプリ
3.1 Firefox
sudo apt install -y firefox
firefoxWSL Ubuntu の Firefox で HTTPS サイトを閲覧し DevTools を使える。macOS Safari や Windows ネイティブの Firefox と比べると GPU アクセラレーションが限定的なため、重いサイトはやや遅く感じる。
3.2 テキストエディター(gedit、gnome-text-editor)
sudo apt install -y gnome-text-editor
gnome-text-editor /etc/hostsnano より GUI の方が好みな場合に、sudo 付きで素早く編集するのに便利。
3.3 画像編集(GIMP)
sudo apt install -y gimp
gimpPhotoshop ほど速くはないが、Linux ビルドがそのまま動作する。
3.4 GUI デバッガー(ddd、gdb-gui)
sudo apt install -y ddd
ddd ./my_programVS Code Remote-WSL を使っていれば ddd は基本不要だが、クラシックな GUI デバッガーが欲しい場合に使える。
3.5 Wireshark(ネットワーク解析)
sudo apt install -y wireshark
sudo wiresharkWSL の仮想ネットワークインターフェースをキャプチャできる。Windows ホストのトラフィックを直接キャプチャするには追加セットアップが必要(wsl --networkingMode=mirrored — Windows 11 22H2 以上)。
4. Wayland vs X11 — 自動選択
WSLg は両プロトコルをサポートしており、両方の環境変数が自動設定される:
echo $DISPLAY
# :0
echo $WAYLAND_DISPLAY
# wayland-0- Wayland 優先 — 最新の GTK / Qt アプリが Wayland を自動選択(
GDK_BACKEND=waylandがデフォルト) - X11 フォールバック — Wayland サポートのないアプリは
DISPLAY=:0にフォールバック
特定のアプリに対してプロトコルを強制する:
# X11 を強制
GDK_BACKEND=x11 firefox
# Wayland を強制
GDK_BACKEND=wayland firefox5. GPU アクセラレーション
WSLg は OpenGL / Vulkan アクセラレーション用の vGPU(仮想 GPU)を公開する。CUDA ワークロードも動作する。
確認
sudo apt install -y mesa-utils
glxinfo | grep "OpenGL renderer"
# OpenGL renderer string: D3D12 (NVIDIA GeForce RTX ...) — ホスト GPU が公開されているユースケース
- Blender / Maya などの 3D アプリ
- ML 可視化(TensorBoard、Plotly Dash)
- ゲーム(パフォーマンスは限定的だが動作する)
CUDA:NVIDIA WSL ドライバーは Windows 側(https://developer.nvidia.com/cuda/wsl)にインストールする。Linux 内では
nvidia-cuda-toolkitのみが必要。
6. オーディオ・マイク・ウェブカメラ
WSLg は PulseAudio も自動接続 — 音声出力は Windows のデフォルト出力にルーティングされる。
sudo apt install -y pavucontrol
speaker-test -c 2 # 左右スピーカーテストマイクとウェブカメラはやや複雑:
- マイク:
pavucontrolを開く → 録音タブ → Windows のマイクが表示される(通常 OK) - ウェブカメラ:WSLg は USB カメラを直接サポートしない。usbipd-win を使って USB デバイスをアタッチする
7. Linux アプリを Windows スタートメニューにピン留め
WSLg が自動的に登録する:
Win キー → 「Firefox」で検索 → Firefox (Ubuntu) エントリー → クリックすると WSL が起動して Firefox が開く。
表示されるアプリは ~/.local/share/applications/*.desktop(Linux)から来る。カスタムアプリは独自の .desktop ファイルを書いて登録:
cat > ~/.local/share/applications/my-app.desktop <<'EOF'
[Desktop Entry]
Type=Application
Name=My Tool
Exec=/usr/local/bin/mytool
Icon=utilities-terminal
EOFWSL を再起動するとスタートメニューに表示される。
8. トラブルシューティング
xcalc は実行されるがウィンドウが表示されない
wsl --versionにWSLg versionの行があるか?wsl --update・wsl --shutdown後に再試行- ホスト GPU ドライバーを更新する(WSLg 1.0.62 以上には mesa ソフトウェアフォールバックがあるが、一部の環境では GPU が必要)
フォントが崩れる(非ラテン文字が □□□ になる)
sudo apt install -y fonts-noto-cjk fonts-nanum
fc-cache -fvクリップボードが同期しない
WSLg はテキストクリップボードを双方向で自動同期する。動かなくなった場合:
- アプリが Wayland か X11 か確認する。Wayland アプリはクリップボードが失われることがある
GDK_BACKEND=x11を強制して再試行
「GTK theme not found」系の警告
sudo apt install -y adwaita-icon-themeデフォルト GTK テーマが欠落している。まれなケースで、一部の最小限 Ubuntu イメージで発生する。
一部のキーストロークが GUI アプリに届かない
Ctrl+Shift のコードや日本語/CJK の IME キーが Windows に先取りされる。対処法:
- Windows IME を無効にする(
Win + Spaceで切り替え) - または Linux 内に
ibus/fcitx5をインストールして日本語/CJK 入力を Linux 側で完結させる
アプリが重い(目立つ UI ラグ)
- GPU アクセラレーションがソフトウェアにフォールバックしている可能性 —
glxinfo | grep -i hardwareで確認 - GPU ドライバーを更新する
- WSL2 の RAM が不足している —
.wslconfigでmemory=8GBを設定する(wsl-tuning)
9. 制限事項
- Windows 11 / WSL 2 のみ — WSL 1 はサポートなし
- システムトレイ / ウィジェットなし — Linux のトレイアイコンは表示されない
- マルチモニターは問題なし;フラクショナルスケーリングは難あり — 125% / 150% スケーリングで一部のアプリがぼやけることがある
- 自動起動 / バックグラウンドデーモン — Windows 起動時に Linux の systemd サービスを自動起動するには追加設定が必要(
systemctl --user+ Windows Task Scheduler)
10. 次のステップ
- WSL チューニング:メモリ / CPU / ネットワーク — /windows/wsl-tuning
- WSL2 で Docker — /windows/docker-wsl2
- Windows Terminal セットアップ — /windows/windows-terminal-setup
- クロス OS 開発コンテナ:/multi-os/dev-container
参考リンク
- WSLg GitHub
- WSL 公式ドキュメント
- usbipd-win — USB デバイスのアタッチ
更新履歴
- 2026-05-16:初稿。WSLg の有効化・よく使う GUI アプリ・GPU アクセラレーション・オーディオ / マイク・スタートメニュー統合・6 つのトラブルシューティング。