anchor.diff:        serviceConfig.ExecStartPre = preStart;
         serviceConfig.ExecStart = "${pkgs.transmission}/bin/transmission-daemon -f --port ${toString config.services.transmission.port}";
         serviceConfig.ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
  -      serviceConfig.User = "transmission";
  +      serviceConfig.User = cfg.user;
  +      serviceConfig.Group = cfg.group;
         # NOTE: transmission has an internal umask that also must be set (in settings.json)
         serviceConfig.UMask = "0002";
       };
  
positive.code:     # It's useful to have transmission in path, e.g. for remote control
      environment.systemPackages = [ pkgs.transmission ];
  
      users.groups.transmission.gid = config.ids.gids.transmission;
      users.users.transmission = {
        group = "transmission";
        uid = config.ids.uids.transmission;
        description = "Transmission BitTorrent user";
        home = homeDir;
        createHome = true;
      };
  
      # AppArmor profile
      security.apparmor.profiles = mkIf apparmor [
  
negative.code:           The directory where transmission will create files.
          '';
        };
  
        user = mkOption {
          type = types.str;
          default = "transmission";
          description = "User account under which Transmission runs.";
        };
  
        group = mkOption {
          type = types.str;
          default = "transmission";
          description = "Group account under which Transmission runs.";
        };
      };
    };
  
  