- Now written in `Clojure`, using `Babashka`
Checked with `clj-kondo`
- Add TODO for module upstreaming
(of allowing file or script for `config`)
- Set `yabai` `window_border_radius` to `0`
- Fix ` battery` script (`grep` does not do `\d`)
- Also make `lib` an `internal` option
- Unify let blocks and move them under `imports`
(makes it clear where `config.lib` comes from)
- Fix a minor typo
- Move over `auto.confirmations.confirmations`' default value to a
separate module (clearing out the associated `TODO`)
- Create a module type for the `meta` of each `configurationType`,
which streamlines the definition and checking thereof
- Pass `meta` instead of just `host` to `predicate`, `mkHost` and
`mkDeployNode`
- Move the `host != "__template__"` logic inside the default value for
`meta`'s `enable` option, leaving it (`enable`) as the main filtering
factor in the `configurations`' `predicate`s
- Combine `auto.configurations.result{Configurations,DeployNodes}` into
`auto.configurations.result.{configurations,deployNodes}`
Flatten down directory structure:
- From: `./hosts/${configuration-type}/${system}/{configuration,deploy}.nix`
- To: `./hosts/${configuration-type}/{meta,configuration}.nix`
Keep `system` and `deploy-rs` config in `meta.nix`
Update `flake.lock`
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
Can now also build with (1) instead of just (2)
- `nix build .#topology`
(from `legacyPackages`, hidden in `nix flake show`)
- `nix build .#topology.${system}.config.output`
(raw flake output)
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`
`/usr/local/bin/brew` was the path for `x86_64-darwin`
`aarch64-darwin` uses `/opt/homebrew/bin/brew`
Use `${config.homebrew.brewPrefix}` to support both
See <c0d5b8c54d/modules/homebrew.nix (L561)>
More `wireguard` peers
`nano` -> `neovim` for default available editor
`samba` better names + symlink support
More `opengl` packages for `Jellyfin`
Add `home-assistant` (no config yet)