From 001b42db7f18f62cf8853586c1114d66b3889708 Mon Sep 17 00:00:00 2001 From: "Mathieu A.-Tetreault" Date: Fri, 20 Sep 2019 12:00:24 -0400 Subject: breeze-plymouth: allow usage of custom logo --- pkgs/desktops/plasma-5/breeze-plymouth/default.nix | 43 ++++++++++++---------- 1 file changed, 24 insertions(+), 19 deletions(-) (limited to 'pkgs/desktops/plasma-5') diff --git a/pkgs/desktops/plasma-5/breeze-plymouth/default.nix b/pkgs/desktops/plasma-5/breeze-plymouth/default.nix index 48b038325fec..5b6abddbcda3 100644 --- a/pkgs/desktops/plasma-5/breeze-plymouth/default.nix +++ b/pkgs/desktops/plasma-5/breeze-plymouth/default.nix @@ -8,37 +8,42 @@ imagemagick, netpbm, perl, - # these will typically need to be set via an override - # in a NixOS context - nixosBranding ? false, - nixosName ? "NixOS", - nixosVersion ? "", + logoName ? null, + logoFile ? null, + osName ? null, + osVersion ? null, topColor ? "black", bottomColor ? "black" }: -let - logoName = "nixos"; +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; + + mkDerivation { name = "breeze-plymouth"; nativeBuildInputs = [ extra-cmake-modules ]; - buildInputs = [ plymouth ] ++ lib.optionals nixosBranding [ imagemagick netpbm perl ]; + buildInputs = [ plymouth ] ++ lib.optionals (logoFile != null) [ imagemagick netpbm perl ]; patches = copyPathsToStore (lib.readPathsFromFile ./. ./series); - cmakeFlags = lib.optionals nixosBranding [ - "-DDISTRO_NAME=${nixosName}" - "-DDISTRO_VERSION=${nixosVersion}" - "-DDISTRO_LOGO=${logoName}" - "-DBACKGROUND_TOP_COLOR=${topColor}" - "-DBACKGROUND_BOTTOM_COLOR=${bottomColor}" - ]; + cmakeFlags = [] + ++ 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 nixosBranding '' - cp ${nixos-icons}/share/icons/hicolor/128x128/apps/nix-snowflake.png breeze/images/${logoName}.logo.png + '' + lib.optionalString (logoFile != null) '' + cp ${logoFile} breeze/images/${resolvedLogoName}.logo.png # conversion for 16bit taken from the breeze-plymouth readme - convert ${nixos-icons}/share/icons/hicolor/128x128/apps/nix-snowflake.png -alpha Background -background "#000000" -fill "#000000" -flatten tmp.png - pngtopnm tmp.png | pnmquant 16 | pnmtopng > breeze/images/16bit/${logoName}.logo.png + convert ${logoFile} -alpha Background -background "#000000" -fill "#000000" -flatten tmp.png + pngtopnm tmp.png | pnmquant 16 | pnmtopng > breeze/images/16bit/${resolvedLogoName}.logo.png ''; } -- cgit 1.4.1