diff options
Diffstat (limited to 'flake.nix')
| -rw-r--r-- | flake.nix | 69 |
1 files changed, 52 insertions, 17 deletions
@@ -35,28 +35,63 @@ dina, }: let - mkHomeModules = username: [ + # flakeAttr must match the darwinConfigurations attribute this machine is + # built from; the rebuild/update aliases in modules/home/zsh.nix use it so + # each machine targets its own configuration. + mkHomeModules = { username, flakeAttr ? "default" }: [ ./modules/home { home.username = username; home.file.".config/nvim".source = config-nvim; + _module.args.flakeAttr = flakeAttr; } ]; + + mkDarwin = + { + username, + flakeAttr, + hostName ? null, + }: + nix-darwin.lib.darwinSystem { + system = "aarch64-darwin"; + modules = [ + ./modules/darwin + home-manager.darwinModules.home-manager + { + # Primary user for system defaults and homebrew + system.primaryUser = username; + + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.backupFileExtension = "bak"; + home-manager.extraSpecialArgs = { inherit dina; }; + home-manager.users.${username} = { + imports = mkHomeModules { inherit username flakeAttr; }; + }; + } + ] + ++ nixpkgs.lib.optional (hostName != null) { + networking = { + inherit hostName; + computerName = hostName; + localHostName = hostName; + }; + }; + }; in { - darwinConfigurations."default" = nix-darwin.lib.darwinSystem { - system = "aarch64-darwin"; - modules = [ - ./modules/darwin - home-manager.darwinModules.home-manager - { - home-manager.useGlobalPkgs = true; - home-manager.useUserPackages = true; - home-manager.backupFileExtension = "bak"; - home-manager.extraSpecialArgs = { inherit dina; }; - home-manager.users.cobraz = { imports = mkHomeModules "cobraz"; }; - } - ]; + darwinConfigurations = { + "makkie" = mkDarwin { + username = "simenandre"; + flakeAttr = "makkie"; + hostName = "makkie"; + }; + + "default" = mkDarwin { + username = "cobraz"; + flakeAttr = "default"; + }; }; nixosConfigurations."nixbox" = nixpkgs.lib.nixosSystem { @@ -70,7 +105,7 @@ home-manager.useUserPackages = true; home-manager.backupFileExtension = "bak"; home-manager.extraSpecialArgs = { inherit dina; }; - home-manager.users.simenandre = { imports = mkHomeModules "simenandre"; }; + home-manager.users.simenandre = { imports = mkHomeModules { username = "simenandre"; }; }; } ]; }; @@ -78,13 +113,13 @@ homeConfigurations."simenandre" = home-manager.lib.homeManagerConfiguration { pkgs = nixpkgs.legacyPackages."x86_64-linux"; extraSpecialArgs = { inherit dina; }; - modules = mkHomeModules "simenandre"; + modules = mkHomeModules { username = "simenandre"; }; }; homeConfigurations."simenandre@aarch64-linux" = home-manager.lib.homeManagerConfiguration { pkgs = nixpkgs.legacyPackages."aarch64-linux"; extraSpecialArgs = { inherit dina; }; - modules = mkHomeModules "simenandre"; + modules = mkHomeModules { username = "simenandre"; }; }; }; } |
