lol

nixos/tlp: expose package (#375413)

authored by

Christian Kögler and committed by
GitHub
95c58aeb 867e2cac

+11 -5
+11 -5
nixos/modules/services/hardware/tlp.nix
··· 2 2 let 3 3 cfg = config.services.tlp; 4 4 enableRDW = config.networking.networkmanager.enable; 5 - tlp = pkgs.tlp.override { inherit enableRDW; }; 6 5 # TODO: Use this for having proper parameters in the future 7 6 mkTlpConfig = tlpConfig: lib.generators.toKeyValue { 8 7 mkKeyValue = lib.generators.mkKeyValueDefault { ··· 40 39 Verbatim additional configuration variables for TLP. 41 40 DEPRECATED: use services.tlp.settings instead. 42 41 ''; 42 + }; 43 + 44 + package = lib.mkOption { 45 + type = lib.types.package; 46 + default = pkgs.tlp.override { inherit enableRDW; }; 47 + defaultText = "pkgs.tlp.override { enableRDW = config.networking.networkmanager.enable; }"; 48 + description = "The tlp package to use."; 43 49 }; 44 50 }; 45 51 }; ··· 64 70 "tlp.conf".text = (mkTlpConfig cfg.settings) + cfg.extraConfig; 65 71 } // lib.optionalAttrs enableRDW { 66 72 "NetworkManager/dispatcher.d/99tlp-rdw-nm".source = 67 - "${tlp}/usr/lib/NetworkManager/dispatcher.d/99tlp-rdw-nm"; 73 + "${cfg.package}/usr/lib/NetworkManager/dispatcher.d/99tlp-rdw-nm"; 68 74 }; 69 75 70 - environment.systemPackages = [ tlp ]; 76 + environment.systemPackages = [ cfg.package ]; 71 77 72 78 73 79 services.tlp.settings = let ··· 82 88 CPU_SCALING_MAX_FREQ_ON_BAT = maybeDefault cfg.cpufreq.max; 83 89 }; 84 90 85 - services.udev.packages = [ tlp ]; 91 + services.udev.packages = [ cfg.package ]; 86 92 87 93 systemd = { 88 94 # use native tlp instead because it can also differentiate between AC/BAT 89 95 services.cpufreq.enable = false; 90 96 91 - packages = [ tlp ]; 97 + packages = [ cfg.package ]; 92 98 # XXX: These must always be disabled/masked according to [1]. 93 99 # 94 100 # [1]: https://github.com/linrunner/TLP/blob/a9ada09e0821f275ce5f93dc80a4d81a7ff62ae4/tlp-stat.in#L319