vuls: init at 0.27.0
[NixPkgs.git] / nixos / modules / services / hardware / thermald.nix
blobd7f706f1ef0529c99579de1dac50fbd0fff3eedc
1 { config, lib, pkgs, ... }:
2 let
3   cfg = config.services.thermald;
4 in
6   ###### interface
7   options = {
8     services.thermald = {
9       enable = lib.mkEnableOption "thermald, the temperature management daemon";
11       debug = lib.mkOption {
12         type = lib.types.bool;
13         default = false;
14         description = ''
15           Whether to enable debug logging.
16         '';
17       };
19      ignoreCpuidCheck = lib.mkOption {
20         type = lib.types.bool;
21         default = false;
22         description = "Whether to ignore the cpuid check to allow running on unsupported platforms";
23       };
25       configFile = lib.mkOption {
26         type = lib.types.nullOr lib.types.path;
27         default = null;
28         description = ''
29           The thermald manual configuration file.
31           Leave unspecified to run with the `--adaptive` flag instead which will have thermald use your computer's DPTF adaptive tables.
33           See `man thermald` for more information.
34         '';
35       };
37       package = lib.mkPackageOption pkgs "thermald" { };
38     };
39   };
41   ###### implementation
42   config = lib.mkIf cfg.enable {
43     services.dbus.packages = [ cfg.package ];
45     systemd.services.thermald = {
46       description = "Thermal Daemon Service";
47       wantedBy = [ "multi-user.target" ];
48       serviceConfig = {
49         PrivateNetwork = true;
50         ExecStart = ''
51           ${cfg.package}/sbin/thermald \
52             --no-daemon \
53             ${lib.optionalString cfg.debug "--loglevel=debug"} \
54             ${lib.optionalString cfg.ignoreCpuidCheck "--ignore-cpuid-check"} \
55             ${if cfg.configFile != null then "--config-file ${cfg.configFile}" else "--adaptive"} \
56             --dbus-enable
57         '';
58       };
59     };
60   };