Build Emacs From Source

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.

Install Essential Packages#

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

Tree-sitter Support#

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/

Install Emacs#

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

Install libvterm#

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

FAQs#

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

Related

Emacs Proxy

Proxy servers are commonly used to provide gateways through firewalls or as caches serving some more-or-less local network.

Emacs tokyonight-themes

A clean dark Visual Studio Code theme that celebrates the lights of Downtown Tokyo at night.

Disable Annoying Audio Notifications

By default Emacs ring the bell to attract the user’s attention, this is annoying.