at master 998 B view raw
1{ 2 config, 3 lib, 4 pkgs, 5 ... 6}: 7 8let 9 cfg = config.programs.corefreq; 10 kernelPackages = config.boot.kernelPackages; 11in 12{ 13 options = { 14 programs.corefreq = { 15 enable = lib.mkEnableOption "Whether to enable the corefreq daemon and kernel module"; 16 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 }; 27 28 config = lib.mkIf cfg.enable { 29 environment.systemPackages = [ cfg.package ]; 30 boot.extraModulePackages = [ cfg.package ]; 31 boot.kernelModules = [ "corefreqk" ]; 32 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 }; 42}