diff --git a/flake.nix b/flake.nix index 1db530ff..2ac8588c 100644 --- a/flake.nix +++ b/flake.nix @@ -41,7 +41,12 @@ pkgs.gdk-pixbuf pkgs.libsoup_3 pkgs.webkitgtk_4_1 - ] ++ (if pkgs.stdenv.isDarwin then [ + ] ++ (if pkgs.stdenv.isLinux then [ + # Mesa with software rendering support for environments without a GPU + # (e.g., VMs, CI, containers). Provides libEGL_mesa.so and swrast DRI + # drivers needed by WebKitGTK to initialize EGL. + pkgs.mesa + ] else []) ++ (if pkgs.stdenv.isDarwin then [ # macOS-specific dependencies pkgs.darwin.apple_sdk.frameworks.WebKit pkgs.darwin.apple_sdk.frameworks.AppKit @@ -51,6 +56,15 @@ shellHook = '' echo "Using Rust version: $(rustc --version)" echo "Tauri development environment ready" + '' + # On Linux, configure Mesa EGL for software rendering so WebKitGTK works + # in environments without a GPU (VMs, containers, headless servers). + + pkgs.lib.optionalString pkgs.stdenv.isLinux '' + export __EGL_VENDOR_LIBRARY_FILENAMES=${pkgs.mesa}/share/glvnd/egl_vendor.d/50_mesa.json + export LIBGL_DRIVERS_PATH=${pkgs.mesa}/lib/dri + export LIBGL_ALWAYS_SOFTWARE=1 + export WEBKIT_DISABLE_COMPOSITING_MODE=1 + export WEBKIT_DISABLE_DMABUF_RENDERER=1 ''; }; }