forked from jan-leila/nix-config
		
	added home manager configurations to output
This commit is contained in:
		
							parent
							
								
									90f0c114b3
								
							
						
					
					
						commit
						3fdee879c7
					
				
					 9 changed files with 45 additions and 32 deletions
				
			
		
							
								
								
									
										19
									
								
								flake.nix
									
										
									
									
									
								
							
							
						
						
									
										19
									
								
								flake.nix
									
										
									
									
									
								
							|  | @ -63,11 +63,15 @@ | |||
|     }; | ||||
|   }; | ||||
| 
 | ||||
|   outputs = {...} @ inputs: let | ||||
|   outputs = { | ||||
|     self, | ||||
|     nixpkgs, | ||||
|     ... | ||||
|   } @ inputs: let | ||||
|     util = import ./util {inherit inputs;}; | ||||
|     forEachPkgs = util.forEachPkgs; | ||||
|     mkSystem = util.mkSystem; | ||||
|     # mkHome = util.mkHome; | ||||
|     mkHome = util.mkHome; | ||||
|     # callPackage = nixpkgs.lib.callPackageWith (nixpkgs // {lib = lib;}); | ||||
|     # lib = callPackage ./lib {} // nixpkgs.lib; | ||||
|   in { | ||||
|  | @ -93,6 +97,17 @@ | |||
|       }; | ||||
|     }); | ||||
| 
 | ||||
|     homeConfigurations = nixpkgs.lib.attrsets.mergeAttrsList ( | ||||
|       nixpkgs.lib.attrsets.mapAttrsToList (hostname: system: ( | ||||
|         nixpkgs.lib.attrsets.mapAttrs' (user: _: { | ||||
|           name = "${user}@${hostname}"; | ||||
|           value = mkHome user hostname system.pkgs.hostPlatform.system system.config; | ||||
|         }) | ||||
|         system.config.home-manager.users | ||||
|       )) | ||||
|       self.nixosConfigurations | ||||
|     ); | ||||
| 
 | ||||
