Also stop passing `outputs` around, prefer `inputs.self`
Also put all `auto_` in `readOnly` `internal` options
- `autoModules`, `autoConfigurations` and `autoPackages`
Do not export packages as overlay (causes an infinite recursion)
- this is documented on the two places it has effect on
-- in `./overlays/default.nix` and `./modules/flake/configurations.nix`
-- in `autoConfigurations` we manually extend `pkgs` with the flake packages
Allow packages to say what `systems` they are compatible with
- See `./pkgs/swww/systems.nix` - disabled for all systems
- See `./pkgs/pngpaste/systems.nix` - enabled only for `darwin` targets
Specifically `homix`
- remove manual `home-manager` module definition
Import `(r)agenix` and `agenix-rekey` by default for all `NixOS` configurations
Move `machines.nix` flake module import to `configuration.nix` from `flake.nix`
Pass around `perSystem`'s `pkgs` instances to the system configurations
Some more refactoring in `configurations`' `mkHost` functions
Also start using `home-manager`'s `useGlobalPkgs` option
Also use `mkShellNoCC` for default `devShell`
Also `nix flake update`
Automatic `deploy-rs` node configs for `nixos` configuration using a local `deploy.nix` file
TODO: pass arguments to `deploy.nix`
TODO: extract `${system}` from `nixosConfigurations`
Fix `hasDirectories`
Correctly detect `autoDarwinConfigurations` (did not check for `home`)
Decrease usage of `with`
Depend more on `lib` functions over custom implementations
Reindent correctly some code
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
- ...