From 23a37e61497c399707aff6b3a21ac5652db90bbc Mon Sep 17 00:00:00 2001 From: Jordan Holt Date: Sat, 20 May 2023 14:14:39 +0100 Subject: [PATCH] Add overlay for mutter triple-buffering --- flake.nix | 22 ++++++++++++---------- overlays/gnome.nix | 11 +++++++++++ 2 files changed, 23 insertions(+), 10 deletions(-) create mode 100644 overlays/gnome.nix diff --git a/flake.nix b/flake.nix index ca53217..13c13df 100644 --- a/flake.nix +++ b/flake.nix @@ -9,16 +9,20 @@ }; }; - outputs = inputs @ { nixpkgs, home-manager, ... }: + outputs = inputs @ { self, nixpkgs, home-manager, ... }: let inherit (lib) attrValues; inherit (lib.my) mapModules mapModulesRec; - mkPkgs = pkgs: + system = "x86_64-linux"; + + mkPkgs = pkgs: extraOverlays: import pkgs { + inherit system; config.allowUnfree = true; + overlays = extraOverlays ++ (lib.attrValues self.overlays); }; - pkgs = mkPkgs nixpkgs; + pkgs = mkPkgs nixpkgs []; lib = nixpkgs.lib.extend (self: super: { my = import ./lib { @@ -29,49 +33,47 @@ in { lib = lib.my; - nixosModules = mapModulesRec ./modules import; - nixosConfigurations = { atlas = nixpkgs.lib.nixosSystem { - system = "x86_64-linux"; modules = [ inputs.home-manager.nixosModules.home-manager + { nixpkgs.overlays = [ (import ./overlays/gnome.nix) ]; } (import ./modules) ./hosts/atlas ]; specialArgs = { inherit lib inputs; }; }; eos = nixpkgs.lib.nixosSystem { - system = "x86_64-linux"; modules = [ inputs.home-manager.nixosModules.home-manager + { nixpkgs.overlays = [ (import ./overlays/gnome.nix) ]; } (import ./modules) ./hosts/eos ]; specialArgs = { inherit lib inputs; }; }; helios = nixpkgs.lib.nixosSystem { - system = "x86_64-linux"; modules = [ inputs.home-manager.nixosModules.home-manager + { nixpkgs.overlays = [ (import ./overlays/gnome.nix) ]; } (import ./modules) ./hosts/helios ]; specialArgs = { inherit lib inputs; }; }; library = nixpkgs.lib.nixosSystem { - system = "x86_64-linux"; modules = [ inputs.home-manager.nixosModules.home-manager + { nixpkgs.overlays = [ (import ./overlays/gnome.nix) ]; } (import ./modules) ./hosts/library ]; specialArgs = { inherit lib inputs; }; }; odyssey = nixpkgs.lib.nixosSystem { - system = "x86_64-linux"; modules = [ inputs.home-manager.nixosModules.home-manager + { nixpkgs.overlays = [ (import ./overlays/gnome.nix) ]; } (import ./modules) ./hosts/odyssey ]; diff --git a/overlays/gnome.nix b/overlays/gnome.nix new file mode 100644 index 0000000..906764f --- /dev/null +++ b/overlays/gnome.nix @@ -0,0 +1,11 @@ +self: super: +{ + gnome = super.gnome.overrideScope' (gself: gsuper: { + mutter = gsuper.mutter.overrideAttrs (oldAttrs: { + src = super.fetchurl { + url = "https://gitlab.gnome.org/Community/Ubuntu/mutter/-/archive/triple-buffering-v4-43/mutter-triple-buffering-v4-43.tar.gz"; + sha256 = "e+pN+lZs3ZLdVkh7PAB1xUWqjhep9X6uKbU2GgEZ6aQ="; + }; + }); + }); +}