summaryrefslogtreecommitdiff
path: root/util/user.nix
blob: 366112f4150b9ed82a690794e01d6e4395691905 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
{home-manager, ...}: {
  mkHMUser = {
    username,
    stateVersion ? "22.11",
    system ? "x86_64-linux",
    channel,
    modules ? [],
    extraSpecialArgs ? {},
  }:
    home-manager.lib.homeManagerConfiguration {
      pkgs = channel.legacyPackages.${system};
      inherit extraSpecialArgs;
      modules =
        [
          ../users/${username}/home.nix
          {
            nixpkgs.config = {
              allowUnfree = true;
              allowUnsupportedSystem = true;
            };

            nix = {
              package = channel.legacyPackages.${system}.nixFlakes;
              settings.experimental-features = ["nix-command" "flakes"];
            };

            systemd.user.startServices = true;

            home = {
              inherit username stateVersion;
              homeDirectory = "/home/${username}";
            };

            programs.home-manager.enable = true;
          }
        ]
        ++ modules;
    };
}