|     # homeConfigurations = { | ||||
|     #   "leyla@horizon" = mkHome "leyla" "horizon"; # "x86_64-linux" ./homes/leyla; | ||||
|     # }; | ||||
|  |  | |||
|  | @ -4,7 +4,7 @@ | |||
|   osConfig, | ||||
|   ... | ||||
| }: let | ||||
|   cfg = osConfig.host.users.ester; | ||||
|   userConfig = osConfig.host.users.ester; | ||||
| in { | ||||
|   imports = [ | ||||
|     ../../home-modules | ||||
|  | @ -12,7 +12,7 @@ in { | |||
| 
 | ||||
|   config = { | ||||
|     home = { | ||||
|       username = "ester"; | ||||
|       username = userConfig.name; | ||||
|       homeDirectory = osConfig.users.users.ester.home; | ||||
| 
 | ||||
|       # This value determines the Home Manager release that your configuration is | ||||
|  | @ -58,7 +58,7 @@ in { | |||
|         # EDITOR = "emacs"; | ||||
|       }; | ||||
| 
 | ||||
|       packages = lib.lists.optionals cfg.isDesktopUser ( | ||||
|       packages = lib.lists.optionals userConfig.isDesktopUser ( | ||||
|         with pkgs; [ | ||||
|           # helvetica font | ||||
|           aileron | ||||
|  |  | |||
|  | @ -4,7 +4,7 @@ | |||
|   osConfig, | ||||
|   ... | ||||
| }: let | ||||
|   cfg = osConfig.host.users.eve; | ||||
|   userConfig = osConfig.host.users.eve; | ||||
| in { | ||||
|   imports = [ | ||||
|     ../../home-modules | ||||
|  | @ -12,7 +12,7 @@ in { | |||
| 
 | ||||
|   config = { | ||||
|     home = { | ||||
|       username = "eve"; | ||||
|       username = userConfig.name; | ||||
|       homeDirectory = osConfig.users.users.eve.home; | ||||
| 
 | ||||
|       # This value determines the Home Manager release that your configuration is | ||||
|  | @ -58,7 +58,7 @@ in { | |||
|         # EDITOR = "emacs"; | ||||
|       }; | ||||
| 
 | ||||
|       packages = lib.lists.optionals cfg.isDesktopUser ( | ||||
|       packages = lib.lists.optionals userConfig.isDesktopUser ( | ||||
|         with pkgs; [ | ||||
|           firefox | ||||
|           bitwarden | ||||
|  |  | |||
|  | @ -1,4 +1,8 @@ | |||
| {pkgs, ...}: { | ||||
| { | ||||
|   pkgs, | ||||
|   osConfig, | ||||
|   ... | ||||
| }: { | ||||
|   imports = [ | ||||
|     ./packages.nix | ||||
|     ../../home-modules | ||||
|  | @ -8,8 +12,8 @@ | |||
|     # Home Manager needs a bit of information about you and the paths it should | ||||
|     # manage. | ||||
|     home = { | ||||
|       username = "leyla"; | ||||
|       # homeDirectory = osConfig.users.users.leyla.home; | ||||
|       username = osConfig.host.users.leyla.name; | ||||
|       homeDirectory = osConfig.users.users.leyla.home; | ||||
| 
 | ||||
|       # This value determines the Home Manager release that your configuration is | ||||
|       # compatible with. This helps avoid breakage when a new Home Manager release | ||||
|  |  | |||
|  | @ -1,7 +1,5 @@ | |||
| { | ||||
|   lib, | ||||
|   osConfig, | ||||
|   # buildFirefoxXpiAddon, | ||||
|   pkgs, | ||||
|   inputs, | ||||
|   ... | ||||
|  |  | |||
|  | @ -4,7 +4,7 @@ | |||
|   pkgs, | ||||
|   ... | ||||
| }: let | ||||
|   cfg = osConfig.host.users.leyla; | ||||
|   userConifg = osConfig.host.users.leyla; | ||||
|   hardware = osConfig.host.hardware; | ||||
| in { | ||||
|   imports = [ | ||||
|  | @ -14,7 +14,7 @@ in { | |||
| 
 | ||||
|   home = { | ||||
|     packages = | ||||
|       lib.lists.optionals cfg.isTerminalUser ( | ||||
|       lib.lists.optionals userConifg.isTerminalUser ( | ||||
|         with pkgs; [ | ||||
|           # comand line tools | ||||
|           yt-dlp | ||||
|  | @ -23,7 +23,7 @@ in { | |||
|         ] | ||||
|       ) | ||||
|       ++ ( | ||||
|         lib.lists.optionals cfg.isDesktopUser ( | ||||
|         lib.lists.optionals userConifg.isDesktopUser ( | ||||
|           with pkgs; [ | ||||
|             # helvetica font | ||||
|             aileron | ||||
|  |  | |||
|  | @ -1,6 +1,4 @@ | |||
| { | ||||
|   lib, | ||||
|   osConfig, | ||||
|   pkgs, | ||||
|   inputs, | ||||
|   ... | ||||
|  | @ -77,8 +75,6 @@ | |||
| 
 | ||||
|             # misc extensions | ||||
|             bungcip.better-toml | ||||
| 
 | ||||
|             # lib.mkIf open-vsx."10nates".ollama-autocoder | ||||
|           ] | ||||
|           ++ ( | ||||
|             with vscode-marketplace; [ | ||||
|  |  | |||
|  | @ -88,7 +88,7 @@ in { | |||
|             type = lib.types.bool; | ||||
|             default = config.isDesktopUser || config.isTerminalUser; | ||||
|             description = '' | ||||
|               User should install their applications | ||||
|               User should install their applications and can log in | ||||
|             ''; | ||||
|             defaultText = lib.literalExpression "config.host.users.\${name}.isNormalUser"; | ||||
|           }; | ||||
|  |  | |||
|  | @ -47,15 +47,15 @@ in { | |||
|       ]; | ||||
|     }; | ||||
| 
 | ||||
|   # mkHome = user: host: | ||||
|   #   home-manager.lib.homeManagerConfiguration { | ||||
|   #     # pkgs = pkgsFor system; | ||||
|   #     extraSpecialArgs = { | ||||
|   #       inherit inputs util outputs; | ||||
|   #     }; | ||||
|   #     modules = [ | ||||
|   #       # config | ||||
|   #       outputs.homeManagerModules.default | ||||
|   #     ]; | ||||
|   #   }; | ||||
|   mkHome = user: host: system: osConfig: | ||||
|     home-manager.lib.homeManagerConfiguration { | ||||
|       pkgs = pkgsFor system; | ||||
|       extraSpecialArgs = { | ||||
|         inherit inputs util outputs osConfig; | ||||
|       }; | ||||
|       modules = [ | ||||
|         # outputs.homeManagerModules.default | ||||
|         ../homes/${user} | ||||
|       ]; | ||||
|     }; | ||||
| } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue