summary refs log tree commit diff
diff options
context:
space:
mode:
authornicoo <nicoo@mur.at>2023-03-28 19:09:54 +0000
committernicoo <nicoo@mur.at>2023-03-28 22:01:27 +0000
commitdeab2b3bf768fc6158142e4d59e20ef016197438 (patch)
tree702d9f7987bbec7d26fb9fbd88f5146852db87ca
parent82279daf52bc1412ee58032b2318818b23f94abd (diff)
downloadnixpkgs-deab2b3bf768fc6158142e4d59e20ef016197438.tar
nixpkgs-deab2b3bf768fc6158142e4d59e20ef016197438.tar.gz
nixpkgs-deab2b3bf768fc6158142e4d59e20ef016197438.tar.bz2
nixpkgs-deab2b3bf768fc6158142e4d59e20ef016197438.tar.lz
nixpkgs-deab2b3bf768fc6158142e4d59e20ef016197438.tar.xz
nixpkgs-deab2b3bf768fc6158142e4d59e20ef016197438.tar.zst
nixpkgs-deab2b3bf768fc6158142e4d59e20ef016197438.zip
nixos/auto-cpufreq: Add configuration support.
-rw-r--r--nixos/modules/services/hardware/auto-cpufreq.nix18
1 files changed, 18 insertions, 0 deletions
diff --git a/nixos/modules/services/hardware/auto-cpufreq.nix b/nixos/modules/services/hardware/auto-cpufreq.nix
index 9698e72eb31..5a8b7c8e43c 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 ];
       };
     };