diff options
Diffstat (limited to 'pkgs/kde/plasma/breeze-plymouth/default.nix')
-rw-r--r-- | pkgs/kde/plasma/breeze-plymouth/default.nix | 52 |
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 + ''; + } |