Help with noctalia templates

I’m trying to include noctalia’s templates for various apps while mantaining dynamic colorschemes, for example in kitty i managed to obtain this behaviour by merging a nix-managed config and the noctalia generated one:

{...}: {
  config = {
    programs.noctalia-shell.settings.templates.activeTemplates = [
      {
        id = "kitty";
        active = true;
      }
    ];

    programs.kitty.extraConfig = ''
      include themes/noctalia.conf
    '';
  };
}

I’m having problems implementing the same for spicetify (Spotify | Noctalia). I’m using the spicetify flake (GitHub - Gerg-L/spicetify-nix: A nix library for modifying spotify with https://github.com/spicetify) and It seems that it runs in a sandbox and does not access files in the home directory. This is the config i have for the template:

{
  lib,
  pkgs,
  inputs,
  ...
}: {
  config = {
    programs.noctalia-shell.settings.templates.activeTemplates = [
      {
        id = "spicetify";
        active = true;
      }
    ];

    programs.spicetify = let
      spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.stdenv.system};
    in {
      enable = true;
      theme = {
        src = lib.mkForce spicePkgs.themes.comfy;

        injectCss = true;
        injectThemeJs = true;
        replaceColors = true;
        overwriteAssets = true;
      };

      colorScheme = lib.mkForce "Comfy";
    };
  };
}

How can I force spicetify into using the file generated by noctalia (in ~/.config/spicetify/Themes/Comfy/colors.ini) without needing to rebuild the entire system when those colors change?

1 Like

I have the same problem. After reading this issue on the spicetify-nix repo, it seems there is no easy solution as of right now.