1.6 KiB
1.6 KiB
flake-parts TODO
- Move logic for generating system/home configs to module (most important,
reason i wanted to use flake-parts)
- Move common default args from the awful wrapper function to dedicated options:
- default module imports
- "common" module
- currently defines stateVersion, nixpkgs.config.allowUnfree, a few others
- make default module path configurable, but still default to
./hosts/${hostname}/configuration.nix
- make "entrypoint" (
./system
,./home/standalone.nix
, etc) configurable - make nixfiles home manager initialization a configurable option
- specialArgs (i want to deprecate this but one thing at a time)
- define system "types" and generate all of them internally using lazy
eval. export a specific one to the flake outputs.
- generate as something like
nixfiles.hosts.<name>.outputs
flake.nixosConfigurations.<name>
is set fromnixfiles.hosts.<name>.output
- default chosen by option like
nixfiles.hosts.<name>.type
- types:
- normal
- WSL
- ISO image
- generate as something like
- define deploy-rs outputs in same section as hosts
- make common, central interface for configuring overlays to be consumed by
various parts of flake, move hard-coded overlays out of common module
- literally just a list, maybe process it using lib.composeManyExtensions
- Move common default args from the awful wrapper function to dedicated options:
- some top-level config is okay (e.g., defining hosts using nixfiles options). hide away all of the internal logic into imported modules.
- move random functions into nixfiles lib
- move top-level universal configs (username, mobileTimeZone) into option (honestly, this alone makes flake-parts worth it)