···1111</div>
1212<br>
13131414-## ๐ง State of development
1515-All the basic functionality of v2 should be working correctly, including:
1414+## ๐ก How does this work?
1515+At its core, version 2 of my NixOS flake was aimed at improving the following regions of my previous setup:
16161717-- The custom lib implementation at self.lib, recursively built from the contents of the `lib` directory.
1717+- Implementing my own custom library at self.lib, recursively built from the contents of the `lib` directory.
1818- Loading of systems from the `systems` directory, using easy-hosts.
1919- - A basic workstation archetype for desktop systems.
2020-- Creating users in your systems through ${self.namespace}.users,
2121-automatically maps home-manager configurations from the `homes` directory to their corresponding users.
1919+ - Archetypes for various systems, as seen in [Jake Hamilton's](https://github.com/jakehamilton) flake.
2020+- Creating users in my systems through a unified NixOS module, with automated home-manager setups derived from the `homes` directory.
22212323-Since I am actively using this configuration on my main workstation, things are evolving quickly,
2424-leftover issues are actively being resolved and the list of modules is ever-growing.
2525-Nonetheless, one should still consider this implementation experimental.
2222+Since I am actively using this configuration on my main workstation and Server, things have mostly stabilized,
2323+leftover issues are sparse and the list of modules is nearing completion (for my purposes that is).
26242727-My next goal is to setup an attic binary cache,
2828-with a build/release workflow that runs in regular intervals.
2929-(similar to isabelroses's workflow setup)
2525+As such, I personally consider this flake production ready.
30263127## ๐ Deployment
3228To deploy a system run the following command in your terminal of choice.
···97932. Installs nix with some experimental features (flakes, nix-command, recursive-nix, pipe-operator)
98943. Runs `nix flake check` on the codebase
9995100100-## ๐ Goals and improvements
101101-The main goals of this rewritten flake are:
9696+#### โช๏ธ `Nix: validate flake.lock`
9797+This workflow can be found in `.github/workflows/validate-lock.yml`.
9898+It simply scans flake lockfiles for duplicate entries using `nix run github:tgirlcloud/pkgs#locker`.
9999+Under the hood it makes use of the locker lockfile linter, created by the [tgirlcloud](https://github.com/tgirlcloud) team (mostly [isabelroses](https://github.com/isabelroses).
102100103103-- using flake-parts in place of Snowfall lib
104104-- significantly improving the re-usability of all modules
105105-- avoiding anti-patterns, such as `with lib; with lib.${namespace};`
106106-- improved secrets management
107107-- keeping external assets closer to their related nix file, e.g. wallpapers in
108108-the desktop modules folder
101101+To be specific, it does the following:
102102+1. Checks out current branch
103103+2. Installs nix with some experimental features (flakes, nix-command)
104104+3. Runs `nix run github:tgirlcloud/pkgs#locker` on the codebase
105105+106106+## ๐ Future goals and improvements (2025-07-28)
107107+Some of my future goals for this flake are:
108108+109109+- Implementing an automated release workflow with semver versioning, e.g. 2.3.0.
110110+- Experimenting with various window-managers, especially Niri, though not set in stone yet.
111111+- Researching performance best-practices for hardware and implementing patches based on those.
112112+- Further refining my usage of the Nix language, through language best-practices and CLI dev tools.
109113110114## ๐๏ธ Structure
111115The structure this flake aims to build on is relatively simple to grasp.
···131135132136- [flake-parts](https://flake.parts)
133137- [NixOS and Flakes book](https://nixos-and-flakes.thiscute.world)
138138+- [The official NixOS wiki](https://wiki.nixos.org)
134139135140many thanks to their hard work!