aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/pkgs/applications/misc/redshift/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/applications/misc/redshift/default.nix')
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/redshift/default.nix147
1 files changed, 147 insertions, 0 deletions
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/redshift/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/redshift/default.nix
new file mode 100644
index 000000000000..a450b2e3eb77
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/redshift/default.nix
@@ -0,0 +1,147 @@
+{ stdenv, fetchFromGitHub, fetchFromGitLab
+, autoconf, automake, gettext, intltool
+, libtool, pkgconfig, wrapGAppsHook, wrapPython, gobject-introspection
+, gtk3, python, pygobject3, pyxdg
+
+, withQuartz ? stdenv.isDarwin, ApplicationServices
+, withRandr ? stdenv.isLinux, libxcb
+, withDrm ? stdenv.isLinux, libdrm
+
+, withGeolocation ? true
+, withCoreLocation ? withGeolocation && stdenv.isDarwin, CoreLocation, Foundation, Cocoa
+, withGeoclue ? withGeolocation && stdenv.isLinux, geoclue
+, withAppIndicator ? true, libappindicator
+}:
+
+let
+ mkRedshift =
+ { pname, version, src, meta }:
+ stdenv.mkDerivation rec {
+ inherit pname version src meta;
+
+ patches = stdenv.lib.optionals (pname != "gammastep") [
+ # https://github.com/jonls/redshift/pull/575
+ ./575.patch
+ ];
+
+ nativeBuildInputs = [
+ autoconf
+ automake
+ gettext
+ intltool
+ libtool
+ pkgconfig
+ wrapGAppsHook
+ wrapPython
+ ];
+
+ configureFlags = [
+ "--enable-randr=${if withRandr then "yes" else "no"}"
+ "--enable-geoclue2=${if withGeoclue then "yes" else "no"}"
+ "--enable-drm=${if withDrm then "yes" else "no"}"
+ "--enable-quartz=${if withQuartz then "yes" else "no"}"
+ "--enable-corelocation=${if withCoreLocation then "yes" else "no"}"
+ ];
+
+ buildInputs = [
+ gobject-introspection
+ gtk3
+ python
+ ] ++ stdenv.lib.optional withRandr libxcb
+ ++ stdenv.lib.optional withGeoclue geoclue
+ ++ stdenv.lib.optional withDrm libdrm
+ ++ stdenv.lib.optional withQuartz ApplicationServices
+ ++ stdenv.lib.optionals withCoreLocation [ CoreLocation Foundation Cocoa ]
+ ++ stdenv.lib.optional withAppIndicator libappindicator
+ ;
+
+ pythonPath = [ pygobject3 pyxdg ];
+
+ preConfigure = "./bootstrap";
+
+ postFixup = "wrapPythonPrograms";
+
+ # the geoclue agent may inspect these paths and expect them to be
+ # valid without having the correct $PATH set
+ postInstall = if (pname == "gammastep") then ''
+ substituteInPlace $out/share/applications/gammastep.desktop \
+ --replace 'Exec=gammastep' "Exec=$out/bin/gammastep"
+ substituteInPlace $out/share/applications/gammastep-indicator.desktop \
+ --replace 'Exec=gammastep-indicator' "Exec=$out/bin/gammastep-indicator"
+ '' else ''
+ substituteInPlace $out/share/applications/redshift.desktop \
+ --replace 'Exec=redshift' "Exec=$out/bin/redshift"
+ substituteInPlace $out/share/applications/redshift-gtk.desktop \
+ --replace 'Exec=redshift-gtk' "Exec=$out/bin/redshift-gtk"
+ '';
+
+ enableParallelBuilding = true;
+ };
+in
+rec {
+ redshift = mkRedshift rec {
+ pname = "redshift";
+ version = "1.12";
+
+ src = fetchFromGitHub {
+ owner = "jonls";
+ repo = "redshift";
+ rev = "v${version}";
+ sha256 = "12cb4gaqkybp4bkkns8pam378izr2mwhr2iy04wkprs2v92j7bz6";
+ };
+
+ meta = with stdenv.lib; {
+ description = "Screen color temperature manager";
+ longDescription = ''
+ Redshift adjusts the color temperature according to the position
+ of the sun. A different color temperature is set during night and
+ daytime. During twilight and early morning, the color temperature
+ transitions smoothly from night to daytime temperature to allow
+ your eyes to slowly adapt. At night the color temperature should
+ be set to match the lamps in your room.
+ '';
+ license = licenses.gpl3Plus;
+ homepage = "http://jonls.dk/redshift";
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ yegortimoshenko globin ];
+ };
+ };
+
+ redshift-wlr = mkRedshift {
+ pname = "redshift-wlr";
+ # upstream rebases so this is the push date
+ version = "2019-08-24";
+
+ src = fetchFromGitHub {
+ owner = "minus7";
+ repo = "redshift";
+ rev = "7da875d34854a6a34612d5ce4bd8718c32bec804";
+ sha256 = "0rs9bxxrw4wscf4a8yl776a8g880m5gcm75q06yx2cn3lw2b7v22";
+ };
+
+ meta = redshift.meta // {
+ description = redshift.meta.description + "(with wlroots patches)";
+ homepage = "https://github.com/minus7/redshift";
+ };
+ };
+
+ gammastep = mkRedshift rec {
+ pname = "gammastep";
+ version = "2.0.5";
+
+ src = fetchFromGitLab {
+ owner = "chinstrap";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1l3x4gnichwzbb0529bhm723xpryn5svhhsfdiwlw122q1vmz2q7";
+ };
+
+ meta = redshift.meta // {
+ name = "${pname}-${version}";
+ longDescription = "Gammastep"
+ + stdenv.lib.removePrefix "Redshift" redshift.meta.longDescription;
+ homepage = "https://gitlab.com/chinstrap/gammastep";
+ maintainers = [ stdenv.lib.maintainers.primeos ] ++ redshift.meta.maintainers;
+ };
+ };
+}