Skip to content

Quick Start

The fastest way to get started is with the built-in template:

Terminal window
nix flake init -t github:Jylhis/marchyo#workstation

This creates a complete configuration with desktop environment, development tools, and sensible defaults. See the Workstation Template guide for details.

Add Marchyo as your only input and build with marchyo.lib.mkNixosSystem. It selects nixpkgs (unstable), home-manager, overlay and marchyo modules automatically — you supply only your own config modules.

{
inputs.marchyo.url = "github:Jylhis/marchyo";
outputs = { marchyo, ... }: {
nixosConfigurations.myhost = marchyo.lib.mkNixosSystem {
system = "x86_64-linux";
modules = [
./hardware-configuration.nix
{
marchyo.desktop.enable = true;
marchyo.development.enable = true;
marchyo.users.myuser = {
fullname = "Your Name";
email = "your.email@example.com";
};
}
];
};
};
}

Not supported. marchyo’s Home Manager modules read the NixOS options (osConfig.marchyo.*) as their single source of truth, so they only evaluate under the marchyo NixOS module, which imports them for every marchyo.users entry.

A minimal configuration that enables only the desktop environment:

{
marchyo.desktop.enable = true;
marchyo.users.myuser = {
fullname = "Your Name";
email = "you@example.com";
};
}

Enabling marchyo.desktop.enable automatically enables media and office applications via cascading defaults. You can override any of these:

{
marchyo.desktop.enable = true;
marchyo.media.enable = false; # Override: disable media apps
}