Quick Start
Option 1: Use the workstation template
Section titled “Option 1: Use the workstation template”The fastest way to get started is with the built-in template:
nix flake init -t github:Jylhis/marchyo#workstationThis creates a complete configuration with desktop environment, development tools, and sensible defaults. See the Workstation Template guide for details.
Option 2: Add to an existing flake
Section titled “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.
{ 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. };}Option 3: Home Manager only
Section titled “Option 3: Home Manager only”If you only want the Home Manager modules without the NixOS system modules, use
the exported marchyo.lib.mkHomeConfiguration builder. It wires up the correct
nixpkgs, the third-party Home Manager modules marchyo depends on (noctalia,
vicinae, sops-nix, jotain), and a mock osConfig — a plain
homeManagerConfiguration call with just marchyo.homeManagerModules.default
will not evaluate.
{ inputs.marchyo.url = "github:Jylhis/marchyo";
outputs = { marchyo, ... }: { homeConfigurations.developer = marchyo.lib.mkHomeConfiguration { system = "x86_64-linux"; homeDirectory = "/home/developer"; }; };}The builder takes only system and homeDirectory, and currently manages a
user named developer. It is Linux-only — marchyo exports ready-made
homeConfigurations for x86_64-linux and aarch64-linux (many Home Manager
modules depend on Wayland/Hyprland, so there is no darwin variant; on macOS use
marchyo.lib.mkDarwinSystem instead).
Minimal example
Section titled “Minimal example”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}Next steps
Section titled “Next steps”- Feature Flags — Learn about the available feature groups
- User Configuration — Configure user accounts
- Theming — Customize the look and feel
- Keyboard — Set up keyboard layouts and input methods
- Keybindings & Navigation — The desktop hotkeys you’ll use every day