Skip to main content
Marchyo is a modular NixOS configuration flake providing a curated set of system and Home Manager configurations with sensible defaults. It simplifies managing NixOS systems by offering organized, configurable modules you can enable with simple feature flags.

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-hardware for 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:
{
  inputs.marchyo.url = "github:Jylhis/marchyo";

  outputs = { nixpkgs, marchyo, ... }: {
    nixosConfigurations.myhost = nixpkgs.lib.nixosSystem {
      modules = [
        marchyo.nixosModules.default
        { marchyo.desktop.enable = true; }
      ];
    };
  };
}
The nixosModules.default output includes both NixOS system modules and Home Manager integration. If you only need Home Manager, use homeModules.default instead.

Flake outputs

OutputDescription
nixosModules.defaultMain NixOS module (includes Home Manager)
homeModules.defaultHome Manager module only
overlays.defaultNixpkgs overlay
templates.workstationStarter workstation template
apps.{system}.defaultQEMU 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.
Last modified on April 8, 2026