Spicetify-Nix: Difference between revisions
Remove reference to delete file, remove suggestion to follow nixpkgs |
m fixed the error for nix-darwin |
||
(4 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
<div style="border: 1px solid | <div style="border: 1px solid var(--color-progressive--hover); background: var(--background-color-progressive-subtle); padding: 30px; border-radius: 5px; margin: 10px 0px; display: flex; align-items: center;"> | ||
<div style="color: | <div style="color: var(--color-progressive--hover); font-size: 40px; margin-right: 15px; background: var(--background-color-progressive-subtle); display: flex; line-height: 0; align-items: center;">❄</div> | ||
<div style="color: | <div style="color: var(--color-progressive--hover); font-size: 15px; font-style: normal; font-weight: 400; line-height: normal; text-align: left;">This guide requires an understanding of [[Flakes|flakes]].</div> | ||
</div> | </div> | ||
<div style="border: 1px solid | <div style="border: 1px solid var(--color-content-added); background: var(--background-color-success-subtle); padding: 15px; border-radius: 5px; margin: 10px 0px; display: flex; justify-content: space-between; align-items: center;"> | ||
<div style="color: | <div style="color: var(--color-content-added); font-size: 14px; font-style: normal; font-weight: 400; line-height: normal; text-align: left;">[https://spotify.com/ Spotify]</div> | ||
<div style="color: | <div style="color: var(--color-content-added); font-size: 14px; font-style: normal; font-weight: 400; line-height: normal; text-align: center;">[https://wiki.nixos.org/wiki/Unfree_software#Using_unfree_packages/ License: Unfree]</div> | ||
<div style="color: | <div style="color: var(--color-content-added); font-size: 14px; font-style: normal; font-weight: 400; line-height: normal; text-align: right;">[https://www.spotify.com/legal/end-user-agreement/ Terms of Service]</div> | ||
</div> | </div> | ||
[https://github.com/Gerg-L/spicetify-nix/ Spicetify-Nix] is a comprehensive repository designed to integrate Spicetify with the Nix package manager and NixOS. This repository offers a Nix package and NixOS module for Spicetify, simplifying the installation and configuration process on NixOS systems. It supports various themes, extensions, and customizations to improve the Spotify user experience. The NixOS module provides predefined options and parameters, ensuring a straightforward setup. | [https://github.com/Gerg-L/spicetify-nix/ Spicetify-Nix] is a comprehensive repository designed to integrate Spicetify with the Nix package manager and NixOS. This repository offers a Nix package and NixOS module for Spicetify, simplifying the installation and configuration process on NixOS systems. It supports various themes, extensions, and customizations to improve the [[Spotify]] user experience. The NixOS module provides predefined options and parameters, ensuring a straightforward setup. | ||
== Installation == | == Installation == | ||
Line 27: | Line 27: | ||
inputs.spicetify-nix.homeManagerModules.default | inputs.spicetify-nix.homeManagerModules.default | ||
# For nix-darwin | # For nix-darwin | ||
inputs.spicetify-nix. | inputs.spicetify-nix.darwinModules.default | ||
]; | ]; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 35: | Line 35: | ||
<syntaxhighlight lang="nix">programs.spicetify = | <syntaxhighlight lang="nix">programs.spicetify = | ||
let | let | ||
spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system}; | spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.stdenv.hostPlatform.system}; | ||
in | in | ||
{ | { | ||
Line 46: | Line 46: | ||
programs.spicetify = | programs.spicetify = | ||
let | let | ||
spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system}; | spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.stdenv.hostPlatform.system}; | ||
in | in | ||
{ | { | ||
Line 129: | Line 129: | ||
# https://github.com/Gerg-L/spicetify-nix/blob/master/docs/CUSTOMAPPS.md | # https://github.com/Gerg-L/spicetify-nix/blob/master/docs/CUSTOMAPPS.md | ||
# https://github.com/Gerg-L/spicetify-nix/blob/master/docs/THEMES.md | # https://github.com/Gerg-L/spicetify-nix/blob/master/docs/THEMES.md | ||
[[Category:Desktop]] |
Latest revision as of 20:43, 14 August 2025
Spicetify-Nix is a comprehensive repository designed to integrate Spicetify with the Nix package manager and NixOS. This repository offers a Nix package and NixOS module for Spicetify, simplifying the installation and configuration process on NixOS systems. It supports various themes, extensions, and customizations to improve the Spotify user experience. The NixOS module provides predefined options and parameters, ensuring a straightforward setup.
Installation
Using flakes
Include the following input in your flake.nix file.
spicetify-nix.url = "github:Gerg-L/spicetify-nix";
Afterwards, import the module depending on your use of global or home configuration.
imports = [
# For NixOS
inputs.spicetify-nix.nixosModules.default
# For home-manager
inputs.spicetify-nix.homeManagerModules.default
# For nix-darwin
inputs.spicetify-nix.darwinModules.default
];
Configuration
Basic
programs.spicetify =
let
spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.stdenv.hostPlatform.system};
in
{
enable = true;
theme = spicePkgs.themes.catppuccin;
}
Advanced
programs.spicetify =
let
spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.stdenv.hostPlatform.system};
in
{
enable = true;
enabledExtensions = with spicePkgs.extensions; [
adblock
hidePodcasts
shuffle # shuffle+ (special characters are sanitized out of extension names)
];
enabledCustomApps = with spicePkgs.apps; [
newReleases
ncsVisualizer
];
enabledSnippets = with spicePkgs.snippets; [
rotatingCoverart
pointer
];
theme = spicePkgs.themes.catppuccin;
colorScheme = "mocha";
}
Tips and Tricks
Location of Options
The options are found in the rendered docs.
The extensions, customApps, and themes are found in the following files: EXTENSIONS.md, CUSTOMAPPS.md, THEMES.md.
Unpackaged Parameters
Below are instructions on how to package customApps that are not in the module by default.
programs.spicetify.enabledCustomApps= [
({
# The source of the customApp
src = pkgs.fetchFromGitHub {
owner = "";
repo = "";
rev = "";
hash = "";
};
# The actual file name of the customApp usually ends with .js
name = "";
})
];
Keep in mind that this can be applied to the other parameters as well. A custom theme allows for more options to be applied.
programs.spicetify.theme = {
# Name of the theme
name = "";
# The source of the theme
src = pkgs.fetchFromGitHub {
owner = "";
repo = "";
rev = "";
hash = "";
};
# Additional theme options all set to defaults
# the docs of the theme should say which of these
# if any you have to change
injectCss = true;
injectThemeJs = true;
replaceColors = true;
sidebarConfig = true;
homeConfig = true;
overwriteAssets = false;
additonalCss = "";
};
Troubleshooting
References
- https://spotify.com
- https://github.com/Gerg-L/spicetify-nix
- https://www.spotify.com/legal/end-user-agreement
- https://gerg-l.github.io/spicetify-nix/options.html
- https://github.com/Gerg-L/spicetify-nix/blob/master/docs/EXTENSIONS.md
- https://github.com/Gerg-L/spicetify-nix/blob/master/docs/CUSTOMAPPS.md
- https://github.com/Gerg-L/spicetify-nix/blob/master/docs/THEMES.md