summary refs log tree commit diff
diff options
context:
space:
mode:
authorOliver Charles <ollie@ocharles.org.uk>2013-10-21 17:08:42 +0100
committerOliver Charles <ollie@ocharles.org.uk>2013-10-22 09:03:06 +0100
commitd7925448022bc1e84e0003953eae57f5f05ab8b8 (patch)
treefce5f8fd7574fd08d3c22eabe111a6130f182154
parent3af6415ab89cb5465ff9fd8f801561313cb85916 (diff)
downloadnixlib-d7925448022bc1e84e0003953eae57f5f05ab8b8.tar
nixlib-d7925448022bc1e84e0003953eae57f5f05ab8b8.tar.gz
nixlib-d7925448022bc1e84e0003953eae57f5f05ab8b8.tar.bz2
nixlib-d7925448022bc1e84e0003953eae57f5f05ab8b8.tar.lz
nixlib-d7925448022bc1e84e0003953eae57f5f05ab8b8.tar.xz
nixlib-d7925448022bc1e84e0003953eae57f5f05ab8b8.tar.zst
nixlib-d7925448022bc1e84e0003953eae57f5f05ab8b8.zip
services.redshift: New service
-rw-r--r--nixos/modules/module-list.nix1
-rw-r--r--nixos/modules/services/x11/redshift.nix51
2 files changed, 52 insertions, 0 deletions
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index fff7a0cfad5c..62e5b8e49c2c 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -238,6 +238,7 @@
   ./services/x11/window-managers/twm.nix
   ./services/x11/window-managers/wmii.nix
   ./services/x11/window-managers/xmonad.nix
+  ./services/x11/redshift.nix
   ./services/x11/xfs.nix
   ./services/x11/xserver.nix
   ./system/activation/activation-script.nix
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"; };
+    };
+  };
+}