diff --git a/flake.lock b/flake.lock index 3b5eb36..02ef9d7 100644 --- a/flake.lock +++ b/flake.lock @@ -419,6 +419,7 @@ "packwiz": "packwiz", "pure": "pure", "rust-overlay": "rust-overlay", + "spicetify-nix": "spicetify-nix", "spotify-adblock": "spotify-adblock", "tree-sitter-glimmer": "tree-sitter-glimmer", "tree-sitter-jsonc": "tree-sitter-jsonc", @@ -449,6 +450,26 @@ "type": "github" } }, + "spicetify-nix": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1672725918, + "narHash": "sha256-hRFozbeEJOatUGjsOyiBsXzh9bio7LfszqRdmE1GO48=", + "owner": "the-argus", + "repo": "spicetify-nix", + "rev": "f97658eb60cb29a1a35eb6af2ec85d590f1b4a49", + "type": "github" + }, + "original": { + "owner": "the-argus", + "repo": "spicetify-nix", + "type": "github" + } + }, "spotify-adblock": { "flake": false, "locked": { diff --git a/flake.nix b/flake.nix index 3f77681..cd126a8 100644 --- a/flake.nix +++ b/flake.nix @@ -8,12 +8,14 @@ nixos-hardware.url = "github:NixOS/nixos-hardware"; agenix.url = "github:ryantm/agenix"; nixos-generators.url = "github:nix-community/nixos-generators"; + spicetify-nix.url = "github:the-argus/spicetify-nix"; agenix.inputs.nixpkgs.follows = "nixpkgs"; home-manager.inputs.nixpkgs.follows = "nixpkgs"; home-manager-raccoon.inputs.nixpkgs.follows = "nixpkgs-raccoon"; neovim-nightly.inputs.nixpkgs.follows = "nixpkgs"; nixos-generators.inputs.nixpkgs.follows = "nixpkgs"; + spicetify-nix.inputs.nixpkgs.follows = "nixpkgs"; nix-gaming.url = "github:fufexan/nix-gaming"; diff --git a/modules/default.nix b/modules/default.nix index 43aa296..205afc2 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -58,6 +58,7 @@ in { ./user/polybar.nix ./user/rofi.nix ./user/sessionVariables.nix + ./user/spicetify.nix ./user/sxhkd.nix ./user/theming.nix ./user/xdg.nix diff --git a/modules/user/spicetify.nix b/modules/user/spicetify.nix new file mode 100644 index 0000000..32b750b --- /dev/null +++ b/modules/user/spicetify.nix @@ -0,0 +1,30 @@ +{ config, inputs, pkgs, ... }: +let + spicePkgs = inputs.spicetify-nix.packages.${pkgs.system}.default; + #adblock = inputs.spotify-adblock.defaultPackage.x86_64-linux; + adblock = pkgs.me.spotify-adblock; +in +{ + imports = [ inputs.spicetify-nix.homeManagerModule ]; + + programs.spicetify = { + spotifyPackage = pkgs.spotify-unwrapped.overrideAttrs(o: { + installPhase = let + a = pkgs.lib.replaceStrings ["--prefix PATH"] [''--prefix SPOTIFY_ADBLOCK_CONFIG : ${adblock}/lib/config.toml \ + --prefix LD_PRELOAD : ${adblock}/lib/libspotifyadblock.so \ + --prefix PATH''] o.installPhase; + in builtins.trace a a; + }); + + enable = true; + theme = spicePkgs.themes.Dribbblish; + colorScheme = "purple"; + + enabledExtensions = with spicePkgs.extensions; [ + fullAppDisplay + shuffle # shuffle+ (special characters are sanitized out of ext names) + hidePodcasts + ]; + }; + +} diff --git a/packages/spotify-adblock/default.nix b/packages/spotify-adblock/default.nix index f275545..afbe68d 100644 --- a/packages/spotify-adblock/default.nix +++ b/packages/spotify-adblock/default.nix @@ -7,8 +7,7 @@ rustPlatform.buildRustPackage { version = "1.0"; src = inputs.spotify-adblock; - cargoSha256 = "1dabmqjvbxdgs8im7asilv4nnx6xzcbwbiy924sci1zbd5isxgfx"; - cargoPatches = [ ./0001-cargo.patch ]; + cargoSha256 = "sha256-07vswkW0BZCEg8Z/cS71bbkJ546k+YI38HN5bdIqTPU="; patches = [ ./0002-allow-setting-config-from-environment-variable.patch ]; diff --git a/users/rin/default.nix b/users/rin/default.nix index e453d61..6fac37d 100644 --- a/users/rin/default.nix +++ b/users/rin/default.nix @@ -32,6 +32,7 @@ kitty mpv rofi + spicetify dunst eww