flakes/modules/user/spicetify.nix

52 lines
2 KiB
Nix

{ config, inputs, pkgs, ... }:
let
spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system};
in
{
imports = [ inputs.spicetify-nix.homeManagerModules.spicetify ];
programs.spicetify = {
enable = true;
theme = spicePkgs.themes.dribbblish // rec {
src = pkgs.stdenvNoCC.mkDerivation {
pname = "spicetify-dribbblish-catppuccin-patch";
version = "1.0.0";
dontUnpack = true;
installPhase = let
color_prev1 = builtins.replaceStrings ["#"] [""] config.catppuccin.hexcolors.overlay1;
color_prev2 = builtins.replaceStrings ["#"] [""] config.catppuccin.hexcolors.overlay2;
color_next = builtins.replaceStrings ["#"] [""] config.catppuccin.hexcolors.${config.catppuccin.accent};
color_sidebar_prev = builtins.replaceStrings ["#"] [""] config.catppuccin.hexcolors.mantle;
color_sidebar_next = builtins.replaceStrings ["#"] [""] config.catppuccin.hexcolors.crust;
color_sidebar_text_prev = builtins.replaceStrings ["#"] [""] config.catppuccin.hexcolors.text;
color_sidebar_text_next = builtins.replaceStrings ["#"] [""] (config.catppuccin.hexcolors.base);
in ''
cp -r ${spicePkgs.themes.dribbblish.src} $out
substituteInPlace $out/color.ini \
--replace-fail "${color_prev1}" "${color_next}" \
--replace-fail "${color_prev2}" "${color_next}" \
--replace-fail "sidebar = ${color_sidebar_prev}" \
"sidebar = ${color_sidebar_next}" \
--replace-fail "sidebar-text = ${color_sidebar_text_prev}" \
"sidebar-text = ${color_sidebar_text_next}"
'';
};
};
colorScheme = "catppuccin-${config.catppuccin.flavor}";
enabledCustomApps = with spicePkgs.apps; [
lyricsPlus
];
enabledExtensions = with spicePkgs.extensions; [
fullAppDisplay
shuffle
hidePodcasts
skipStats
songStats
history
volumePercentage
];
};
}