diff --git a/flake.nix b/flake.nix index bd48d0b..4d3044c 100644 --- a/flake.nix +++ b/flake.nix @@ -73,6 +73,10 @@ url = "github:nix-community/NUR"; }; + spicetify-nix = { + url = "github:the-argus/spicetify-nix"; + }; + hardware = { url = "github:nixos/nixos-hardware"; }; @@ -115,6 +119,7 @@ , agenix , ragenix , nur + , spicetify-nix , hardware , nix-colors , neovim-nightly-overlay diff --git a/modules/home-manager/reo101-spotify/default.nix b/modules/home-manager/reo101-spotify/default.nix new file mode 100644 index 0000000..3856381 --- /dev/null +++ b/modules/home-manager/reo101-spotify/default.nix @@ -0,0 +1,75 @@ +{ inputs, outputs, ... }: +{ lib, pkgs, config, ... }: + +let + cfg = config.reo101.spotify; + + inherit (lib) + mkEnableOption mkOption types + mkIf optionals optionalString + mkMerge; +in +{ + imports = + [ + inputs.spicetify-nix.homeManagerModules.default + ]; + + options = + { + reo101.spotify = { + enable = mkEnableOption "reo101 spotify setup"; + }; + }; + + config = + mkIf cfg.enable { + home.packages = with pkgs; [ + spotify + ]; + + programs.spicetify = + let + spicePkgs = inputs.spicetify-nix.packages.${pkgs.system}.default; + in + { + enable = true; + spotifyPackage = pkgs.spotify; + + colorScheme = "text"; + + enabledExtensions = with spicePkgs.extensions; [ + adblock + autoVolume + copyToClipboard + fullAlbumDate + fullAppDisplay + genre + goToSong + groupSession + hidePodcasts + history + keyboardShortcut + lastfm + listPlaylistsWithSong + loopyLoop + phraseToPlaylist + playNext + playlistIcons + playlistIntersection + popupLyrics + savePlaylists + showQueueDuration + shuffle # shuffle+ + skipStats + songStats + trashbin + volumePercentage + ]; + }; + }; + + meta = { + maintainers = with lib.maintainers; [ reo101 ]; + }; +}