# 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-t400` | `x86_64-linux` | ThinkPad T400 — [install notes](./system/machine/T400/README.md) | | `lyrathorpe-macpro31` | `x86_64-linux` | Mac Pro 3,1, desktop — [install notes](./system/machine/MacPro31/README.md) | | `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 ``` ## Shell environment & keybindings - Interactive shell features (zsh, tmux, git, ssh, CLI tools, auto-tmux): [`lyrathorpe/home/README.md`](./lyrathorpe/home/README.md). - All Sway / tmux / foot / zsh keyboard shortcuts: [`lyrathorpe/home/KEYBINDINGS.md`](./lyrathorpe/home/KEYBINDINGS.md). ## Login / greeter Graphical (Sway) hosts log in through a Wayland greeter — `greetd` running ReGreet inside the `cage` kiosk compositor — configured centrally in [`lyrathorpe/swaywm.nix`](./lyrathorpe/swaywm.nix), gated on `features.swayDesktop.enable`. The greeter is forced to Dvorak to match the console and Sway session. Hosts with `features.swayDesktop.enable = false` (the WSL work box) keep plain TTY login. The target account needs a password (`passwd `) before it can log in. ## 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.