Files
nixos-4screen/docs/nixos_build_spec.md
sam rolfe 556813c3fa fix: use ~/dotfiles, update docs, and disable Docker
Co-authored-by: aider (openrouter/openai/gpt-5.2) <aider@aider.chat>
2026-02-08 16:40:45 +11:00

3.5 KiB

NixOS Build Spec (sam-4screen-desktop)

Disk / Boot (WIPE ENTIRE NVMe DISK)

Target disk: /dev/nvme0n1

  • Size: 953.87 GiB (1024209543168 bytes), 2000409264 sectors
  • Model: PM951 NVMe SAMSUNG 1024GB
  • NVMe serial: S2FZNXAH301424
  • NVMe WWID: nvme.144d-2020202020205332465a4e584148333031343234-504d393531204e564d652053414d53554e4720313032344742-00000001
  • Sector size (logical/physical): 512 bytes / 512 bytes

DECISION (CONFIRMED):

  • Do NOT keep Windows.
  • Wipe the entire /dev/nvme0n1 (all existing partitions will be deleted/overwritten).

Installer safety:

  • Install target is NVMe only. Do not select /dev/sdX devices in the installer.
  • Device names like /dev/sdb, /dev/sdc can change across boots; always rely on UUID/label when mounting non-target disks.

Verification commands (run before wiping, if you want one last check):

  • lsblk -o NAME,SIZE,TYPE,FSTYPE,LABEL,UUID,MOUNTPOINTS
  • sudo fdisk -l /dev/nvme0n1

Boot method:

  • UEFI
  • Bootloader: systemd-boot

Filesystem / layout:

  • Root filesystem: Btrfs (with subvolumes)
  • Encryption: none
  • Swap: zram
  • Hibernate: no
  • /home: Btrfs subvolume

Partitioning approach:

  • Manual in the installer (no disko)

Recommended layout:

  • New GPT on /dev/nvme0n1
  • EFI System Partition (vfat), mounted at /boot
  • Btrfs partition for the rest
    • Subvolume @ mounted at /
    • Subvolume @home mounted at /home

IMPORTANT:

  • hosts/sam-4screen-desktop/hardware-configuration.nix is currently a placeholder.
  • During install after mounting to /mnt:
    1. Run: nixos-generate-config --root /mnt
    2. Copy: /mnt/etc/nixos/hardware-configuration.nix into: hosts/sam-4screen-desktop/hardware-configuration.nix

Other attached disks (DO NOT FORMAT)

  • /dev/sda (240GB) model: Patriot Burst El (KEEP)
    • /dev/sda1: Microsoft reserved partition (~15MiB)
    • /dev/sda2: NTFS label "Back Up" (keep)
  • TempBackup (ext4) UUID=4f9c4bd5-fea5-408f-9370-731fc095da3f (~465GiB/500GB) (KEEP)
    • Model: WD5000BEVT-22ZAT
    • Serial: WD-WXNY08ND2684
    • NOTE: device name may appear as /dev/sdX depending on boot/USB order; identify by UUID/label/model.
  • Integral300 (ext4) UUID=27febd74-20aa-4a3a-92c1-6fdd1ad7e88e (~298GiB/320GB)
    • Mount at /data
    • NOTE: device name may change; config always uses /dev/disk/by-uuid.
  • XPSystemDrive (ext4) UUID=82c994f1-9adb-49e4-ba1e-5b6e5ccbd49b (~149GiB/160GB) (KEEP)
    • Model: HTS541616J9SA00 (Hitachi)
    • NOTE: device name may appear as /dev/sdX depending on boot/USB order; identify by UUID/label/model.

Networking

  • Use NetworkManager

Static IPv4 policy (CONFIRMED):

  • Static IPv4 should be applied to Wi-Fi SSID:
    • SSID / connection id: "Aussie Broadband 8729"
    • Interface: wlp4s2
    • IP: 192.168.20.27/24
    • Gateway: 192.168.20.1
    • DNS: 192.168.20.35, 192.168.20.13
  • Wired enp0s31f6: no static IP required for now

Secrets policy:

  • Do not commit Wi-Fi PSKs to git.
  • Static IP enforcement is implemented via a NetworkManager dispatcher script.

Data drive mount

  • Integral300 ext4 UUID=27febd74-20aa-4a3a-92c1-6fdd1ad7e88e
  • Mountpoint on NixOS: /data (preferred)

Dotfiles policy

  • Dotfiles live on the installed system at: ~/dotfiles
  • Do not depend on /data for dotfiles.

Desktop

  • Primary compositor: Niri
  • Display/login manager: greetd + tuigreet
  • Session start command: niri --session (do not use niri-session)
  • GPU: Intel HD 630 + NVIDIA Quadro P620
  • Display appears to be driven by NVIDIA Quadro P620 (observed /dev/fb0 on Ubuntu scan). Treat NVIDIA as primary unless proven otherwise.

Secrets policy

  • No API keys or WiFi PSKs committed to git