feat: build the Skeleton and a minimal neogaia Host

Stand up the walking skeleton the rest of the laptop MVI extends and
re-verifies against: the whole neogaia Host evaluates and its system
toplevel builds (nix flake check green).

- flake.nix: hand-rolled flake (no flake-parts). Base nixos-unstable, plus
  nixpkgs-unstable and nixos-25.05 for the per-package unstable/stable
  overlays, home-manager (nixpkgs followed), and chaotic-nyx (deliberately
  not following our nixpkgs, to keep its binary cache usable). checks build
  each Host toplevel.
- lib/: trimmed helper lib — the Auto-loader (recursive .nix discovery, no
  null-placeholder hack), the host-builder, and the script-from-file helper.
  Deps inherited explicitly; no with lib.my, no nixosModules output.
- system/: shared base config — the unstable/stable overlays, the user
  option (defaults to alexion, in wheel, drives system + home-manager user
  in lockstep), flakes, git, and home-manager as a NixOS module.
- modules/example.nix: Auto-loader / Enable-convention reference Module,
  inert until enabled.
- hosts/neogaia/: minimal laptop Host — placeholder filesystems, bootloader,
  and hardware profile.
- CLAUDE.md: project agent instructions with a Gotchas section (nix on the
  CachyOS dev host, the chaotic overlay/cache behaviour, the Gitea CLI).
This commit is contained in:
2026-07-18 08:05:36 -04:00
parent d5b67947f9
commit 9b36cfadd6
9 changed files with 478 additions and 0 deletions

26
hosts/neogaia/default.nix Normal file
View File

@@ -0,0 +1,26 @@
{ ... }:
# neogaia — Dell XPS 13 9380 laptop.
#
# Minimum viable Host: enough to evaluate and build the system toplevel. The
# real disk layout (disko: LUKS + btrfs + zram), the CachyOS kernel, networking,
# and the terminal Modules arrive in later tasks; the placeholders below are
# replaced by disko in task 0002.
{
imports = [ ./hardware-configuration.nix ];
system.stateVersion = "25.05";
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
# Placeholder filesystems so the toplevel builds; superseded by the disko
# layout in task 0002.
fileSystems."/" = {
device = "/dev/disk/by-label/nixos";
fsType = "ext4";
};
fileSystems."/boot" = {
device = "/dev/disk/by-label/BOOT";
fsType = "vfat";
};
}

View File

@@ -0,0 +1,20 @@
{ lib, modulesPath, ... }:
# Placeholder hardware profile — regenerated on the target machine at install
# time (`nixos-generate-config` / `disko-install`). Carries only enough for the
# toplevel to evaluate: the host platform and the XPS 13's initrd modules.
{
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
boot.initrd.availableKernelModules = [
"xhci_pci"
"thunderbolt"
"nvme"
"usb_storage"
"sd_mod"
];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
}