{ description = "Collection of custom Nix packages"; inputs = { flake-utils.url = "github:numtide/flake-utils"; nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; wallpaper-engine-plasma5-plugin = { flake = false; url = "git+https://github.com/catsout/wallpaper-engine-kde-plugin?submodules=1"; }; wallpaper-engine-plasma6-plugin = { flake = false; url = "git+https://github.com/catsout/wallpaper-engine-kde-plugin?ref=qt6&submodules=1"; }; yorha-grub-theme = { flake = false; url = "github:OliveThePuffin/yorha-grub-theme"; }; yorha-sound-theme = { flake = false; url = "git+https://forgejo.invariantspace.com/macronova/yorha-sound-theme.git"; }; }; outputs = inputs@{ self, flake-utils, nixpkgs, ... }: let pkgDrvDir = ./packages; pkgDrvs = pkgs: pkgs.lib.attrsets.mapAttrs' (pkgDrv: _: rec { name = builtins.substring 0 ( builtins.sub (builtins.stringLength pkgDrv) 4 ) pkgDrv; value = import (pkgDrvDir + "/${pkgDrv}") { inherit inputs name pkgs; }; }) (builtins.readDir pkgDrvDir); in { overlay = _: prev: pkgDrvs prev; } // flake-utils.lib.eachDefaultSystem (system: let pkgs = nixpkgs.legacyPackages.${system}; in { packages = pkgDrvs pkgs; }); }