# NixOS Configs Reproducible multi-host NixOS + Hyprland ("Silicon Volt") configuration. ## Install (new machine) ```bash # Setup disks nix run --experimental-features "nix-common flakes" github:nix-community/disko -- --mode disko --flake .#hades # install configs nixos-install --flake .#hades # set password nixos-enter --root /mnt -- passwd anish ``` ## Rebuild (existing machine) ```bash rebuild switch # zsh helper: sudo nixos-rebuild switch --flake ~/NixOS-Configs# ``` ## Adding a new host (e.g. a laptop) 1. Create `hosts//` with `default.nix`, `hardware-configuration.nix`, and (optionally) `disko.nix`; import the shared modules (`modules/core`, `modules/graphical`, `modules/apps`). 2. Register it in `flake.nix` under `nixosConfigurations`. 3. Declare host-specific displays in `hosts//default.nix`: ```nix home-manager.users.anish.volt.monitors = [ { output = "eDP-1"; # or "desc:" mode = "2880x1800@120Hz"; # or "preferred" position = "auto"; scale = 2; vrr = null; # optional per-monitor VRR } { output = ""; mode = "preferred"; position = "auto"; scale = "auto"; } # fallback ]; ``` The `volt.monitors` default (any output @ preferred) keeps every machine working out of the box; hosts override only what they need. Hosts without an NVIDIA GPU simply don't import `modules/hardware/nvidia.nix` — all vendor env vars live there.