summary refs log tree commit diff
path: root/nixos/modules/services
diff options
context:
space:
mode:
authorDomen Kožar <domen@dev.si>2013-10-22 01:33:08 -0700
committerDomen Kožar <domen@dev.si>2013-10-22 01:33:08 -0700
commit897329fc479c4a7d33cdb09fc504541a3020a4df (patch)
tree03cbb337ff996747dcc3d937a2302b85c0acac8e /nixos/modules/services
parent351c9e310d04e38ae87e0e37ab82de61b319d043 (diff)
parentd7925448022bc1e84e0003953eae57f5f05ab8b8 (diff)
downloadnixlib-897329fc479c4a7d33cdb09fc504541a3020a4df.tar
nixlib-897329fc479c4a7d33cdb09fc504541a3020a4df.tar.gz
nixlib-897329fc479c4a7d33cdb09fc504541a3020a4df.tar.bz2
nixlib-897329fc479c4a7d33cdb09fc504541a3020a4df.tar.lz
nixlib-897329fc479c4a7d33cdb09fc504541a3020a4df.tar.xz
nixlib-897329fc479c4a7d33cdb09fc504541a3020a4df.tar.zst
nixlib-897329fc479c4a7d33cdb09fc504541a3020a4df.zip
Merge pull request #1106 from ocharles/redshift
services.redshift: New service
Diffstat (limited to 'nixos/modules/services')
-rw-r--r--nixos/modules/services/x11/redshift.nix51
1 files changed, 51 insertions, 0 deletions
diff --git a/nixos/modules/services/x11/redshift.nix b/nixos/modules/services/x11/redshift.nix
new file mode 100644
index 000000000000..bf7f974edc7b
--- /dev/null
+++ b/nixos/modules/services/x11/redshift.nix
@@ -0,0 +1,51 @@
+{ config, pkgs, ... }:
+with pkgs.lib;
+let
+  cfg = config.services.redshift;
+
+in {
+  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";
+    };
+
+    services.redshift.latitude = mkOption {
+      description = "Your current latitude";
+      type = types.string;
+    };
+
+    services.redshift.longitude = mkOption {
+      description = "Your current longitude";
+      type = types.string;
+    };
+
+    services.redshift.temperature = {
+      day = mkOption {
+        description = "Colour temperature to use during day time";
+        default = 5500;
+        type = types.int;
+      };
+      night = mkOption {
+        description = "Colour temperature to use during night time";
+        default = 3700;
+        type = types.int;
+      };
+    };
+  };
+
+  config = mkIf cfg.enable {
+    systemd.services.redshift = {
+      description = "Redshift colour temperature adjuster";
+      requires = [ "display-manager.service" ];
+      script = ''
+        ${pkgs.redshift}/bin/redshift \
+          -l ${cfg.latitude}:${cfg.longitude} \
+          -t ${toString cfg.temperature.day}:${toString cfg.temperature.night}
+      '';
+      environment = { DISPLAY = ":0"; };
+    };
+  };
+}