Update flake (`neovim-nightly-overlay` is fixed)
Format all `.nix` files
Unify package/module argument order:
- `inputs`, `outputs`, `lib`, `pkgs`, `config`, ...
Move Jellyfin config to a `NixOS` module (first one, yay)
Add `direnv` to `reo101-shell` modules (was used, but not defined as wanted)
- TODO: make it optional (module config options)
Add more & generalize flake outputs:
- templates: just a `default.nix` (TODO: add a `Haskell` template)
- packages & devShells: create and use `forEachPkgs`
Add more `Wayland` things for `homix`:
- `swww` - custom package + custom systemd service (TODO: abstract away)
- `wired` - from flake + `home-manager` module
Add default `imports` and `nixokgs.overlays` for `reo101@homix`
-- TODO: don't handwire it, somehow *auto-import* from `mkNixosHost` in `flake.nix`
Copy and impove `home-manager` module integration from `nix-on-darwin` for `nixos`
Add `homix` *server* with NVIDIA drivers, `wayland` + `river`, Jellyfin, etc.
Now a bunch of configurations may be created from two functions and a set:
`pred` - a validator that says whether a configuration is valid
`mkHost` - a generator for that system's configuration
`machines` - a nested attrset containing all the info for the machines
Place all configurations in `machines/${manager}/${system}/${hostname}/...`:
- `${manager}` - One of `nixos`, `nix-on-droid`, `nix-darwin` or `home-manager`
- `${system}` - A system's architecture (can be many)
- `${hostname}` - A system's hostname (can be many)
The flake now automatically generates the needed configurations based on the above structure.
It only generates configurations for valid directory structures:
- It wouldn't generate a NixOS config if there isn't a `configuration.nix` file
- ...