{
lib,
stdenv,
fetchFromGitLab,
autoreconfHook,
pkg-config,
parallel,
sassc,
inkscape,
libxml2,
glib,
gtk_engines,
gtk-engine-murrine,
cinnamonSupport ? true,
gnomeFlashbackSupport ? true,
gnomeShellSupport ? true,
openboxSupport ? true,
xfceSupport ? true,
mateSupport ? true,
gtk3,
marco,
gtkNextSupport ? false,
plankSupport ? false,
steamSupport ? false,
telegramSupport ? false,
zip,
tweetdeckSupport ? false,
selectionColor ? null, # Primary color for 'selected-items' (Default: #3F51B5 = Indigo500)
accentColor ? null, # Secondary color for notifications and OSDs (Default: #7986CB = Indigo300)
suggestionColor ? null, # Secondary color for 'suggested' buttons (Default: #673AB7 = DPurple500)
destructionColor ? null, # Tertiary color for 'destructive' buttons (Default: #F44336 = Red500)
}:
stdenv.mkDerivation rec {
pname = "plata-theme";
version = "0.9.9";
src = fetchFromGitLab {
owner = "tista500";
repo = "plata-theme";
rev = version;
sha256 = "1iwvlv9qcrjyfbzab00vjqafmp3vdybz1hi02r6lwbgvwyfyrifk";
};
nativeBuildInputs =
[
autoreconfHook
pkg-config
parallel
sassc
inkscape
libxml2
glib
]
++ lib.optionals mateSupport [
gtk3
marco
++ lib.optional telegramSupport zip;
buildInputs = [ gtk_engines ];
propagatedUserEnvPkgs = [
gtk-engine-murrine
];
postPatch = "patchShebangs .";
configureFlags =
let
inherit (lib) enableFeature optional;
withOptional = value: feat: optional (value != null) "--with-${feat}=${value}";
in
"--enable-parallel"
(enableFeature cinnamonSupport "cinnamon")
(enableFeature gnomeFlashbackSupport "flashback")
(enableFeature gnomeShellSupport "gnome")
(enableFeature openboxSupport "openbox")
(enableFeature xfceSupport "xfce")
(enableFeature mateSupport "mate")
(enableFeature gtkNextSupport "gtk_next")
(enableFeature plankSupport "plank")
(enableFeature steamSupport "airforsteam")
(enableFeature telegramSupport "telegram")
(enableFeature tweetdeckSupport "tweetdeck")
++ (withOptional selectionColor "selection_color")
++ (withOptional accentColor "accent_color")
++ (withOptional suggestionColor "suggestion_color")
++ (withOptional destructionColor "destruction_color");
postInstall = ''
for dest in $out/share/gtksourceview-{3.0,4}/styles; do
mkdir -p $dest
cp $out/share/themes/Plata-{Noir,Lumine}/gtksourceview/*.xml $dest
done
'';
meta = with lib; {
description = "GTK theme based on Material Design Refresh";
homepage = "https://gitlab.com/tista500/plata-theme";
license = with licenses; [
gpl2
cc-by-sa-40
platforms = platforms.linux;
maintainers = [ maintainers.tadfisher ];
}