Nix Flakes configuration for MacOS, NixOS and WSL
1{ self, ... }: {
2 config.flake.factory.user = { username, isAdmin }: {
3 nixosModules.${username} = { lib, ... }:
4 let home = "/home/${username}"; in {
5 imports = [ self.nixosModules.hjem ];
6
7 users.users.${username} = {
8 isNormalUser = true;
9 home = home;
10 extraGroups = lib.optionals isAdmin [ "wheel" ];
11 };
12
13 hjem.users.${username} = {
14 enable = true;
15 directory = home;
16 user = username;
17 };
18 };
19
20 darwinModules.${username} = { lib, ... }:
21 let home = "/Users/${username}"; in {
22 imports = [ self.darwinModules.hjem ];
23
24 users.users.${username} = {
25 home = home;
26 };
27
28 system.primaryUser = lib.mkIf isAdmin "${username}";
29
30 hjem.users.${username} = {
31 enable = true;
32 directory = home;
33 user = username;
34 };
35 };
36 };
37}