diff --git a/pkgs/tools/X11/sct/default.nix b/pkgs/tools/X11/sct/default.nix
new file mode 100644
index 00000000000..4bf62e53f55
--- /dev/null
+++ b/pkgs/tools/X11/sct/default.nix
@@ -0,0 +1,23 @@
+{stdenv, fetchurl, libX11, libXrandr}:
+stdenv.mkDerivation rec {
+  name = "sct";
+  buildInputs = [libX11 libXrandr];
+  src = fetchurl {
+    url = http://www.tedunangst.com/flak/files/sct.c;
+    sha256 = "1bivy0sl5v1jsq4jbq6p9hplz6cvw4nx9rc96p2kxsg506rqllc5";
+  };
+  phases = ["patchPhase" "buildPhase" "installPhase"];
+  patchPhase = ''
+    sed -re "/Xlibint/d" ${src} > sct.c 
+  '';
+  buildPhase = "gcc -std=c99 sct.c -o sct -lX11 -lXrandr -lm";
+  installPhase = ''
+    mkdir -p "$out/bin"
+    cp sct "$out/bin"
+  '';
+  meta = {
+    description = ''A minimal utility to set display colour temperature'';
+    maintainers = [stdenv.lib.maintainers.raskin];
+    platforms = with stdenv.lib.platforms; linux ++ freebsd ++ openbsd;
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index b217170baab..f88db9101d4 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -15245,6 +15245,8 @@ let
 
   saneFrontends = callPackage ../applications/graphics/sane/frontends.nix { };
 
+  sct = callPackage ../tools/X11/sct {};
+
   seafile-shared = callPackage ../misc/seafile-shared { };
 
   slock = callPackage ../misc/screensavers/slock { };