Skip to content

Feature Flags

Feature flags are the primary way to configure Marchyo. Each flag enables a group of related packages, services, and configurations.

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)

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
}

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.*

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)