base16-schemes: unstable-2024-06-21 -> unstable-2024-11-12
[NixPkgs.git] / nixos / modules / programs / corefreq.nix
blobc656b4a13da17cdfab6aca22b504a0d95464d648
2   config,
3   lib,
4   pkgs,
5   ...
6 }:
8 let
9   cfg = config.programs.corefreq;
10   kernelPackages = config.boot.kernelPackages;
13   options = {
14     programs.corefreq = {
15       enable = lib.mkEnableOption "Whether to enable the corefreq daemon and kernel module";
17       package = lib.mkOption {
18         type = lib.types.package;
19         default = kernelPackages.corefreq;
20         defaultText = lib.literalExpression "config.boot.kernelPackages.corefreq";
21         description = ''
22           The corefreq package to use.
23         '';
24       };
25     };
26   };
28   config = lib.mkIf cfg.enable {
29     environment.systemPackages = [ cfg.package ];
30     boot.extraModulePackages = [ cfg.package ];
31     boot.kernelModules = [ "corefreqk" ];
33     # Create a systemd service for the corefreq daemon
34     systemd.services.corefreq = {
35       description = "CoreFreq daemon";
36       wantedBy = [ "multi-user.target" ];
37       serviceConfig = {
38         ExecStart = lib.getExe' cfg.package "corefreqd";
39       };
40     };
41   };