Feature Flags
Feature flags are the primary way to configure Marchyo. Each flag enables a group of related packages, services, and configurations.
Available flags
Section titled “Available flags”| Option | Default | Description |
|---|---|---|
marchyo.desktop.enable |
false |
Desktop environment (Hyprland, Wayland, audio, bluetooth, fonts) |
marchyo.development.enable |
false |
Development tools (git, Docker, buildah, gh, virtualization) |
marchyo.media.enable |
false |
Media applications (Spotify, MPV, etc.) |
marchyo.office.enable |
false |
Office applications (Papers document viewer, Obsidian) |
Cascading defaults
Section titled “Cascading defaults”When you enable marchyo.desktop.enable, related flags are automatically enabled at a lower priority using lib.mkDefault:
# Enabling desktop...marchyo.desktop.enable = true;
# ...automatically enables these (you can override them):# marchyo.office.enable = true;# marchyo.media.enable = true;# marchyo.webapps.enable = true;Since these use lib.mkDefault, you can override them:
{ marchyo.desktop.enable = true; marchyo.media.enable = false; # Disable media despite desktop being on}Desktop environment
Section titled “Desktop environment”When marchyo.desktop.enable = true, Marchyo configures:
- Hyprland — Wayland compositor with pre-configured keybindings and window rules. Press SUPER+K for a searchable, on-screen cheat sheet of all active keybindings (toggle with
marchyo.keybindingsHelp.enable) - Audio — PipeWire with PulseAudio and ALSA compatibility
- Bluetooth — Enabled and configured
- Fonts — Curated set of fonts including Nerd Fonts
- Theming — Stylix-based consistent theming across GTK, Qt, and terminal apps
- Application launcher — Vicinae
- Terminal emulator — Ghostty (the default; a curated Kitty config also ships, applied only if you opt in with
programs.kitty.enable = true) - Default applications — Configurable via
marchyo.defaults.*
Development tools
Section titled “Development tools”When marchyo.development.enable = true, Marchyo configures:
- Git with Git LFS and GitHub CLI (
gh) - Docker with docker-compose and lazydocker
- Virtualization via QEMU/KVM (libvirtd), with virt-manager and virt-viewer
- Container tools — Buildah, Skopeo
- Build tools — GNU Make, CMake, GCC, pkg-config
- Utilities — direnv (with nix-direnv), jq, yq, network debugging tools (nmap, tcpdump, netcat)