rix101/modules/home-manager/reo101-spotify/default.nix
reo101 2941536b80
refactor(flake)!: export packages using a flake module
Also stop passing `outputs` around, prefer `inputs.self`
Also put all `auto_` in `readOnly` `internal` options
- `autoModules`, `autoConfigurations` and `autoPackages`
Do not export packages as overlay (causes an infinite recursion)
- this is documented on the two places it has effect on
-- in `./overlays/default.nix` and `./modules/flake/configurations.nix`
-- in `autoConfigurations` we manually extend `pkgs` with the flake packages
Allow packages to say what `systems` they are compatible with
- See `./pkgs/swww/systems.nix` - disabled for all systems
- See `./pkgs/pngpaste/systems.nix` - enabled only for `darwin` targets
2024-07-29 01:54:22 +03:00

75 lines
1.5 KiB
Nix

{ inputs, ... }:
{ 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 ];
};
}