A Linux GUI application launches under WSLg but renders as a blank window, crashes immediately, or displays visual corruption. Here's how to work through WSLg's specific rendering stack to find the actual cause.
Running a Linux GUI application inside WSL and having its window appear alongside your native Windows apps looks like magic. It's actually a full Wayland compositor and audio system, tunneled over RDP, running invisibly.
Before WSL let Windows run real Linux binaries, Microsoft tried and abandoned a different compatibility project entirely. Here's the actual path from that cancellation to today's tightly-integrated WSL2.
A complete walkthrough exporting a WSL distro's entire state to a portable file, and restoring it later — on the same machine after a problem, or on an entirely different machine.
A complete walkthrough shrinking a WSL2 distro's .vhdx file back down after deleting large amounts of data — the specific diskpart steps that actually reclaim the space Windows doesn't release automatically.
A complete walkthrough getting Docker Desktop configured to use WSL2 as its backend, integrating specific distros, and verifying containers actually run using WSL2's real Linux kernel rather than a separate VM.
A complete walkthrough turning on systemd support in a WSL2 distro — configuration, the required restart, and verifying services actually manage correctly afterward.
A complete walkthrough of both directions of file access — reaching Windows files from Linux, and Linux files from Windows — plus the performance-driven rule for deciding where a given project's files should actually live.
A complete walkthrough getting an NVIDIA GPU working for CUDA-accelerated machine learning workloads inside WSL2 — driver setup, verification, and running an actual PyTorch or TensorFlow workload against it.
A complete walkthrough getting WSL2 and a Linux distro running from a clean Windows installation — the single-command path, and what to check if it doesn't work cleanly the first time.