2021-01-11 07:54:33 +00:00
|
|
|
{ lib, stdenv, fetchFromGitHub, fetchFromGitLab
|
2020-08-02 17:53:33 +00:00
|
|
|
, autoconf, automake, gettext, intltool
|
2024-04-26 20:24:03 +00:00
|
|
|
, libtool, pkg-config, wrapGAppsHook3, wrapPython, gobject-introspection
|
2019-09-12 14:25:05 +00:00
|
|
|
, gtk3, python, pygobject3, pyxdg
|
2018-05-16 04:43:30 +00:00
|
|
|
|
|
|
|
, withQuartz ? stdenv.isDarwin, ApplicationServices
|
|
|
|
, withRandr ? stdenv.isLinux, libxcb
|
|
|
|
, withDrm ? stdenv.isLinux, libdrm
|
2018-11-18 07:48:01 +00:00
|
|
|
|
|
|
|
, withGeolocation ? true
|
|
|
|
, withCoreLocation ? withGeolocation && stdenv.isDarwin, CoreLocation, Foundation, Cocoa
|
|
|
|
, withGeoclue ? withGeolocation && stdenv.isLinux, geoclue
|
2021-01-03 06:34:34 +00:00
|
|
|
, withAppIndicator ? stdenv.isLinux, libappindicator, libayatana-appindicator
|
2018-11-18 07:48:01 +00:00
|
|
|
}:
|
2011-01-24 23:52:22 +00:00
|
|
|
|
2019-09-07 17:45:28 +00:00
|
|
|
let
|
|
|
|
mkRedshift =
|
|
|
|
{ pname, version, src, meta }:
|
|
|
|
stdenv.mkDerivation rec {
|
|
|
|
inherit pname version src meta;
|
|
|
|
|
2021-01-15 05:42:41 +00:00
|
|
|
patches = lib.optionals (pname != "gammastep") [
|
2019-09-07 17:45:28 +00:00
|
|
|
# https://github.com/jonls/redshift/pull/575
|
|
|
|
./575.patch
|
|
|
|
];
|
|
|
|
|
2024-01-13 11:52:05 +00:00
|
|
|
strictDeps = true;
|
|
|
|
|
2019-09-07 17:45:28 +00:00
|
|
|
nativeBuildInputs = [
|
|
|
|
autoconf
|
|
|
|
automake
|
|
|
|
gettext
|
|
|
|
intltool
|
|
|
|
libtool
|
2021-01-17 02:09:27 +00:00
|
|
|
pkg-config
|
2024-04-26 20:24:03 +00:00
|
|
|
wrapGAppsHook3
|
2019-09-07 17:45:28 +00:00
|
|
|
wrapPython
|
2023-06-22 11:49:31 +00:00
|
|
|
gobject-introspection
|
2024-01-13 11:52:05 +00:00
|
|
|
python
|
2019-09-07 17:45:28 +00:00
|
|
|
];
|
|
|
|
|
|
|
|
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"}"
|
2021-01-15 05:42:41 +00:00
|
|
|
] ++ lib.optionals (pname == "gammastep") [
|
2023-10-23 06:04:11 +00:00
|
|
|
"--with-systemduserunitdir=${placeholder "out"}/lib/systemd/user/"
|
2020-12-14 15:03:05 +00:00
|
|
|
"--enable-apparmor"
|
2019-09-07 17:45:28 +00:00
|
|
|
];
|
|
|
|
|
|
|
|
buildInputs = [
|
|
|
|
gtk3
|
2021-01-15 05:42:41 +00:00
|
|
|
] ++ lib.optional withRandr libxcb
|
|
|
|
++ lib.optional withGeoclue geoclue
|
|
|
|
++ lib.optional withDrm libdrm
|
|
|
|
++ lib.optional withQuartz ApplicationServices
|
|
|
|
++ lib.optionals withCoreLocation [ CoreLocation Foundation Cocoa ]
|
|
|
|
++ lib.optional withAppIndicator (if (pname != "gammastep")
|
2020-12-14 15:03:05 +00:00
|
|
|
then libappindicator
|
|
|
|
else libayatana-appindicator)
|
2019-09-07 17:45:28 +00:00
|
|
|
;
|
|
|
|
|
|
|
|
pythonPath = [ pygobject3 pyxdg ];
|
|
|
|
|
|
|
|
preConfigure = "./bootstrap";
|
|
|
|
|
2021-12-25 20:42:03 +00:00
|
|
|
dontWrapGApps = true;
|
|
|
|
|
|
|
|
preFixup = ''
|
|
|
|
makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
|
|
|
|
'';
|
|
|
|
|
|
|
|
postFixup = ''
|
|
|
|
wrapPythonPrograms
|
|
|
|
wrapGApp $out/bin/${pname}
|
|
|
|
'';
|
2019-09-07 17:45:28 +00:00
|
|
|
|
|
|
|
# the geoclue agent may inspect these paths and expect them to be
|
|
|
|
# valid without having the correct $PATH set
|
2020-08-02 17:53:33 +00:00
|
|
|
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 ''
|
2019-09-07 17:45:28 +00:00
|
|
|
substituteInPlace $out/share/applications/redshift.desktop \
|
|
|
|
--replace 'Exec=redshift' "Exec=$out/bin/redshift"
|
2020-08-06 09:57:07 +00:00
|
|
|
substituteInPlace $out/share/applications/redshift-gtk.desktop \
|
2019-09-07 17:45:28 +00:00
|
|
|
--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";
|
|
|
|
};
|
|
|
|
|
2021-01-11 07:54:33 +00:00
|
|
|
meta = with lib; {
|
2019-09-07 17:45:28 +00:00
|
|
|
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;
|
2020-04-01 01:11:51 +00:00
|
|
|
homepage = "http://jonls.dk/redshift";
|
2019-09-07 17:45:28 +00:00
|
|
|
platforms = platforms.unix;
|
2023-10-23 06:04:38 +00:00
|
|
|
mainProgram = "redshift";
|
2023-10-24 11:09:45 +00:00
|
|
|
maintainers = with maintainers; [ yana ];
|
2019-09-07 17:45:28 +00:00
|
|
|
};
|
2011-01-24 23:52:22 +00:00
|
|
|
};
|
|
|
|
|
2020-08-02 17:53:33 +00:00
|
|
|
gammastep = mkRedshift rec {
|
|
|
|
pname = "gammastep";
|
2022-09-19 08:21:24 +00:00
|
|
|
version = "2.0.9";
|
2020-08-02 17:53:33 +00:00
|
|
|
|
|
|
|
src = fetchFromGitLab {
|
|
|
|
owner = "chinstrap";
|
|
|
|
repo = pname;
|
|
|
|
rev = "v${version}";
|
2022-09-19 08:21:24 +00:00
|
|
|
sha256 = "sha256-EdVLBBIEjMu+yy9rmcxQf4zdW47spUz5SbBDbhmLjOU=";
|
2020-08-02 17:53:33 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
meta = redshift.meta // {
|
|
|
|
name = "${pname}-${version}";
|
|
|
|
longDescription = "Gammastep"
|
2021-01-15 05:42:41 +00:00
|
|
|
+ lib.removePrefix "Redshift" redshift.meta.longDescription;
|
2020-08-02 17:53:33 +00:00
|
|
|
homepage = "https://gitlab.com/chinstrap/gammastep";
|
2023-10-23 06:05:07 +00:00
|
|
|
mainProgram = "gammastep";
|
2023-10-24 00:19:43 +00:00
|
|
|
maintainers = (with lib.maintainers; [ eclairevoyant primeos ]) ++ redshift.meta.maintainers;
|
2020-08-02 17:53:33 +00:00
|
|
|
};
|
|
|
|
};
|
2013-06-07 00:13:54 +00:00
|
|
|
}
|