From deab2b3bf768fc6158142e4d59e20ef016197438 Mon Sep 17 00:00:00 2001 From: nicoo Date: Tue, 28 Mar 2023 19:09:54 +0000 Subject: [PATCH] nixos/auto-cpufreq: Add configuration support. --- .../modules/services/hardware/auto-cpufreq.nix | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/nixos/modules/services/hardware/auto-cpufreq.nix b/nixos/modules/services/hardware/auto-cpufreq.nix index 9698e72eb31e..5a8b7c8e43c5 100644 --- a/nixos/modules/services/hardware/auto-cpufreq.nix +++ b/nixos/modules/services/hardware/auto-cpufreq.nix @@ -2,21 +2,39 @@ with lib; let cfg = config.services.auto-cpufreq; + cfgFilename = "auto-cpufreq.conf"; + cfgFile = format.generate cfgFilename cfg.settings; + + format = pkgs.formats.ini {}; in { options = { services.auto-cpufreq = { enable = mkEnableOption (lib.mdDoc "auto-cpufreq daemon"); + + settings = mkOption { + description = lib.mdDoc '' + Configuration for `auto-cpufreq`. + + See its [example configuration file] for supported settings. + [example configuration file]: https://github.com/AdnanHodzic/auto-cpufreq/blob/master/auto-cpufreq.conf-example + ''; + + default = {}; + type = types.submodule { freeformType = format.type; }; + }; }; }; config = mkIf cfg.enable { environment.systemPackages = [ pkgs.auto-cpufreq ]; + environment.etc.${cfgFilename}.source = cfgFile; systemd = { packages = [ pkgs.auto-cpufreq ]; services.auto-cpufreq = { # Workaround for https://github.com/NixOS/nixpkgs/issues/81138 wantedBy = [ "multi-user.target" ]; + restartTriggers = [ cfgFile ]; path = with pkgs; [ bash coreutils ]; }; };