Windows 11 features built-in support for running Linux GUI applications. Emacs 29 has became a real GTK application, gone with the blurry fonts problem.

Firstly, install essential packages in WSL2 Ubuntu 24.04. Native compilation support is enabled by default with Emacs 30, install libgccjit0 and libgccjit-xx-dev to build this feature.

apt-get update
apt-get install build-essential libgtk-3-dev libgnutls28-dev libtiff5-dev libgif-dev libjpeg-dev libpng-dev libxpm-dev libncurses-dev texinfo sqlite3 libsqlite3-dev libjansson4 libjansson-dev autoconf
apt-get install libgccjit0 libgccjit-13-dev

And in Emacs 29, tree-sitter support is built-in. Now build tree-sitter from source code, tree-sitter library will be installed into /usr/local/lib.

git clone https://github.com/tree-sitter/tree-sitter.git
cd tree-sitter
git checkout v0.24.3
make
make install
export LD_LIBRARY_PATH=/usr/local/lib/

Now build emacs with pgtk and tree-sitter.

git clone https://git.savannah.gnu.org/git/emacs.git
cd emacs
./autogen.sh
./configure --prefix=/usr/local/emacs --with-native-compilation=aot --with-pgtk --with-tree-sitter --without-pop
make -j 8
make install

Build libvterm if you need to use vterm on Linux.

tar -zxf libvterm-0.3.3.tar.gz
cd libvterm-0.3.3
make
make install

When run emacs with WSL Ubuntu 24.04, Ubuntu 24.04 Wayland falling back to X11.

Due to a bug of systemd fixed in 24.04, you must do :

ln -sf  /mnt/wslg/runtime-dir/wayland-* $XDG_RUNTIME_DIR/

Or use an autostart conf: https://github.com/viruscamp/wslg-links