From 2d738755e260e8198af0f402fb07bc408f9a3d39 Mon Sep 17 00:00:00 2001 From: schererleander Date: Tue, 29 Jul 2025 12:54:37 +0200 Subject: feat: add sharedModules, formatting --- lib/default.nix | 68 +++++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 44 insertions(+), 24 deletions(-) (limited to 'lib/default.nix') diff --git a/lib/default.nix b/lib/default.nix index ac0a88a..16177fe 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -3,41 +3,61 @@ let lib = inputs.nixpkgs.lib; isDarwin = s: lib.strings.hasSuffix "-darwin" s; -in rec { +in +rec { mkSystem = - { host - , username - , system - , extraModules ? [ ] - , extraArguments ? { } + { + host, + username, + system, + overlays ? [ ], + sharedModules ? [ ], + extraModules ? [ ], + extraArguments ? { }, }: let darwinHost = isDarwin system; - builder = if darwinHost - then inputs.nix-darwin.lib.darwinSystem - else inputs.nixpkgs.lib.nixosSystem; - hmModule = if darwinHost - then inputs.home-manager.darwinModules.home-manager - else inputs.home-manager.nixosModules.home-manager; - hostDir = ../hosts/${host}; - hostCfg = hostDir + "/configuration.nix"; - hostHome = hostDir + "/home.nix"; + builder = if darwinHost then inputs.nix-darwin.lib.darwinSystem else inputs.nixpkgs.lib.nixosSystem; + hmModule = + if darwinHost then + inputs.home-manager.darwinModules.home-manager + else + inputs.home-manager.nixosModules.home-manager; + pkgs = import inputs.nixpkgs { + inherit system overlays; + config.allowUnfree = true; + }; + hostDir = ../hosts/${host}; + hostCfg = hostDir + /configuration.nix; + hostHome = hostDir + /home.nix; modules = [ hostCfg ] - ++ (lib.optional darwinHost inputs."mac-app-util".darwinModules.default) + ++ lib.optionals darwinHost [ inputs.mac-app-util.darwinModules.default ] ++ [ - hmModule { - home-manager.useGlobalPkgs = true; + { + nix.settings.experimental-features = [ + "nix-command" + "flakes" + ]; + nixpkgs.overlays = overlays; + } + + hmModule + { + home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; - home-manager.extraSpecialArgs = { inherit inputs; }; + home-manager.extraSpecialArgs = { inherit inputs pkgs; }; home-manager.users.${username} = import hostHome; + home-manager.sharedModules = sharedModules; } ] ++ extraModules; in - builder { - inherit system modules; - specialArgs = { inherit inputs username; } // extraArguments; - }; + builder { + system = system; + specialArgs = { + inherit inputs pkgs; + } // extraArguments; + modules = modules; + }; } - -- cgit v1.3.1