> ## Documentation Index
> Fetch the complete documentation index at: https://docs.jylhis.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Quick Start

> Get up and running with Marchyo in minutes

## Option 1: Use the workstation template

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

```bash theme={}
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](/guides/workstation-template) for details.

## Option 2: Add to an existing flake

Add Marchyo as your only input and build with `marchyo.lib.mkNixosSystem`. It
selects the correct nixpkgs (unstable; stable nixos-26.05 for x86\_64-darwin),
home-manager, stylix, overlay and marchyo modules automatically — you supply
only your own config modules.

```nix theme={}
{
  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";
          };
        }
      ];
    };

    # macOS uses marchyo.lib.mkDarwinSystem the same way. On x86_64-darwin it
    # transparently pins the stable nixos-26.05 set (the last release supporting
    # Intel macOS); aarch64-darwin and Linux ride unstable.
  };
}
```

<Note>
  You can still import `marchyo.nixosModules.default` into your own
  `nixpkgs.lib.nixosSystem` call, but then you must pick the right nixpkgs per
  system yourself. The raw `marchyo.inputs.nixpkgs` passthrough is always
  **unstable**; for a system-correct, overlay-applied package set use
  `marchyo.legacyPackages.<system>`.
</Note>

## Option 3: Home Manager only

If you only want the Home Manager modules without the NixOS system modules:

```nix theme={}
{
  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
    marchyo.url = "github:Jylhis/marchyo";
    home-manager.url = "github:nix-community/home-manager";
  };

  outputs = { nixpkgs, marchyo, home-manager, ... }: {
    homeConfigurations.myuser = home-manager.lib.homeManagerConfiguration {
      pkgs = nixpkgs.legacyPackages.x86_64-linux;
      modules = [
        marchyo.homeModules.default
      ];
    };
  };
}
```

## Minimal example

A minimal configuration that enables only the desktop environment:

```nix theme={}
{
  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:

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

## Next steps

* [Feature Flags](/configuration/feature-flags) — Learn about the available feature groups
* [User Configuration](/configuration/users) — Configure user accounts
* [Theming](/configuration/theming) — Customize the look and feel
* [Keyboard](/configuration/keyboard) — Set up keyboard layouts and input methods
