1{
2 config,
3 lib,
4 pkgs,
5 ...
6}:
7
8let
9 cfg = config.services.homed;
10in
11{
12 options.services.homed.enable = lib.mkEnableOption ''
13 systemd home area/user account manager
14 '';
15
16 config = lib.mkIf cfg.enable {
17 assertions = [
18 {
19 assertion = config.services.nscd.enable;
20 message = "systemd-homed requires the use of systemd nss module. services.nscd.enable must be set to true,";
21 }
22 ];
23
24 systemd.additionalUpstreamSystemUnits = [
25 "systemd-homed.service"
26 "systemd-homed-activate.service"
27 ];
28
29 # This is mentioned in homed's [Install] section.
30 #
31 # While homed appears to work without it, it's probably better
32 # to follow upstream recommendations.
33 services.userdbd.enable = lib.mkDefault true;
34
35 systemd.services = {
36 systemd-homed = {
37 # These packages are required to manage encrypted volumes
38 path = config.system.fsPackages;
39 aliases = [ "dbus-org.freedesktop.home1.service" ];
40 wantedBy = [ "multi-user.target" ];
41 };
42
43 systemd-homed-activate = {
44 wantedBy = [ "systemd-homed.service" ];
45 };
46 };
47 };
48}