Packages

The packages directory contains custom-built packages (can be accessed by github:maydayv7/dotfiles#packages.${system}). Packages which have a separate meta.nix (or multiple *meta.nix) can be automatically updated by running ./update.sh from the packages directory.

The overlays directory contains overrides for pre-built packages (See this for more information)

It is advisable to use Flake inputs as package sources. To pin it to a specific commit/revision add ?rev= after the url. Else you may also specify the source using fetch functions
In case you don't know the hash for the source, set:

hash = lib.fakeHash;
sha256 = lib.fakeSha256;

Then Nix will fail the build with an error message and give the correct hash
Otherwise run nix hash convert --hash-algo sha256 $(nix-prefetch-url url) to obtain the hash

Patches

The nixpkgs package channel can be patched by simply dropping a valid .patch or .diff file into the patches directory