summary refs log tree commit diff
path: root/nixos/modules/services/x11/redshift.nix
diff options
context:
space:
mode:
authorTobias Geerinckx-Rice <tobias.geerinckx.rice@gmail.com>2015-09-06 03:57:00 +0200
committerTobias Geerinckx-Rice <tobias.geerinckx.rice@gmail.com>2015-09-06 23:50:02 +0200
commit24048fa226f3b91a2b8b23ef671589c39881ccac (patch)
tree3253de3e323f48bebd26cbdda110e4e3c16caa1a /nixos/modules/services/x11/redshift.nix
parentfa3d7ea77ba1b4dca52b97dfe90755ce7e6edc80 (diff)
downloadnixlib-24048fa226f3b91a2b8b23ef671589c39881ccac.tar
nixlib-24048fa226f3b91a2b8b23ef671589c39881ccac.tar.gz
nixlib-24048fa226f3b91a2b8b23ef671589c39881ccac.tar.bz2
nixlib-24048fa226f3b91a2b8b23ef671589c39881ccac.tar.lz
nixlib-24048fa226f3b91a2b8b23ef671589c39881ccac.tar.xz
nixlib-24048fa226f3b91a2b8b23ef671589c39881ccac.tar.zst
nixlib-24048fa226f3b91a2b8b23ef671589c39881ccac.zip
nixos: redshift module: add `package` option
...and make code more consistent.
Diffstat (limited to 'nixos/modules/services/x11/redshift.nix')
-rw-r--r--nixos/modules/services/x11/redshift.nix73
1 files changed, 53 insertions, 20 deletions
diff --git a/nixos/modules/services/x11/redshift.nix b/nixos/modules/services/x11/redshift.nix
index 4f39e05f0f8d..ffae22d2d670 100644
--- a/nixos/modules/services/x11/redshift.nix
+++ b/nixos/modules/services/x11/redshift.nix
@@ -1,58 +1,90 @@
 { config, lib, pkgs, ... }:
+
 with lib;
+
 let
+
   cfg = config.services.redshift;
 
 in {
-  options = {
-    services.redshift.enable = mkOption {
+
+  options.services.redshift = {
+    enable = mkOption {
       type = types.bool;
       default = false;
       example = true;
-      description = "Enable Redshift to change your screen's colour temperature depending on the time of day";
+      description = ''
+        Enable Redshift to change your screen's colour temperature depending on
+        the time of day.
+      '';
     };
 
-    services.redshift.latitude = mkOption {
-      description = "Your current latitude";
+    latitude = mkOption {
       type = types.str;
+      description = ''
+        Your current latitude.
+      '';
     };
 
-    services.redshift.longitude = mkOption {
-      description = "Your current longitude";
+    longitude = mkOption {
       type = types.str;
+      description = ''
+        Your current longitude.
+      '';
     };
 
-    services.redshift.temperature = {
+    temperature = {
       day = mkOption {
-        description = "Colour temperature to use during day time";
-        default = 5500;
         type = types.int;
+        default = 5500;
+        description = ''
+          Colour temperature to use during the day.
+        '';
       };
       night = mkOption {
-        description = "Colour temperature to use during night time";
-        default = 3700;
         type = types.int;
+        default = 3700;
+        description = ''
+          Colour temperature to use at night.
+        '';
       };
     };
 
-    services.redshift.brightness = {
+    brightness = {
       day = mkOption {
-        description = "Screen brightness to apply during the day (between 0.1 and 1.0)";
-        default = "1";
         type = types.str;
+        default = "1";
+        description = ''
+          Screen brightness to apply during the day,
+          between <literal>0.1</literal> and <literal>1.0</literal>.
+        '';
       };
       night = mkOption {
-        description = "Screen brightness to apply during the night (between 0.1 and 1.0)";
-        default = "1";
         type = types.str;
+        default = "1";
+        description = ''
+          Screen brightness to apply during the night,
+          between <literal>0.1</literal> and <literal>1.0</literal>.
+        '';
       };
     };
 
-    services.redshift.extraOptions = mkOption {
+    package = mkOption {
+      type = types.package;
+      default = pkgs.redshift;
+      description = ''
+        redshift derivation to use.
+      '';
+    };
+
+    extraOptions = mkOption {
       type = types.listOf types.str;
       default = [];
       example = [ "-v" "-m randr" ];
-      description = "Additional command-line arguments to pass to the redshift(1) command";
+      description = ''
+        Additional command-line arguments to pass to
+        <command>redshift</command>.
+      '';
     };
   };
 
@@ -63,7 +95,7 @@ in {
       after = [ "display-manager.service" ];
       wantedBy = [ "graphical.target" ];
       serviceConfig.ExecStart = ''
-        ${pkgs.redshift}/bin/redshift \
+        ${cfg.package}/bin/redshift \
           -l ${cfg.latitude}:${cfg.longitude} \
           -t ${toString cfg.temperature.day}:${toString cfg.temperature.night} \
           -b ${toString cfg.brightness.day}:${toString cfg.brightness.night} \
@@ -73,4 +105,5 @@ in {
       serviceConfig.Restart = "always";
     };
   };
+
 }