Status: pre-alpha, system and home layers both real
Seven real modules have landed
System layer: device-gids (stable device group gids),
gshadow-sync (heals /etc/gshadow),
packages (the core USP — declarative Arch/AUR
package access), foreign-service (declarative
configuration over pacman units), and ai-workstation
(a starter profile tuned for ML and data-science workflows).
Home-manager layer: shell (fish, starship,
zoxide, fzf bundle) and dev (git config and direnv/nix-direnv).
Each is real, working code with documented options. Not a demo.
Starting points, not finished
The ai-workstation profile's package lists are
curated starting points, not the only way to use the modules.
No end-to-end example machine config, no integration test suite,
no drop-in base for a whole workstation yet. This repository is
being extracted from private use, one module at a time.
Use modules independently today
You can import any of the five modules on their own right now (see Usage in the README). What you cannot yet do is point a whole Arch/CachyOS machine at nixarch and expect a complete, integrated, out-of-the-box declarative base — that's the rest of the roadmap.
Seven working modules
packages
The core USP: declarative access to Arch's entire rolling AUR breadth without switching distros. Declare packages once, get them applied reproducibly across machines via Nix without giving up Arch's "nearly everything" package culture. Works with both official repos and the AUR.
device-gids
Pins shared device groups (render,
video, input, tty, etc.)
to stable, caller-chosen gids. Automatically migrates
pre-existing groups via groupmod if they land at a
different gid. Includes an optional devpts lockstep for keeping
/dev/pts in sync when renumbering tty.
gshadow-sync
Heals /etc/gshadow inconsistencies that arise when
userborn writes /etc/group but not
/etc/gshadow. Runs an idempotent grpconv
only when the two have actually diverged. Carries over to NixOS
unchanged for the same reason.
foreign-service
Declarative configuration over pacman-managed systemd units without owning or overriding them. Treat pacman services as data: configure their behavior, enable/disable, set dependencies, all expressed as Nix options on top of the distro's native package management.
ai-workstation
A curated starter profile combining the system-layer modules into a coherent base for ML engineers and data scientists: GPU support, development toolchains, scientific Python/R stacks, and CUDA/ROCm layers. The package selections are starting points, not dogma.
shell (home-manager)
A curated user-layer bundle for shell environment: fish, starship prompt, zoxide directory navigation, and fzf for fuzzy search. Declaratively configured and reproducible across machines; packages source from the system's Arch/pacman setup.
dev (home-manager)
Declarative git configuration (identity, signing, aliases) and direnv/nix-direnv integration for project-scoped Nix shells. Keeps development environments reproducible and machine-portable; lean and config-only, with toolchains supplied via system-layer packages.
Roadmap (planned, not yet built)
Integration test suite
Behavior-driven tests for each module in isolation and in combination, run against fresh Arch/CachyOS installs to verify the system and home-manager layers compose correctly.
End-to-end example config
A worked, runnable machine configuration that imports all seven modules across both system and home-manager layers, and can bootstrap a complete AI-engineer workstation from a fresh Arch install in a single apply.
Additional system-manager modules
More building blocks extracted from real use: kernel tuning, networking, storage, and other foundational concerns as they mature and stabilize.
Once these land, nixarch will be usable as a true drop-in base layer for new Arch/CachyOS machines.