# nixfiles NixOS / nix-darwin / home-manager configuration for all hosts, built from a single flake. ## Hosts Defined in the host table in [`flake.nix`](./flake.nix): | Configuration | System | Machine | | ------------------- | --------------- | ---------------------------------------- | | `lyrathorpe-mbp` | `aarch64-linux` | MacBook Pro (Apple Silicon, Asahi) | | `lyrathorpe-x1c` | `x86_64-linux` | ThinkPad X1 | | `emmathorpe-edaas` | `x86_64-linux` | Work WSL box (NixOS-WSL) | | `lyrathorpe-mac` | `aarch64-darwin`| macOS (nix-darwin) | Shared layers: `lyrathorpe/home` (home-manager: shell, git, editor), `system/modules/common-nixos.nix` (all NixOS hosts), and `system/modules/laptop.nix` (the physical laptops). ## Applying ```sh # NixOS sudo nixos-rebuild switch --flake .# # Darwin darwin-rebuild switch --flake .#lyrathorpe-mac ``` ## MacBook (Asahi) firmware The MBP host references `system/modules/firmware/` for Apple peripheral firmware (Wi-Fi/Bluetooth). Those blobs are **not** redistributable, so the directory is gitignored and a clean checkout will not build `lyrathorpe-mbp` until it is populated out-of-band. Copy the firmware extracted during the Asahi install (from `/etc/nixos/firmware` on the freshly-installed machine, or re-extract per the [Asahi NixOS docs](https://github.com/tpwrules/nixos-apple-silicon)) into `system/modules/firmware/` before rebuilding that host. ## CI [`.gitea/workflows/ci.yaml`](./.gitea/workflows/ci.yaml) gates `nixfmt` formatting and evaluates every NixOS and Darwin host configuration on push/PR.