diff --git a/flake.lock b/flake.lock index c44bcca..0df4344 100644 --- a/flake.lock +++ b/flake.lock @@ -131,6 +131,25 @@ "type": "github" } }, + "gnome-triplebuffering": { + "flake": false, + "locked": { + "host": "gitlab.gnome.org", + "lastModified": 1722924508, + "narHash": "sha256-C2VfW3ThPEZ37YkX7ejlyumLnWa9oij333d5c4yfZxc=", + "owner": "vanvugt", + "repo": "mutter", + "rev": "29a72bfb0bdb060d91196c57dc1940e5049858ed", + "type": "gitlab" + }, + "original": { + "host": "gitlab.gnome.org", + "owner": "vanvugt", + "ref": "triple-buffering-v4-46", + "repo": "mutter", + "type": "gitlab" + } + }, "home-manager": { "inputs": { "nixpkgs": [ @@ -340,6 +359,7 @@ }, "root": { "inputs": { + "gnome-triplebuffering": "gnome-triplebuffering", "home-manager": "home-manager", "lanzaboote": "lanzaboote", "lix-module": "lix-module", diff --git a/flake.nix b/flake.nix index 283955e..5c87e74 100644 --- a/flake.nix +++ b/flake.nix @@ -38,6 +38,13 @@ url = "git+file:./secrets"; flake = false; }; + + # Repository for Gnome triple buffering patch + # For details, see https://wiki.nixos.org/wiki/GNOME#Dynamic_triple_buffering + gnome-triplebuffering = { + url = "gitlab:vanvugt/mutter/triple-buffering-v4-46?host=gitlab.gnome.org"; + flake = false; + }; }; outputs = diff --git a/modules/ui/desktops/gnome.nix b/modules/ui/desktops/gnome.nix index 2c7d69a..145aee5 100644 --- a/modules/ui/desktops/gnome.nix +++ b/modules/ui/desktops/gnome.nix @@ -1,5 +1,6 @@ # Enables the Gnome desktop environment. { + inputs, pkgs, config, lib, @@ -103,20 +104,12 @@ in }; nixpkgs.overlays = lib.mkIf cfg.experimentalFeatures.enable [ - # GNOME 46: triple-buffering-v4-46 - # For details, see https://wiki.nixos.org/wiki/GNOME#Dynamic_triple_buffering (final: prev: { gnome = prev.gnome.overrideScope ( gnomeFinal: gnomePrev: { mutter = gnomePrev.mutter.overrideAttrs (old: { - src = pkgs.fetchFromGitLab { - domain = "gitlab.gnome.org"; - owner = "vanvugt"; - repo = "mutter"; - rev = "triple-buffering-v4-46"; - hash = "sha256-C2VfW3ThPEZ37YkX7ejlyumLnWa9oij333d5c4yfZxc="; - }; - + # Triple buffering + src = inputs.gnome-triplebuffering; # Scaling patch sourced from https://aur.archlinux.org/packages/mutter-xwayland-scaling patches = [ ./patches/gnome-mutter-xwayland-scaling.patch ]; });