From 1fc8542b60e1b0f627216d08917ea17df145252e Mon Sep 17 00:00:00 2001 From: ItsDrike Date: Mon, 10 Jun 2024 21:58:06 +0200 Subject: [PATCH] Add spotify+spicetify --- flake.lock | 57 ++++++++++++++++++- flake.nix | 5 ++ home/programs/graphical/apps/default.nix | 5 ++ .../graphical/apps/spotify/default.nix | 45 +++++++++++++++ home/programs/graphical/default.nix | 1 + hosts/default.nix | 2 + hosts/herugrim/default.nix | 4 ++ options/home/programs/default.nix | 2 + 8 files changed, 120 insertions(+), 1 deletion(-) create mode 100644 home/programs/graphical/apps/default.nix create mode 100644 home/programs/graphical/apps/spotify/default.nix diff --git a/flake.lock b/flake.lock index fce3159..93eb9d6 100644 --- a/flake.lock +++ b/flake.lock @@ -88,6 +88,24 @@ "type": "github" } }, + "flake-utils_2": { + "inputs": { + "systems": "systems_2" + }, + "locked": { + "lastModified": 1685518550, + "narHash": "sha256-o2d0KcvaXzTrPRIo0kOLV0/QXHhDQ5DTi+OxcjO8xqY=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "a1720a10a6cfe8234c0e93907ffe81be440f4cef", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, "gitignore": { "inputs": { "nixpkgs": [ @@ -240,7 +258,8 @@ "home-manager": "home-manager", "impermanence": "impermanence", "lanzaboote": "lanzaboote", - "nixpkgs": "nixpkgs" + "nixpkgs": "nixpkgs", + "spicetify": "spicetify" } }, "rust-overlay": { @@ -268,6 +287,27 @@ "type": "github" } }, + "spicetify": { + "inputs": { + "flake-utils": "flake-utils_2", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1704167711, + "narHash": "sha256-kFDq+kf/Di/P8bq5sUP8pVwRkrSVrABksBjMPmLic3s=", + "owner": "the-argus", + "repo": "spicetify-nix", + "rev": "1325416f951d6a82cfddb1289864ad782e2b87c4", + "type": "github" + }, + "original": { + "owner": "the-argus", + "repo": "spicetify-nix", + "type": "github" + } + }, "systems": { "locked": { "lastModified": 1681028828, @@ -282,6 +322,21 @@ "repo": "default", "type": "github" } + }, + "systems_2": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index 95cd31c..2b64964 100644 --- a/flake.nix +++ b/flake.nix @@ -17,6 +17,11 @@ url = "github:nix-community/lanzaboote/v0.3.0"; inputs.nixpkgs.follows = "nixpkgs"; }; + + spicetify = { + url = "github:the-argus/spicetify-nix"; + inputs.nixpkgs.follows = "nixpkgs"; + }; }; outputs = {self, nixpkgs, ...} @ inputs: let diff --git a/home/programs/graphical/apps/default.nix b/home/programs/graphical/apps/default.nix new file mode 100644 index 0000000..a2cb1cb --- /dev/null +++ b/home/programs/graphical/apps/default.nix @@ -0,0 +1,5 @@ +_: { + imports = [ + ./spotify + ]; +} diff --git a/home/programs/graphical/apps/spotify/default.nix b/home/programs/graphical/apps/spotify/default.nix new file mode 100644 index 0000000..435e586 --- /dev/null +++ b/home/programs/graphical/apps/spotify/default.nix @@ -0,0 +1,45 @@ +{ + lib, + osConfig, + inputs, + pkgs, + ... +}: let + inherit (lib) mkIf; + + cfg = osConfig.myOptions.home-manager.programs.spotify; + spicePkgs = inputs.spicetify.packages.${pkgs.system}.default; +in { + imports = [inputs.spicetify.homeManagerModule]; + config = mkIf cfg.enable { + programs.spicetify = { + enable = true; + injectCss = true; + replaceColors = true; + + overwriteAssets = true; + sidebarConfig = true; + enabledCustomApps = with spicePkgs.apps; [ + lyrics-plus + new-releases + ]; + + theme = spicePkgs.themes.catppuccin; + colorScheme = "mocha"; + + enabledExtensions = with spicePkgs.extensions; [ + fullAppDisplay + shuffle # shuffle+ (special characters are sanitized out of ext names) + hidePodcasts + playlistIcons + lastfm + historyShortcut + bookmark + fullAlbumDate + groupSession + popupLyrics + # TODO: genre, see: https://github.com/the-argus/spicetify-nix/issues/50 + ]; + }; + }; +} diff --git a/home/programs/graphical/default.nix b/home/programs/graphical/default.nix index e5fd07c..6b2ded2 100644 --- a/home/programs/graphical/default.nix +++ b/home/programs/graphical/default.nix @@ -2,5 +2,6 @@ _: { imports = [ ./wms ./launchers + ./apps ]; } diff --git a/hosts/default.nix b/hosts/default.nix index 4dcd9eb..5ce2bb3 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -12,6 +12,7 @@ in { vboxnix = lib.nixosSystem { system = "x86_64-linux"; + specialArgs = { inherit lib inputs self; }; modules = [ ./vbox_nix inputs.home-manager.nixosModules.home-manager @@ -22,6 +23,7 @@ in herugrim = lib.nixosSystem { system = "x86_64-linux"; + specialArgs = { inherit lib inputs self; }; modules = [ ./herugrim inputs.home-manager.nixosModules.home-manager diff --git a/hosts/herugrim/default.nix b/hosts/herugrim/default.nix index 01046e6..820486b 100644 --- a/hosts/herugrim/default.nix +++ b/hosts/herugrim/default.nix @@ -93,6 +93,10 @@ "eDP-1, 1920x1080@60, 0x0, 1" ]; }; + + programs = { + spotify.enable = true; + }; }; }; } diff --git a/options/home/programs/default.nix b/options/home/programs/default.nix index cd18b5f..c6bdb95 100644 --- a/options/home/programs/default.nix +++ b/options/home/programs/default.nix @@ -11,5 +11,7 @@ in description = "Enable Walker launcher."; }; }; + + spotify.enable = mkEnableOption "Spotify"; }; }