{ config, lib, pkgs, ... }: with lib; let cfg = config.services.thermald; in { ###### interface options = { services.thermald = { enable = mkOption { default = false; description = '' Whether to enable thermald, the temperature management daemon. ''; }; debug = mkOption { type = types.bool; default = false; description = '' Whether to enable debug logging. ''; }; configFile = mkOption { type = types.nullOr types.path; default = null; description = "the thermald manual configuration file."; }; }; }; ###### implementation config = mkIf cfg.enable { services.dbus.packages = [ pkgs.thermald ]; systemd.services.thermald = { description = "Thermal Daemon Service"; wantedBy = [ "multi-user.target" ]; serviceConfig = { ExecStart = '' ${pkgs.thermald}/sbin/thermald \ --no-daemon \ ${optionalString cfg.debug "--loglevel=debug"} \ ${optionalString (cfg.configFile != null) "--config-file ${cfg.configFile}"} \ --dbus-enable ''; }; }; }; }