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 Nix flake. You add it as an input to your own NixOS configuration and import its module:nixosModules.default output includes both NixOS system modules and Home Manager integration. If you only need Home Manager, use homeModules.default instead.
Flake outputs
| Output | Description |
|---|---|
nixosModules.default | Main NixOS module (includes Home Manager) |
homeModules.default | Home Manager module only |
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.