about summary refs log tree commit diff
path: root/nixos
diff options
context:
space:
mode:
authorEvils <evils.devils@protonmail.com>2021-05-07 20:02:17 +0200
committerJonathan Ringer <jonringer@users.noreply.github.com>2021-05-07 11:46:40 -0700
commit5ae90276c38faec9c1e18b5e7b71af9eebd1b2af (patch)
treeb5099e4cd1867054718c1817962aa22454aaddc2 /nixos
parent3d043c6939574cf335f4407967273b4cb9ca795f (diff)
downloadnixlib-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.nix28
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 ];
 }