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