diff --git a/flake.nix b/flake.nix index 047fdb6..55564f5 100644 --- a/flake.nix +++ b/flake.nix @@ -30,7 +30,6 @@ outputs = { self, nixpkgs, nixpkgs-unstable, flake-utils, home-manager, sops-nix, disko }: let - # Helper to build per-host pkgs for a given system string mkPkgs = system: import nixpkgs { inherit system; config.allowUnfree = true; @@ -41,23 +40,21 @@ config.allowUnfree = true; }; - # Utility to overlay unstable packages (takes system as arg) mkOverlayUnstable = system: final: prev: { unstable = mkPkgsUnstable system; }; - # Helper that builds a full NixOS configuration for a given host + arch. # Set enableHomeManager = false for servers or minimal installs that # don't need user-level dotfile/package management. mkNixosSystem = { system, hostModule, enableHomeManager ? true }: let + pkgs-unstable = mkPkgsUnstable system; hmModules = if enableHomeManager then [ home-manager.nixosModules.home-manager { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.extraSpecialArgs = { - inherit sops-nix; - pkgs-unstable = mkPkgsUnstable system; + inherit sops-nix pkgs-unstable; }; home-manager.users.youruser = import ./home/default.nix; } @@ -66,8 +63,7 @@ inherit system; specialArgs = { - inherit sops-nix disko; - pkgs-unstable = mkPkgsUnstable system; + inherit sops-nix disko pkgs-unstable; }; modules = [ @@ -80,7 +76,18 @@ ] ++ hmModules; }; - # Default system for devShell and standalone home-manager + mkHomeConfig = system: home-manager.lib.homeManagerConfiguration { + pkgs = mkPkgs system; + extraSpecialArgs = { + pkgs-unstable = mkPkgsUnstable system; + inherit sops-nix; + }; + modules = [ + (mkOverlayUnstable system) + ./home/default.nix + ]; + }; + defaultSystem = "x86_64-linux"; pkgs = mkPkgs defaultSystem; @@ -117,31 +124,8 @@ # ============================================ homeConfigurations = { - # x86_64 Linux - "eliaskohout@linux" = home-manager.lib.homeManagerConfiguration { - pkgs = mkPkgs "x86_64-linux"; - extraSpecialArgs = { - pkgs-unstable = mkPkgsUnstable "x86_64-linux"; - sops-nix = sops-nix; - }; - modules = [ - (mkOverlayUnstable "x86_64-linux") - ./home/default.nix - ]; - }; - - # aarch64 Linux - "eliaskohout@linux-arm" = home-manager.lib.homeManagerConfiguration { - pkgs = mkPkgs "aarch64-linux"; - extraSpecialArgs = { - pkgs-unstable = mkPkgsUnstable "aarch64-linux"; - sops-nix = sops-nix; - }; - modules = [ - (mkOverlayUnstable "aarch64-linux") - ./home/default.nix - ]; - }; + "eliaskohout@linux" = mkHomeConfig "x86_64-linux"; + "eliaskohout@linux-arm" = mkHomeConfig "aarch64-linux"; }; # ============================================