Files
Olympus/home/programs/pywal/flake.nix

90 lines
2.4 KiB
Nix

{
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, ... }: let
pywalfox-wrapper = pkgs.writeShellScriptBin "pywalfox-wrapper" ''
${pkgs.pywalfox-native}/bin/pywalfox start
'';
in {
imports = [
inputs.spicetify-nix.homeManagerModules.default
];
options.homeconfig.wal.enable = lib.options.mkOption {
type = lib.types.bool;
default = false;
};
config = 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
pywalfox-native
];
home.file.".mozilla/native-messaging-hosts/pywalfox.json".text = lib.replaceStrings [ "<path>" ] [
"${pywalfox-wrapper}/bin/pywalfox-wrapper"
]
(lib.readFile "${pkgs.pywalfox-native}/lib/python3.11/site-packages/pywalfox/assets/manifest.json");
};
};
};
}