diff --git a/apps/cachix.nix b/apps/cachix.nix new file mode 100644 index 0000000..313cbe5 --- /dev/null +++ b/apps/cachix.nix @@ -0,0 +1,12 @@ +{ + writeShellApplication, + cachix, + stdenv, +}: +writeShellApplication { + name = "cachix"; + runtimeInputs = [cachix]; + text = '' + exec cachix -d ./cachix -m nixos "$@" + ''; +} diff --git a/cachix/cachix.nix b/cachix/cachix.nix new file mode 100644 index 0000000..a270785 --- /dev/null +++ b/cachix/cachix.nix @@ -0,0 +1,13 @@ +# WARN: this file will get overwritten by $ cachix use +{ + pkgs, + lib, + ... +}: let + folder = ./cachix; + toImport = name: value: folder + ("/" + name); + filterCaches = key: value: value == "regular" && lib.hasSuffix ".nix" key; + imports = lib.mapAttrsToList toImport (lib.filterAttrs filterCaches (builtins.readDir folder)); +in { + inherit imports; +} diff --git a/cachix/cachix/nix-community.nix b/cachix/cachix/nix-community.nix new file mode 100644 index 0000000..28de7e4 --- /dev/null +++ b/cachix/cachix/nix-community.nix @@ -0,0 +1,12 @@ +{ + nix = { + settings = { + substituters = [ + "https://nix-community.cachix.org" + ]; + trusted-public-keys = [ + "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" + ]; + }; + }; +} diff --git a/cachix/cachix/nixos.nix b/cachix/cachix/nixos.nix new file mode 100644 index 0000000..9bc5acb --- /dev/null +++ b/cachix/cachix/nixos.nix @@ -0,0 +1,12 @@ +{ + nix = { + settings = { + substituters = [ + "https://cache.nixos.org/" + ]; + trusted-public-keys = [ + "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" + ]; + }; + }; +} diff --git a/cachix/cachix/willemml.nix b/cachix/cachix/willemml.nix new file mode 100644 index 0000000..4eb8adb --- /dev/null +++ b/cachix/cachix/willemml.nix @@ -0,0 +1,12 @@ +{ + nix = { + settings = { + substituters = [ + "https://willemml.cachix.org" + ]; + trusted-public-keys = [ + "willemml.cachix.org-1:A8M1pBOuBmA6f4Pq4+VNO0r4Joi2I3DZI72V3U+YnKg=" + ]; + }; + }; +} diff --git a/flake-parts/home-manager/modules.nix b/flake-parts/home-manager/modules.nix index 4077994..b594559 100644 --- a/flake-parts/home-manager/modules.nix +++ b/flake-parts/home-manager/modules.nix @@ -32,6 +32,8 @@ home.sessionVariables.NIX_PATH = "nixpkgs=${inputs.nixpkgs}"; nix.registry.nixpkgs.flake = inputs.nixpkgs; }; + + nix-useCachix = ../../cachix/cachix.nix; } // modules; } diff --git a/flake-parts/home-manager/users.nix b/flake-parts/home-manager/users.nix index e990b82..535aebc 100644 --- a/flake-parts/home-manager/users.nix +++ b/flake-parts/home-manager/users.nix @@ -8,6 +8,7 @@ homeManagerModules.user-willem = { imports = [ self.homeManagerModules.default + self.homeManagerModules.nix-useCachix self.homeManagerModules.nixpkgs-useFlakeNixpkgs self.homeManagerModules.nixpkgs-config ]; diff --git a/flake-parts/nixos/hosts.nix b/flake-parts/nixos/hosts.nix index 088df82..285a7dc 100644 --- a/flake-parts/nixos/hosts.nix +++ b/flake-parts/nixos/hosts.nix @@ -6,11 +6,13 @@ flake = { nixosModules.base = {config, ...}: { imports = [ + ../../nixos/cachix ../../nixos/profiles/common.nix ../../nixos/profiles/linux-common.nix inputs.home-manager.nixosModules.home-manager self.nixosModules.default self.nixosModules.home-manager-integration + self.nixosModules.nix-useCachix self.nixosModules.nixpkgs-useFlakeNixpkgs ]; @@ -28,6 +30,8 @@ inputs.home-manager.darwinModules.home-manager self.nixosModules.custom-linkNixInputs self.nixosModules.home-manager-integration + self.nixosModules.nix-useCachix + self.nixosModules.nixpkgs-useFlakeNixpkgs ]; nixpkgs.overlays = builtins.attrValues self.overlays; diff --git a/flake-parts/nixos/modules.nix b/flake-parts/nixos/modules.nix index 20448eb..668d7ff 100644 --- a/flake-parts/nixos/modules.nix +++ b/flake-parts/nixos/modules.nix @@ -25,6 +25,8 @@ nix.registry.nixpkgs.flake = inputs.nixpkgs; }; + nix-useCachix = ../../cachix/cachix.nix; + home-manager-integration = { config.home-manager = { useGlobalPkgs = true;