A collection of Nix flake utilities designed to streamline the development workflow and provide a consistent, reproducible setup across different machines.
This flake exposes the following types of modules:
- nix-darwin options and configurations
- Home Manager options and configurations
Option modules are what you'd typically call a module in the Nix ecosystem. They don't change your configuration; instead, they make more options available.
You can use them by adding snig.<type>Modules.default
to your imports
.
If you want to use the Home Manager options, you'd import them in a Home Manager module.
{ inputs, ... }:
{
imports = [ inputs.snig.homeModules.default ];
}
This flake also exports Configuration modules, which provide opinionated configurations for available options. Configuration is subject to change in newer revisions.
Important
Configurations may set options defined in this flake. Make sure to also import options before using configuration.
It's encouraged not to bulk import available configurations. Instead, you should import them in your own dedicated modules.
Configuration can also be selectively overridden with lib.mkForce
.
For example, if you want to use the Git configuration but not Delta for syntax highlighting, your Home Manager module would look like this:
{ lib, inputs, ... }:
{
imports = [ inputs.snig.homeModules.configurations.git ];
programs.git.delta.enable = lib.mkForce false;
}