Ghostty needs OpenGL 4.3; older GPUs (Intel HD 4000) top out at 4.2. Installer probes glxinfo and writes settings.terminal=kitty into theme-state when below the floor. modules/home/kitty.nix enables Kitty with the same palette, mono font, and opacity as Ghostty so the fallback still looks like Nomarchy. Default machines stay Ghostty-only (no kitty in the HM closure). Doctor and calendar still invoke Ghostty by class — V3 on Acer for SUPER+Return. Verified: V0 flake check; installer-safety; HM with terminal=kitty builds themed kitty.conf + TERMINAL=kitty; default template has no kitty bin.
7.1 KiB
Minimum system requirements
What Nomarchy expects of a machine. This is a living floor, not a marketing sheet — numbers come from measured installs and known software floors (Ghostty, NixOS, the ISO). When a real machine pushes a bound, update this file in the same change.
Related: HARDWARE.md (profiles/drivers), TESTING.md (ISO/VM), README § install.
Supported platform (hard)
| Requirement | Floor | Why |
|---|---|---|
| Architecture | x86_64 | Only target the flake builds today |
| Firmware | UEFI | Installer uses systemd-boot; BIOS/legacy is LATER |
| Install path | Whole disk (disko) | No dual-boot / partial-disk path yet |
Graphics (default desktop)
The default terminal is Ghostty, which requires OpenGL 4.3 (desktop profile). That is a GPU generation limit, not a “driver not installed” problem:
| Generation (examples) | Typical max OpenGL (Mesa) | Default Ghostty |
|---|---|---|
| Ivy Bridge / HD 4000 (e.g. Acer Aspire M5-481T, ~2012) | 4.2 | Does not start (OpenGLOutdated) |
| Haswell and newer Intel iGPU, most AMD GCN+, discrete GPUs of the last decade | ≥ 4.3 | OK |
| Dell XPS 9350 (Skylake) | ≥ 4.3 | OK (verified 2026-07) |
Why 4.2 and not 4.3 on HD 4000? The silicon and Mesa’s feature set for that generation top out at OpenGL 4.2. No package upgrade on the distro can turn Ivy Bridge into a 4.3 device. Ghostty is choosing a modern GL baseline on purpose.
Install-time fallback (shipped): when nomarchy-install can probe OpenGL
(via glxinfo on the live session) and the version is < 4.3, it writes
settings.terminal = "kitty" into the machine’s theme-state.json. Kitty is
enabled and themed from the same JSON as Ghostty (palette, mono font,
opacity). SUPER+Return then launches Kitty. Ghostty stays installed (doctor /
calendar classed windows still call it — those helpers may still fail on old
GL until a later follow-up).
If the probe fails (no display / headless VM), Ghostty remains the default — do not guess. Existing installs can set the same by hand:
"settings": { "terminal": "kitty" }
then nomarchy-home (or home-manager switch).
Other Wayland clients vary; Hyprland itself is usually fine on these GPUs.
CPU and memory
| Resource | Practical minimum | Comfortable |
|---|---|---|
| CPU | 64-bit x86_64, dual-core | Quad-core or better (rebuilds) |
| RAM | 8 GiB | 16 GiB+ |
NixOS + Home Manager rebuilds and browser/Electron apps are memory-hungry. Hibernation (default installer path) sizes a swapfile ≈ RAM, so low RAM also means less disk eaten by swap — but also less headroom when building.
Storage (the important one)
Nomarchy is a full NixOS desktop with:
- The Nix store — every generation keeps package closures; updates add new paths until you GC. Many packages appear once per generation when inputs move.
- Home Manager generations — desktop switches and
nomarchy-homeleave profiles behind until cleaned. - BTRFS + snapper —
@snapshotstimeline (hourly/daily) and pre-rebuild snaps. Excellent for recovery; they retain data and grow with how full the live filesystem is. - Optional hibernation swapfile — default size = RAM (e.g. 16 GiB RAM → 16 GiB swapfile on disk).
Closure size is not the same as disk use after hardlink optimisation and is not the ISO size (see ROADMAP § chromium / #121 measurements). Still, plan for growth, not for a single install footprint.
Measured / known artifacts (order of magnitude)
| Artifact | Size (approx.) | Source |
|---|---|---|
| Offline live ISO | ~8.1 GiB | Built image, 2026-07 (#103 era) |
| Template HM closure (nominal) | ~9.4 GiB | nix path-info style figures in ROADMAP |
| Desktop store weight (uncompressed, pre-dedupe order) | tens of GiB | ISO pin / offline pin analysis (#120) |
A fresh install on empty disk is smaller than a machine that has been updated and snapshotted for months.
Recommended free disk (whole-disk install)
These are planning floors for the target SSD/HDD the installer will wipe and use entirely — not “free space beside Windows.”
| Use | Capacity | Notes |
|---|---|---|
| Absolute minimum to finish install + first boot | ≥ 40 GiB | Tight; little room for GC delay or snapshots |
| Realistic daily driver | ≥ 64 GiB | Short GC/snap retention still required |
| Comfortable (updates + snapper + apps) | ≥ 128 GiB | Default recommendation |
| Power user / many generations / big apps | 256 GiB+ | Dev toolchains, Steam, local datasets |
Plus swap: if you keep hibernation (default), add ~RAM on top of the
table (installer creates /swap/swapfile sized to RAM unless you set 0).
Example: 16 GiB RAM laptop → plan ≥ 128 GiB disk, of which ~16 GiB is swapfile, leaving room for store + snapshots.
Why Nix “duplicates everything”
- Each system and home generation points at a closure of store
paths. Unchanged paths are shared (same
/nix/store/…hash); changed inputs pull new paths. After several updates you hold old + new untilnix-collect-garbage/ generation deletion. - Snapper snapshots the BTRFS subvolumes. A snapshot is cheap until you rewrite a lot of data; then it retains the old blocks. Timeline + rebuild snaps mean “I deleted that 2 GB download” may not free space until snaps expire.
- The live ISO is large because it pins an offline install closure; that is a download/USB cost, not permanent free space on the installed machine after install (the installed system has its own store).
Hygiene (user-facing, later doc links): delete old generations, run GC, tune snapper retention — see RECOVERY.md and the System › Recovery menu. This requirements page only states why the disk fills up.
What we explicitly do not require
| Non-requirement | Note |
|---|---|
| NVIDIA as first-class | Deferred past v1 (PROPOSED); community/docs only |
| Secure Boot enrolled out of the box | Not the current install path |
| Touch / tablet as primary input | Untested as a bar |
| < 8 GiB RAM as a supported target | May boot; rebuilds and browsers will thrash |
Machines that defined these bounds
| Machine | Role |
|---|---|
| Acer Aspire M5-481T (~2012, Intel HD 4000, OpenGL 4.2) | Ghostty floor (#95); install bake / old-HW QA |
| Dell XPS 9350 (Skylake) | Install bake (#123); Ghostty OK |
| AMD dev box / Latitude / T14s | Ongoing V3 (HARDWARE-QUEUE) |
When you install on something older or smaller than the table, file what
broke in agent/BACKLOG.md and tighten this page.
Related work
| Item | Topic |
|---|---|
| BACKLOG #95 | Ghostty fallback when OpenGL < 4.3 |
| BACKLOG #120 | Lighter netinstall ISO (download size ≠ installed size) |
| BACKLOG #123 | Installer HM pre-activate (first-boot polish) |
| BACKLOG #124 | Flake pin vs main/v1 lag after install |