A collection of vendored wallpapers, packaged as a reusable Nix flake. Images are committed to the repository (not fetched at build time), so builds are hermetic and the byte content never drifts — pin the flake and the wallpapers are frozen forever.
The package exposes each wallpaper individually plus a names list, so consumers can
select one by name (e.g. for stylix
theming).
Follow nixpkgs for a reproducible build that reuses your system's package versions:
# flake.nix inputs
nix-wallpapers = {
url = "github:aleks-sidorenko/nix-wallpapers";
inputs.nixpkgs.follows = "nixpkgs";
};Reference a wallpaper directly from the package's passthru:
# per-system package
nix-wallpapers.packages.${system}.default.earth # -> /nix/store/...earth.png
nix-wallpapers.packages.${system}.default.names # -> [ "earth" "galaxy" ... ]
# e.g. with stylix
stylix.image = nix-wallpapers.packages.${system}.default.earth;nixpkgs.overlays = [ inputs.nix-wallpapers.overlays.default ];
# then, anywhere with `pkgs`:
stylix.image = pkgs.wallpapers.earth;# build the whole collection (installs to result/share/wallpapers)
nix build github:aleks-sidorenko/nix-wallpapers
# list available wallpaper names
nix eval github:aleks-sidorenko/nix-wallpapers#packages.x86_64-linux.default.names3kitty2, KurzegartDNA, Kurzgesagt-Baby_Star, Kurzgesagt-Cloudy_Quasar_1,
Kurzgesagt-Galaxies, Kurzgesagt-Galaxy_2, Kurzgesagt-Galaxy_3,
Kurzgesagt-Stellar_Phenomenon, Palette, cat-sound, catMachup,
catpuccino-caramel-dark-4k, earth, galaxy, nixppuccin, pizza,
rainbow-nix, spill, windows-error.
Run just list to print the list from the built package.
Drop an image file into wallpapers/ and commit it — it is discovered
automatically (the attribute name is the filename without extension). No hashes to
maintain.
For a complete production setup, see
aleks-sidorenko/nix-config — it
consumes this flake across NixOS, nix-darwin, and home-manager systems and wires the
selected wallpaper into stylix via an opt-in
nix-config.styles.stylix.wallpaper option.
Consumers should set inputs.nixpkgs.follows = "nixpkgs" so the tiny build wrapper uses
the same nixpkgs revision as the rest of the system, keeping the closure minimal.
MIT — see LICENSE.