{ description = "Pywal Config"; inputs = { themecord = { url = "github:danihek/themecord"; inputs.nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05"; }; spicetify-nix = { url = "github:Gerg-L/spicetify-nix"; inputs.nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05"; }; spicetify-ext = { url = "github:rxri/spicetify-extensions"; flake = false; }; nixpkgs-us.url = "github:nixos/nixpkgs/nixos-unstable"; }; outputs = { self, ... }@inputs: let system = "x86_64-linux"; pkgs-us = import inputs.nixpkgs-us { inherit system; config.allowUnfree = true; }; in { hmModule = { config, lib, pkgs, ... }:{ imports = [ inputs.spicetify-nix.homeManagerModules.default ]; options.homeconfig.wal.enable = lib.options.mkOption { type = lib.types.bool; default = false; }; config = let pywalfox-wrapper = pkgs.writeShellScriptBin "pywalfox-wrapper" '' ${pkgs.pywalfox-native}/bin/pywalfox start ''; in lib.mkIf config.homeconfig.wal.enable { programs.spicetify = let spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system}; in { enable = true; spotifyPackage = pkgs-us.spotify; theme = spicePkgs.themes.default; enabledExtensions = with spicePkgs.extensions; [ ({ src = "${inputs.spicetify-ext}/adblock"; name = "adblock.js"; }) copyToClipboard oneko #randomBadToTheBoneRiff #this could be hilarious ]; enabledCustomApps = with spicePkgs.apps; [ ncsVisualizer ]; }; home.packages = with pkgs; [ inputs.themecord.packages.${pkgs.system}.default vesktop pkgs-us.pywal16 imagemagick pywalfox-native ]; home.file.".mozilla/native-messaging-hosts/pywalfox.json".text = lib.replaceStrings [ "" ] [ "${pywalfox-wrapper}/bin/pywalfox-wrapper" ] (lib.readFile "${pkgs.pywalfox-native}/lib/python3.11/site-packages/pywalfox/assets/manifest.json"); }; }; }; }