feat: add spicetify

This commit is contained in:
Leon Schwarzäugl 2025-08-10 11:34:30 +02:00
parent e6c7351094
commit 2a250deccf
Signed by: swarsel
GPG key ID: 26A54C31F2A4FD84
6 changed files with 174 additions and 106 deletions

View file

@ -408,8 +408,10 @@ A short overview over each input and what it does:
nixpkgs-stable24_05.url = "github:NixOS/nixpkgs/nixos-24.05"; nixpkgs-stable24_05.url = "github:NixOS/nixpkgs/nixos-24.05";
nixpkgs-stable24_11.url = "github:NixOS/nixpkgs/nixos-24.11"; nixpkgs-stable24_11.url = "github:NixOS/nixpkgs/nixos-24.11";
systems.url = "github:nix-systems/default"; systems.url = "github:nix-systems/default";
swarsel-modules.url = "github:Swarsel/swarsel-modules/main";
home-manager = { home-manager = {
url = "github:nix-community/home-manager"; url = "github:nix-community/home-manager";
# url = "github:Swarsel/home-manager/module/pizauth";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
swarsel.url = "github:Swarsel/.dotfiles"; swarsel.url = "github:Swarsel/.dotfiles";
@ -470,6 +472,10 @@ A short overview over each input and what it does:
url = "github:numtide/devshell"; url = "github:numtide/devshell";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
spicetify-nix = {
url = "github:Gerg-l/spicetify-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
}; };
outputs = outputs =
inputs: inputs:
@ -4109,6 +4115,7 @@ We enable the use of =home-manager= as a NixoS module. A nice trick here is the
inputs.nix-index-database.homeModules.nix-index inputs.nix-index-database.homeModules.nix-index
inputs.sops-nix.homeManagerModules.sops inputs.sops-nix.homeManagerModules.sops
# inputs.stylix.homeModules.stylix # inputs.stylix.homeModules.stylix
inputs.spicetify-nix.homeManagerModules.default
{ {
imports = [ imports = [
"${self}/profiles/home" "${self}/profiles/home"
@ -10712,7 +10719,7 @@ This holds packages that I can use as provided, or with small modifications (as
libreoffice-qt libreoffice-qt
xournalpp xournalpp
obsidian obsidian
spotify # spotify
vesktop # discord client vesktop # discord client
# nextcloud-client # enables a systemd service that I do not want # nextcloud-client # enables a systemd service that I do not want
spotify-player spotify-player
@ -13507,6 +13514,37 @@ This service changes the screen hue at night. I am not sure if that really does
} }
#+end_src #+end_src
**** Spicetify
:PROPERTIES:
:CUSTOM_ID: h:d1fb3075-ad52-4c1b-ba45-5ddbd0d3b708
:END:
#+begin_src nix-ts :tangle modules/home/common/spicetify.nix
{ inputs, lib, config, pkgs, ... }:
let
moduleName = "spicetify";
spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.stdenv.system};
in
{
options.swarselmodules.${moduleName} = lib.mkEnableOption "${moduleName} settings";
config = lib.mkIf config.swarselmodules.${moduleName} {
programs.spicetify = {
enable = true;
spotifyPackage = pkgs.stable24_11.spotify;
enabledExtensions = with spicePkgs.extensions; [
fullAppDisplay
shuffle
hidePodcasts
fullAlbumDate
skipStats
history
];
};
};
}
#+end_src
*** Server *** Server
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: h:b1a00339-6e9b-4ae4-b5dc-6fd5669a2ddb :CUSTOM_ID: h:b1a00339-6e9b-4ae4-b5dc-6fd5669a2ddb
@ -17103,6 +17141,7 @@ This holds modules that are to be used on most hosts. These are also the most im
kanshi = lib.mkDefault true; kanshi = lib.mkDefault true;
gpgagent = lib.mkDefault true; gpgagent = lib.mkDefault true;
gammastep = lib.mkDefault true; gammastep = lib.mkDefault true;
spicetify = lib.mkDefault true;
optional = { optional = {
gaming = lib.mkDefault true; gaming = lib.mkDefault true;

View file

@ -81,6 +81,10 @@
url = "github:numtide/devshell"; url = "github:numtide/devshell";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
spicetify-nix = {
url = "github:Gerg-l/spicetify-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
}; };
outputs = outputs =
inputs: inputs:

View file

@ -0,0 +1,22 @@
{ inputs, lib, config, pkgs, ... }:
let
moduleName = "spicetify";
spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.stdenv.system};
in
{
options.swarselmodules.${moduleName} = lib.mkEnableOption "${moduleName} settings";
config = lib.mkIf config.swarselmodules.${moduleName} {
programs.spicetify = {
enable = true;
spotifyPackage = pkgs.stable24_11.spotify;
enabledExtensions = with spicePkgs.extensions; [
fullAppDisplay
shuffle
hidePodcasts
fullAlbumDate
skipStats
history
];
};
};
}

View file

@ -10,6 +10,7 @@
inputs.nix-index-database.homeModules.nix-index inputs.nix-index-database.homeModules.nix-index
inputs.sops-nix.homeManagerModules.sops inputs.sops-nix.homeManagerModules.sops
# inputs.stylix.homeModules.stylix # inputs.stylix.homeModules.stylix
inputs.spicetify-nix.homeManagerModules.default
{ {
imports = [ imports = [
"${self}/profiles/home" "${self}/profiles/home"

View file

@ -48,6 +48,7 @@
emacs.enable = false; emacs.enable = false;
waybar.enable = false; waybar.enable = false;
sway.useWallpaper = false; sway.useWallpaper = false;
spicetify.enable = true;
firefox.profileNames = [ "default" ]; firefox.profileNames = [ "default" ];
}; };

View file

@ -40,6 +40,7 @@
kanshi = lib.mkDefault true; kanshi = lib.mkDefault true;
gpgagent = lib.mkDefault true; gpgagent = lib.mkDefault true;
gammastep = lib.mkDefault true; gammastep = lib.mkDefault true;
spicetify = lib.mkDefault true;
optional = { optional = {
gaming = lib.mkDefault true; gaming = lib.mkDefault true;