Introduction
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
Section titled “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
Section titled “How it works”Marchyo is distributed as a batteries-included Nix flake. Add it as your only input and build with marchyo.lib.mkNixosSystem — it wires the correct nixpkgs, Home Manager, stylix, overlay and marchyo modules for your system automatically:
{ inputs.marchyo.url = "github:Jylhis/marchyo";
outputs = { marchyo, ... }: { nixosConfigurations.myhost = marchyo.lib.mkNixosSystem { system = "x86_64-linux"; modules = [ { marchyo.desktop.enable = true; } ]; }; };}The builder bakes in 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.
Flake outputs
Section titled “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) |
nixosModules.hardware.<profile> |
nixos-hardware per-machine profiles, re-exported (e.g. lenovo-thinkpad-x1-9th-gen, framework-13-7040-amd, common-pc-ssd) |
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 (Linux systems only) |
All options live under marchyo.*
Section titled “All options live under marchyo.*”Every custom option lives under the marchyo.* namespace, declared across the auto-discovered files in modules/nixos/options/ (one file per logical namespace). Browse the Configuration section for the full reference.