From 4e4ec16117af9dbf1043e8b9e82e908e0efbfa75 Mon Sep 17 00:00:00 2001 From: Tim Keller Date: Mon, 11 May 2026 17:20:52 -0500 Subject: new standalone home-manager config in flake --- flake.nix | 43 ++++++++++++++++++++++++++++++++++++------- 1 file changed, 36 insertions(+), 7 deletions(-) (limited to 'flake.nix') diff --git a/flake.nix b/flake.nix index 708f390..92b76a9 100644 --- a/flake.nix +++ b/flake.nix @@ -23,8 +23,14 @@ rec { }; }; - outputs = { nixpkgs, ... }@inputs: let + outputs = { nixpkgs, home-manager, ... }@inputs: let extLib = nixpkgs.lib.extend (final: prev: import ./lib); + extLibHomeManagerStandalone = nixpkgs.lib.extend (final: prev: import ./lib/home-manager); + homeManagerModules = [ + inputs.arkenfox.hmModules.arkenfox + inputs.reposync.hmModules.reposync + ./home-manager + ]; mkNixosConfiguration = system: hostname: nixpkgs.lib.nixosSystem { inherit system; specialArgs = { @@ -40,16 +46,12 @@ rec { ./pkgs ./users inputs.sops-nix.nixosModules.sops - inputs.home-manager.nixosModules.home-manager { + home-manager.nixosModules.home-manager { home-manager = { backupFileExtension = "backup"; # In case file is overwritten useGlobalPkgs = true; useUserPackages = true; - sharedModules = [ - inputs.arkenfox.hmModules.arkenfox - inputs.reposync.hmModules.reposync - ./home-manager - ]; + sharedModules = homeManagerModules; }; } ]; @@ -62,6 +64,28 @@ rec { }) hostsBySystem.${system} ) (builtins.attrNames hostsBySystem) ); + mkHomeConfiguration = user: system: hostname: home-manager.lib.homeManagerConfiguration { + pkgs = nixpkgs.legacyPackages.${system}; + extraSpecialArgs = { + inherit inputs; + inherit hostname; + lib = extLibHomeManagerStandalone; + }; + modules = homeManagerModules ++ [ + ./hosts/${hostname}/home-${user}/configuration.nix + ./archetypes/profiles + ./pkgs + ./users/default-home.nix + ]; + }; + mkHomeConfigurations = hostsBySystem: builtins.listToAttrs ( + builtins.concatMap (system: + map (host: { + name = host; + value = mkHomeConfiguration "timmy" system host; # TODO + }) hostsBySystem.${system} + ) (builtins.attrNames hostsBySystem) + ); in { # Configured system hostnames go here under their respective system architecture nixosConfigurations = mkNixosConfigurations { @@ -78,5 +102,10 @@ rec { "piframe" ]; }; + homeConfigurations = mkHomeConfigurations { + x86_64-linux = [ + "libreX60" + ]; + }; }; } -- cgit v1.2.3