diff options
author | Evils <evils.devils@protonmail.com> | 2021-05-07 20:02:17 +0200 |
---|---|---|
committer | Jonathan Ringer <jonringer@users.noreply.github.com> | 2021-05-07 11:46:40 -0700 |
commit | 5ae90276c38faec9c1e18b5e7b71af9eebd1b2af (patch) | |
tree | b5099e4cd1867054718c1817962aa22454aaddc2 /nixos | |
parent | 3d043c6939574cf335f4407967273b4cb9ca795f (diff) | |
download | nixlib-5ae90276c38faec9c1e18b5e7b71af9eebd1b2af.tar nixlib-5ae90276c38faec9c1e18b5e7b71af9eebd1b2af.tar.gz nixlib-5ae90276c38faec9c1e18b5e7b71af9eebd1b2af.tar.bz2 nixlib-5ae90276c38faec9c1e18b5e7b71af9eebd1b2af.tar.lz nixlib-5ae90276c38faec9c1e18b5e7b71af9eebd1b2af.tar.xz nixlib-5ae90276c38faec9c1e18b5e7b71af9eebd1b2af.tar.zst nixlib-5ae90276c38faec9c1e18b5e7b71af9eebd1b2af.zip |
nixos/fancontrol: clean up module
set a group and user for the service remove default null config it's required, now it throws an error pointing to the option set myself (module author) as maintainer
Diffstat (limited to 'nixos')
-rw-r--r-- | nixos/modules/services/hardware/fancontrol.nix | 28 |
1 files changed, 21 insertions, 7 deletions
diff --git a/nixos/modules/services/hardware/fancontrol.nix b/nixos/modules/services/hardware/fancontrol.nix index e1ce11a5aef6..3722db5bc512 100644 --- a/nixos/modules/services/hardware/fancontrol.nix +++ b/nixos/modules/services/hardware/fancontrol.nix @@ -6,21 +6,21 @@ let cfg = config.hardware.fancontrol; configFile = pkgs.writeText "fancontrol.conf" cfg.config; -in{ +in +{ options.hardware.fancontrol = { enable = mkEnableOption "software fan control (requires fancontrol.config)"; config = mkOption { - default = null; - type = types.nullOr types.lines; - description = "Fancontrol configuration file content. See <citerefentry><refentrytitle>pwmconfig</refentrytitle><manvolnum>8</manvolnum></citerefentry> from the lm_sensors package."; + type = types.lines; + description = "Required fancontrol configuration file content. See <citerefentry><refentrytitle>pwmconfig</refentrytitle><manvolnum>8</manvolnum></citerefentry> from the lm_sensors package."; example = '' # Configuration file generated by pwmconfig INTERVAL=10 DEVPATH=hwmon3=devices/virtual/thermal/thermal_zone2 hwmon4=devices/platform/f71882fg.656 DEVNAME=hwmon3=soc_dts1 hwmon4=f71869a FCTEMPS=hwmon4/device/pwm1=hwmon3/temp1_input - FCFANS= hwmon4/device/pwm1=hwmon4/device/fan1_input + FCFANS=hwmon4/device/pwm1=hwmon4/device/fan1_input MINTEMP=hwmon4/device/pwm1=35 MAXTEMP=hwmon4/device/pwm1=65 MINSTART=hwmon4/device/pwm1=150 @@ -30,16 +30,30 @@ in{ }; config = mkIf cfg.enable { + + users = { + groups.lm_sensors = {}; + + users.fancontrol = { + isSystemUser = true; + group = "lm_sensors"; + description = "fan speed controller"; + }; + }; + systemd.services.fancontrol = { - unitConfig.Documentation = "man:fancontrol(8)"; + documentation = [ "man:fancontrol(8)" ]; description = "software fan control"; wantedBy = [ "multi-user.target" ]; after = [ "lm_sensors.service" ]; serviceConfig = { - Type = "simple"; ExecStart = "${pkgs.lm_sensors}/sbin/fancontrol ${configFile}"; + Group = "lm_sensors"; + User = "fancontrol"; }; }; }; + + meta.maintainers = [ maintainers.evils ]; } |