# nixos One flake, one machine: x86_64 UEFI desktop. Hyprland + greetd autologin, Zen+Tridactyl, neovim, zsh+starship. ``` flake.nix all config (the `pc` system module + the `home` module) hardware-configuration.nix generic x86_64 UEFI profile — mounts by label, as-is config/ raw configs: hypr fuzzel nvim ``` Set `time.timeZone` in the `pc` module. Monitors, workspace placement and keybinds live in `config/hypr/hyprland.conf`. ## Apply The flake output is named after the hostname, so no `#target` is needed: ```sh sudo nixos-rebuild switch --flake ~/nixos nix flake update && sudo nixos-rebuild switch --flake ~/nixos # update ``` Roll back = pick an older generation at boot. ## Install No hardware generation needed — `hardware-configuration.nix` is generic and mounts by the labels below. Boot the NixOS ISO, `sudo -i`: ```sh parted /dev/nvme0n1 -- mklabel gpt \ mkpart ESP fat32 1MiB 512MiB set 1 esp on \ mkpart primary 512MiB 100% mkfs.fat -F32 -n NIXBOOT /dev/nvme0n1p1 mkfs.ext4 -L NIXROOT /dev/nvme0n1p2 mount /dev/disk/by-label/NIXROOT /mnt && mkdir -p /mnt/boot mount /dev/disk/by-label/NIXBOOT /mnt/boot git clone /mnt/root/nixos && cd /mnt/root/nixos nixos-install --flake .#pc && reboot ``` Exotic storage controller won't boot? Add its module to `availableKernelModules` in `hardware-configuration.nix` (`nixos-generate-config --show-hardware-config` lists it). ## After first boot `passwd` (ships `initialPassword = "changeme"`). If you land on a tty instead of Hyprland, change greetd's `uwsm start hyprland` → `Hyprland`.