···11+@document.meta
22+title: WHAT-BRANCH
33+description: What this PR will be about
44+authors: ladas552
55+categories: [
66+ nix
77+]
88+created: 2026-03-08T12:33:21
99+updated: 2026-03-08T18:25:52
1010+version: 1.1.1
1111+@end
1212+1313+* What I want
1414+ - Remove flake-parts dependency
1515+** Additonal ideas to implement
1616+ - Go flake inputless.
1717+ Get everything from nvfetcher. Yes, even nixpkgs. I don't have a reason to, other than that I hate how flake inputs work. not having a good way to import modules. Also need to find a way to make a nvf config.
1818+ - Switch to Adios
1919+ For the fun of it. I think I can use adios with Flakes. Need to check. There is no practical reason, other than it will be fun and Uniq.
2020+* How
2121+** My current setup
2222+ ~ Utilises generic module class to set options for every flake parts module, including the wrappers.
2323+ ~ nixosConfiguration function to combine all the modules into a host
2424+ ~ If I don't import a module into host, it doesn't exist. As in doesn't apply changes
2525+2626+** How Can I reapply this setup on non Flake-Parts config
2727+ ~ Generic modules, are just normal modules because normal modules don't type check. So theoretically I can import the normal option modules under any scope.
2828+ ~ I can just use the default flake outputs with a let in
2929+ ~ I think options will work just fine. But I need to take out all the boilerplate from it. make it as simple as `mkIfModule` at the top of the config or something.
3030+3131+** Materials
3232+*** Classes without flake-parts
3333+ from @boomshroom on nixos unofficial discord, this way whichever module loads the config will determine under what class it will load.
3434+ @code nix
3535+{ _class, ...}:
3636+{
3737+ nixos = { /* nixos config */ };
3838+ homeManager = { /* home-manager config */ };
3939+ nixOnDroid = { /* droid config */ };
4040+ darwin = { /* macos config */ };
4141+ nixbsd = { /* bsd config */ };
4242+}.${_class}
4343+ @end
4444+4545+*** Configs to steal
4646+ - {https://github.com/llakala/nixos}[llakala] - adios, wrappers, uses base values and specialArgs
4747+ - {https://github.com/hercules-ci/flake-parts/blob/main/extras/modules.nix}[Flake-parts] - This file in particular defines modules and classes in `flake.modules`. So theoretically I can just adopt this into my config without fucking with flake-parts