about summary refs log tree commit diff
path: root/pkgs/kde/plasma/breeze-plymouth/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/kde/plasma/breeze-plymouth/default.nix')
-rw-r--r--pkgs/kde/plasma/breeze-plymouth/default.nix52
1 files changed, 52 insertions, 0 deletions
diff --git a/pkgs/kde/plasma/breeze-plymouth/default.nix b/pkgs/kde/plasma/breeze-plymouth/default.nix
new file mode 100644
index 000000000000..7551eca94e3a
--- /dev/null
+++ b/pkgs/kde/plasma/breeze-plymouth/default.nix
@@ -0,0 +1,52 @@
+{
+  lib,
+  mkKdeDerivation,
+  pkg-config,
+  plymouth,
+  imagemagick,
+  netpbm,
+  perl,
+  logoName ? null,
+  logoFile ? null,
+  osName ? null,
+  osVersion ? null,
+  topColor ? "black",
+  bottomColor ? "black",
+}: let
+  validColors = ["black" "cardboard_grey" "charcoal_grey" "icon_blue" "paper_white" "plasma_blue" "neon_blue" "neon_green"];
+  resolvedLogoName =
+    if (logoFile != null && logoName == null)
+    then lib.strings.removeSuffix ".png" (baseNameOf (toString logoFile))
+    else logoName;
+in
+  assert lib.asserts.assertOneOf "topColor" topColor validColors;
+  assert lib.asserts.assertOneOf "bottomColor" bottomColor validColors;
+    mkKdeDerivation {
+      pname = "breeze-plymouth";
+
+      # FIXME(later): discuss with upstream
+      patches = [./install-paths.patch];
+
+      extraNativeBuildInputs = [pkg-config] ++ lib.optionals (logoFile != null) [imagemagick netpbm perl];
+      extraBuildInputs = [plymouth];
+
+      extraCmakeFlags =
+        []
+        ++ lib.optional (osName != null) "-DDISTRO_NAME=${osName}"
+        ++ lib.optional (osVersion != null) "-DDISTRO_VERSION=${osVersion}"
+        ++ lib.optional (logoName != null) "-DDISTRO_LOGO=${logoName}"
+        ++ lib.optional (topColor != null) "-DBACKGROUND_TOP_COLOR=${topColor}"
+        ++ lib.optional (bottomColor != null) "-DBACKGROUND_BOTTOM_COLOR=${bottomColor}";
+
+      postPatch =
+        ''
+          substituteInPlace cmake/FindPlymouth.cmake --subst-var out
+        ''
+        + lib.optionalString (logoFile != null) ''
+          cp ${logoFile} breeze/images/${resolvedLogoName}.logo.png
+
+          # conversion for 16bit taken from the breeze-plymouth readme
+          convert ${logoFile} -alpha Background -background "#000000" -fill "#000000" -flatten tmp.png
+          pngtopnm tmp.png | pnmquant 16 | pnmtopng > breeze/images/16bit/${resolvedLogoName}.logo.png
+        '';
+    }