Change:
mutter requires this patch: I built and tested the patch on top of (current unstable) and it compiles + fixes the issue. want me to create a PR?
There's been so many bugs uncovered in mutter that we could easily backport 10+ patches. Personally, I've been running off without issue.
Yeah, I'm also running on the branches without any problem (not sure why they haven't cut a new a release tbh).
Opened

Discussion:
<del> { fetchurl, fetchpatch, substituteAll, stdenv, pkgconfig, gnome3, gettext, gobject-introspection, upower, cairo , pango, cogl, json-glib, libstartup_notification, zenity, libcanberra-gtk3 , ninja, xkeyboard_config, libxkbfile, libxkbcommon, libXtst, libinput , gsettings-desktop-schemas, glib, gtk3, gnome-desktop , geocode-glib, pipewire, libgudev, libwacom, xwayland, meson </del> <ins> { fetchurl , fetchpatch , substituteAll , stdenv , pkgconfig , gnome3 , gettext , gobject-introspection , upower , cairo , pango , cogl , json-glib , libstartup_notification , zenity , libcanberra-gtk3 , ninja , xkeyboard_config , libxkbfile , libxkbcommon , libXtst , libinput , gsettings-desktop-schemas , glib , gtk3 , gnome-desktop , geocode-glib , pipewire , libgudev , libwacom , xwayland , meson </ins> , gnome-settings-daemon , xorgserver , python3

}; mesonFlags = [ <del> "-Dxwayland-path=${xwayland}/bin/Xwayland" </del> <ins> "-Degl_device=true" </ins> "-Dinstalled_tests=false" # TODO: enable these "-Dwayland_eglstream=true" <del> "-Degl_device=true" </del> <ins> "-Dxwayland-path=${xwayland}/bin/Xwayland" </ins> ]; propagatedBuildInputs = [ # required for pkgconfig to detect mutter-clutter <del> libXtst </del> json-glib <ins> libXtst </ins> libcap_ng ]; nativeBuildInputs = [ <del> meson pkgconfig </del> <ins> desktop-file-utils </ins> gettext <ins> meson </ins> ninja <ins> pkgconfig </ins> python3 <del> # for cvt command xorgserver </del> wrapGAppsHook <del> desktop-file-utils </del> <ins> xorgserver # for cvt command </ins> ]; buildInputs = [ <del> glib gobject-introspection gtk3 gsettings-desktop-schemas upower gnome-desktop cairo pango cogl zenity libstartup_notification geocode-glib libinput libgudev libwacom libcanberra-gtk3 zenity xkeyboard_config libxkbfile libxkbcommon pipewire xwayland egl-wayland gnome-settings-daemon sysprof </del> <ins> cairo cogl egl-wayland geocode-glib glib gnome-desktop gnome-settings-daemon gobject-introspection gsettings-desktop-schemas gtk3 libcanberra-gtk3 libgudev libinput libstartup_notification libwacom libxkbcommon libxkbfile pango pipewire sysprof upower xkeyboard_config xwayland zenity zenity </ins> ]; patches = [ <ins> # Fixes from gnome-3-34 branch 2019-11-29. (fetchpatch { name = "gnome-3-34-2019-11-29.patch"; url = "https://github.com/GNOME/mutter/compare/3.34.1...c0e76186da5b7baf7c8804c0ffa80232a5a6bf98.patch"; excludes = [ ".gitlab-ci.yml" ".gitlab-ci/checkout-gnome-shell.sh" ]; sha256 = "1qmxic83bd3dvg6isipqy8jaaksd7p5s3cb7h44zinq738n8d0fb"; }) # Fix build with libglvnd provided headers (fetchpatch { url = "https://gitlab.gnome.org/GNOME/mutter/commit/a444a4c5f58ea516ad3cd9d6ddc0056c3ca9bc90.patch"; sha256 = "0imy2j8af9477jliwdq4jc40yw1cifsjjf196gnmwxr9rkj0hbrd"; }) </ins> # Drop inheritable cap_sys_nice, to prevent the ambient set from leaking # from mutter/gnome-shell, see https://github.com/NixOS/nixpkgs/issues/71381 ./drop-inheritable.patch <del> # TODO: submit upstream ./0001-build-use-get_pkgconfig_variable-for-sysprof-dbusdir.patch </del> <ins> # TODO: submit upstream ./0001-build-use-get_pkgconfig_variable-for-sysprof-dbusdir.patch </ins> (substituteAll { src = ./fix-paths.patch; inherit zenity; }) <del> # Fix build with libglvnd provided headers (fetchpatch { url = "https://gitlab.gnome.org/GNOME/mutter/commit/a444a4c5f58ea516ad3cd9d6ddc0056c3ca9bc90.patch"; sha256 = "0imy2j8af9477jliwdq4jc40yw1cifsjjf196gnmwxr9rkj0hbrd"; }) </del> ]; postPatch = ''

${glib.dev}/bin/glib-compile-schemas "$out/share/glib-2.0/schemas" ''; <del> enableParallelBuilding = true; </del> passthru = { updateScript = gnome3.updateScript { <del> packageName = "mutter"; attrPath = "gnome3.mutter"; </del> <ins> packageName = pname; attrPath = "gnome3.${pname}"; </ins> }; }; meta = with stdenv.lib; { <del> platforms = platforms.linux; maintainers = gnome3.maintainers; </del> <ins> description = "A window manager for GNOME"; homepage = "https://gitlab.gnome.org/GNOME/mutter"; </ins> license = licenses.gpl2; <ins> maintainers = gnome3.maintainers; platforms = platforms.linux; </ins> }; }