Using a Custom Plymouth Theme

Hello!

I’m currently trying to switch over from Arch and in the process I’m packaging my custom Plymouth theme as a flake. Here is my system config as well.

I’m able to pass the package just fine, the problem I’m running into is that the package is not being found by plymouth.

I.E.
The requested theme: plymouth-theme-bowlbird-logo is not provided by any packages in boot.plymouth.themePackages

I’ve tried looking into other plymouth themes to see if theres any problems with the config, and I’m sure there are (I’m very new), but I can’t find them.

Thanks for any help!

Edit:

To make it easier to see what exactly is going on:

here is the flake.nix that is doing the packaging

{
  description = "BowlBird Logo Plymouth Theme";
  
  inputs.nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";

  outputs = { self, nixpkgs, ... }: {
    defaultPackage.x86_64-linux = 
    with import nixpkgs { system = "x86_64-linux"; };
    stdenv.mkDerivation {
      pname = "plymouth-theme-bowlbird-logo";
      version = "1.0.0";
      src = ./bowlbird-logo;
      dontBuild = true;
      installPhase = ''
        mkdir -p $out/share/plymouth/themes/bowlbird-logo
        cp * $out/share/plymouth/themes/bowlbird-logo
        find $out/share/plymouth/themes/ -name \*.plymouth -exec sed -i "s@\/usr\/@$out\/@" {} \;
      '';
    };
  };
}

here is the input definition:

...
    plymouth-theme-bowlbird-logo.url = "github:bowlbird/plymouth-theme-bowlbird-logo";
};
	outputs = { self, nixpkgs, home-manager, plymouth-theme-bowlbird-logo, ... } @ inputs: 
...

and here is the usage:

boot = {
    consoleLogLevel = 0;
    initrd.verbose = false;
    
    plymouth = {
      enable = true;
      theme = "plymouth-theme-bowlbird-logo";
      themePackages =  [
        inputs.plymouth-theme-bowlbird-logo	
      ];
    };
...

Maybe these links are useful.

It looks like my config is roughly similar to yours minus the fact they’re in separate files.

It makes me wonder if maybe the issue is flake specific? I notice you only have default.nix, while I’m doing everything in flake.nix

I found the solution.

In my config (not the plymouth flake, the system config), I was referencing the input instead of the package.

My github repos should be updated with code, but in case they ever get moved the solution with the code provided above is to set themePackages to

themePackages = [
  inputs.plymouth-theme-bowlbird-logo.defaultPackage.x86_64-linux
];

then use the string ‘bowlbird-logo’ for the theme name

hope this helps someone years down the line lol

3 Likes