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