forked from jan-leila/nix-config
		
	fixed nix-darwin building
This commit is contained in:
		
							parent
							
								
									0d0443a02a
								
							
						
					
					
						commit
						5f21fd43ff
					
				
					 14 changed files with 201 additions and 105 deletions
				
			
		|  | @ -6,7 +6,7 @@ | |||
|     ./hardware.nix | ||||
|     ./users.nix | ||||
|     ./desktop.nix | ||||
|     ./nix-development.nix | ||||
|     ./ssh.nix | ||||
|     ./i18n.nix | ||||
|   ]; | ||||
| } | ||||
|  |  | |||
|  | @ -1,26 +0,0 @@ | |||
| { | ||||
|   lib, | ||||
|   pkgs, | ||||
|   config, | ||||
|   inputs, | ||||
|   ... | ||||
| }: { | ||||
|   options.host.nix-development.enable = lib.mkEnableOption "should desktop configuration be enabled"; | ||||
| 
 | ||||
|   config = lib.mkMerge [ | ||||
|     { | ||||
|       host.nix-development.enable = lib.mkDefault true; | ||||
|     } | ||||
|     (lib.mkIf config.host.nix-development.enable { | ||||
|       nix = { | ||||
|         nixPath = ["nixpkgs=${inputs.nixpkgs}"]; | ||||
|       }; | ||||
|       environment.systemPackages = with pkgs; [ | ||||
|         # nix language server | ||||
|         nil | ||||
|         # nix formatter | ||||
|         alejandra | ||||
|       ]; | ||||
|     }) | ||||
|   ]; | ||||
| } | ||||
							
								
								
									
										13
									
								
								modules/nixos-modules/ssh.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								modules/nixos-modules/ssh.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,13 @@ | |||
| {...}: { | ||||
|   services = { | ||||
|     openssh = { | ||||
|       enable = true; | ||||
|       ports = [22]; | ||||
|       settings = { | ||||
|         PasswordAuthentication = false; | ||||
|         UseDns = true; | ||||
|         X11Forwarding = false; | ||||
|       }; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
|  | @ -1,8 +1,5 @@ | |||
| {...}: { | ||||
|   nix = { | ||||
|     settings = { | ||||
|       experimental-features = ["nix-command" "flakes"]; | ||||
|     }; | ||||
|     gc = { | ||||
|       automatic = true; | ||||
|       dates = "weekly"; | ||||
|  | @ -13,16 +10,4 @@ | |||
|       dates = ["weekly"]; | ||||
|     }; | ||||
|   }; | ||||
| 
 | ||||
|   services = { | ||||
|     openssh = { | ||||
|       enable = true; | ||||
|       ports = [22]; | ||||
|       settings = { | ||||
|         PasswordAuthentication = false; | ||||
|         UseDns = true; | ||||
|         X11Forwarding = false; | ||||
|       }; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
|  |  | |||
|  | @ -8,7 +8,6 @@ | |||
| 
 | ||||
|   host = config.host; | ||||
| 
 | ||||
|   hostUsers = host.hostUsers; | ||||
|   principleUsers = host.principleUsers; | ||||
|   terminalUsers = host.terminalUsers; | ||||
|   # normalUsers = host.normalUsers; | ||||
|  | @ -44,91 +43,7 @@ | |||
|   ester = users.ester.name; | ||||
|   eve = users.eve.name; | ||||
| in { | ||||
|   options.host = { | ||||
|     users = lib.mkOption { | ||||
|       type = lib.types.attrsOf (lib.types.submodule ({ | ||||
|         config, | ||||
|         name, | ||||
|         ... | ||||
|       }: { | ||||
|         options = { | ||||
|           name = lib.mkOption { | ||||
|             type = lib.types.str; | ||||
|             default = name; | ||||
|             description = '' | ||||
|               What should this users name on the system be | ||||
|             ''; | ||||
|             defaultText = lib.literalExpression "config.host.users.\${name}.name"; | ||||
|           }; | ||||
|           isPrincipleUser = lib.mkOption { | ||||
|             type = lib.types.bool; | ||||
|             default = false; | ||||
|             description = '' | ||||
|               User should be configured as root and have ssh access | ||||
|             ''; | ||||
|             defaultText = lib.literalExpression "config.host.users.\${name}.isPrincipleUser"; | ||||
|           }; | ||||
|           isDesktopUser = lib.mkOption { | ||||
|             type = lib.types.bool; | ||||
|             default = false; | ||||
|             description = '' | ||||
|               User should install their desktop applications | ||||
|             ''; | ||||
|             defaultText = lib.literalExpression "config.host.users.\${name}.isDesktopUser"; | ||||
|           }; | ||||
|           isTerminalUser = lib.mkOption { | ||||
|             type = lib.types.bool; | ||||
|             default = false; | ||||
|             description = '' | ||||
|               User should install their terminal applications | ||||
|             ''; | ||||
|             defaultText = lib.literalExpression "config.host.users.\${name}.isTerminalUser"; | ||||
|           }; | ||||
|           isNormalUser = lib.mkOption { | ||||
|             type = lib.types.bool; | ||||
|             default = config.isDesktopUser || config.isTerminalUser; | ||||
|             description = '' | ||||
|               User should install their applications and can log in | ||||
|             ''; | ||||
|             defaultText = lib.literalExpression "config.host.users.\${name}.isNormalUser"; | ||||
|           }; | ||||
|         }; | ||||
|       })); | ||||
|     }; | ||||
|     hostUsers = lib.mkOption { | ||||
|       default = lib.attrsets.mapAttrsToList (_: user: user) host.users; | ||||
|     }; | ||||
|     principleUsers = lib.mkOption { | ||||
|       default = lib.lists.filter (user: user.isPrincipleUser) hostUsers; | ||||
|     }; | ||||
|     normalUsers = lib.mkOption { | ||||
|       default = lib.lists.filter (user: user.isTerminalUser) hostUsers; | ||||
|     }; | ||||
|     terminalUsers = lib.mkOption { | ||||
|       default = lib.lists.filter (user: user.isNormalUser) hostUsers; | ||||
|     }; | ||||
|   }; | ||||
| 
 | ||||
|   config = { | ||||
|     assertions = | ||||
|       ( | ||||
|         builtins.map (user: { | ||||
|           assertion = !(user.isPrincipleUser && !user.isNormalUser); | ||||
|           message = '' | ||||
|             Non normal user ${user.name} can not be a principle user. | ||||
|           ''; | ||||
|         }) | ||||
|         hostUsers | ||||
|       ) | ||||
|       ++ [ | ||||
|         { | ||||
|           assertion = (builtins.length principleUsers) > 0; | ||||
|           message = '' | ||||
|             At least one user must be a principle user. | ||||
|           ''; | ||||
|         } | ||||
|       ]; | ||||
| 
 | ||||
|     # principle users are by definition trusted | ||||
|     nix.settings.trusted-users = builtins.map (user: user.name) principleUsers; | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue