Skip to content

Architecture

github-actions[bot] edited this page Oct 21, 2026 · 34 revisions

dotnix is a flake-driven Home Manager configuration. The flake selects a supported system, imports stable and unstable package sets, applies external overlays, and builds a Home Manager configuration from the shared home.nix module.

The dependency and configuration flow is:

mermaid flowchart LR Inputs["flake inputs"] --> Packages["system package sets"] Packages --> Home["Home Manager modules"] Home --> Outputs["homeConfigurations and apps"] Inputs --> Outputs

flake.nix pins nixpkgs 26.05, nixpkgs-unstable, Home Manager release 26.05, pi.nix, llm-agents, and nur-packages. Home Manager receives the selected package set plus the target username, home directory, and platform-filtered AI-agent packages.

Supported Systems

dotnix exposes three systems:

System Home directory Notable behavior
x86_64-linux /home/<username> Default Linux configuration and CLI package set
aarch64-darwin /Users/<username> Apple Silicon macOS configuration
x86_64-darwin /Users/<username> Intel macOS configuration; unsupported external packages are filtered or built through the configured overlay

The same module graph is used on each target. Individual app modules gate packages and launch agents by platform, while the flake filters AI-agent attributes that are absent for the selected system. macOS-specific application placement and activation behavior is implemented by home.nix.

Clone this wiki locally