Features
- Modular architecture — Configurations broken into small, manageable modules for desktop, development, media, and office environments.
- Feature flags — Enable entire stacks with a single boolean (
marchyo.desktop.enable = true). - Home Manager integration — Seamless user environment management for dotfiles and user-level applications.
- Hardware support — Integration with
nixos-hardwarefor common devices, including NVIDIA PRIME hybrid graphics. - Extensive options — Fine-grained control through the
marchyo.*option namespace.
How it works
Marchyo is distributed as a batteries-included Nix flake. Add it as your only input and build withmarchyo.lib.mkNixosSystem — it wires the correct nixpkgs, Home Manager, stylix, overlay and marchyo modules for your system automatically:
nixosModules.default (NixOS system modules + Home Manager integration). On x86_64-darwin, marchyo.lib.mkDarwinSystem transparently pins the stable nixos-26.05 package set (the last release supporting Intel macOS); every other system rides unstable. If you only need Home Manager, use homeManagerModules.default.
The raw
marchyo.inputs.nixpkgs passthrough is always unstable. For a system-correct, overlay-applied package set, use marchyo.legacyPackages.<system> (x86_64-darwin → stable 26.05, others → unstable) or the marchyo.lib.* builders.Flake outputs
| Output | Description |
|---|---|
lib.mkNixosSystem / lib.mkDarwinSystem | System-aware builders (recommended entry point) |
lib.mkNixOnDroidConfiguration | nix-on-droid (Android terminal) builder, aarch64; reuses the HM-agnostic generic modules (HM 24.05) |
nixosModules.default | Main NixOS module (includes Home Manager) |
homeManagerModules.default | Home Manager module only |
legacyPackages.{system} | System-aware nixpkgs + overlay (x86_64-darwin → stable 26.05) |
overlays.default | Nixpkgs overlay |
templates.workstation | Starter workstation template |
apps.{system}.default | QEMU VM runner (x86_64-linux) |
checks.{system}.* | Evaluation test suite |
All options live under marchyo.*
Every custom option is defined in a single file (modules/nixos/options.nix) under the marchyo.* namespace. Browse the Configuration section for the full reference.