user/spicetify: use custom colour scheme

This commit is contained in:
LavaDesu 2025-03-17 13:30:40 +11:00
parent 7f300748af
commit 4b45190901
Signed by: cilly
GPG key ID: 6500251E087653C9

View file

@ -1,6 +1,8 @@
{ config, inputs, pkgs, ... }: { config, inputs, pkgs, ... }:
let let
spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system}; spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system};
colours = builtins.mapAttrs (_: colour: builtins.replaceStrings ["#"] [""] colour) config.catppuccin.hexcolors;
accentColour = colours.${config.catppuccin.accent};
in in
{ {
imports = [ inputs.spicetify-nix.homeManagerModules.spicetify ]; imports = [ inputs.spicetify-nix.homeManagerModules.spicetify ];
@ -8,31 +10,25 @@ in
programs.spicetify = { programs.spicetify = {
enable = true; enable = true;
alwaysEnableDevTools = true; alwaysEnableDevTools = true;
theme = spicePkgs.themes.dribbblish // rec { theme = spicePkgs.themes.dribbblish;
src = pkgs.stdenvNoCC.mkDerivation { customColorScheme = {
pname = "spicetify-dribbblish-catppuccin-patch"; text = colours.text;
version = "1.0.0"; subtext = colours.subtext1;
dontUnpack = true; sidebar-text = colours.text;
installPhase = let main = colours.base;
color_prev1 = builtins.replaceStrings ["#"] [""] config.catppuccin.hexcolors.overlay1; sidebar = colours.mantle;
color_prev2 = builtins.replaceStrings ["#"] [""] config.catppuccin.hexcolors.overlay2; player = colours.base;
color_next = builtins.replaceStrings ["#"] [""] config.catppuccin.hexcolors.${config.catppuccin.accent}; card = colours.base;
color_sidebar_prev = builtins.replaceStrings ["#"] [""] config.catppuccin.hexcolors.mantle; shadow = colours.mantle;
color_sidebar_next = builtins.replaceStrings ["#"] [""] config.catppuccin.hexcolors.crust; selected-row = colours.overlay2;
button = colours.overlay1;
color_sidebar_text_prev = builtins.replaceStrings ["#"] [""] config.catppuccin.hexcolors.text; button-active = colours.overlay2;
color_sidebar_text_next = builtins.replaceStrings ["#"] [""] (config.catppuccin.hexcolors.base); button-disabled = colours.overlay0;
in '' tab-active = colours.surface0;
cp -r ${spicePkgs.themes.dribbblish.src} $out notification = colours.surface0;
substituteInPlace $out/color.ini \ notification-error = colours.red;
--replace-fail "${color_prev1}" "${color_next}" \ misc = colours.surface1;
--replace-fail "${color_prev2}" "${color_next}" \
--replace-fail "sidebar = ${color_sidebar_prev}" \
"sidebar = ${color_sidebar_next}"
'';
};
}; };
colorScheme = "catppuccin-${config.catppuccin.flavor}";
enabledCustomApps = with spicePkgs.apps; [ enabledCustomApps = with spicePkgs.apps; [
lyricsPlus lyricsPlus