Bernardo Magri a7dbca80a6 fix: resolve VM startup failures, broken Hyprland functionality, and theme integration
- Fix QEMU syntax and root filesystem conflicts in vm-guest.nix.
- Repair numerous broken relative paths and imports across the codebase.
- Set 'summer-night' as the default distro theme with full branding integration.
- Implement declarative system-wide font installation including the 'nomarchy' font.
- Fix Waybar startup by dynamically generating theme-aware CSS.
- Restore Hyprland keybindings (Super+Return, Super+Space) and wallpaper loading.
- Add missing scripts: nomarchy-launch-walker, nomarchy-toggle-waybar, nomarchy-refresh-config.
- Enable UWSM and correctly disable conflicting Hyprland systemd services.
2026-04-12 20:54:03 +01:00

👑 Nomarchy

Nomarchy is a professional-grade NixOS distribution that replicates the Omarchy Wayland workflow with a strictly declarative, flake-based architecture. It provides a highly polished, "it just works" experience for power users who want a beautiful Hyprland environment without sacrificing the reliability of NixOS.

Key Features

  • Purely Declarative: Your entire desktop—themes, fonts, wallpapers, and toolchains—is defined in code.
  • Modular Merging Architecture: Distro code and user code are strictly separated. You can update the distro core without ever touching or breaking your personal configurations.
  • Interactive "Smart" Installer: Detects hardware, sets up networking, localizes timezones/keymaps, and offers multi-select software profiles.
  • Erase Your Darlings (Optional): Optional BTRFS root-wipe on boot ensures your system stays pristine and 100% declarative.
  • Dynamic Theming Engine: 20+ built-in themes with instant UI feedback via IPC (swww, waybar, and stylix).
  • Portable State (nomarchy-sync): Easily backup and sync your declarative config and dynamic state (theme/wallpaper choices) to a private Git repo.

📂 Component-Based Architecture

Nomarchy uses a Feature-Centric Directory Structure. Instead of grouping files by type (e.g., all scripts in one folder, all configs in another), everything related to a specific component is colocated.

  • core/: Foundational OS & User defaults (Bootloader, Audio, Bluetooth, basic shell).
  • features/: Isolated modules containing Nix logic, raw dotfiles, and scripts for a specific app or service (e.g., features/desktop/waybar/).
  • themes/: The global theming engine. It holds pure color data and logic. Theme-specific app layouts (like a custom Waybar layout for summer-night) are stored directly inside the app's feature folder (features/desktop/waybar/themes/), solving the matrix problem of theming.

📥 Installation

Verify the experience without touching your hardware:

./bin/utils/nomarchy-test-installer

This builds a full graphical VM of the installer environment. Once inside, click the Install Nomarchy icon or run nomarchy-install.

2. Build the Installer ISO

To install on physical hardware, generate your own bootable image:

nix build .#nixosConfigurations.installerIso.config.system.build.isoImage

The ISO will be located at ./result/iso/nixos-*.iso. Flash it to a USB drive and boot.

3. Run the Installer

Once booted into the Live environment, launch the installer:

nomarchy-install

The wizard will guide you through:

  • Networking: An interactive wizard to connect to Wi-Fi if needed.
  • Hardware: Optimized profiles for Dell XPS, Framework, Apple T2, and more.
  • Storage: Choice between Standard Ext4 or Encrypted BTRFS with optional Impermanence.
  • Localization: Searchable timezones and keyboard layout selection.

🛠️ Configuration & Usage

Nomarchy uses a "Downstream" model. After installation, your configuration lives in /etc/nixos/ and is split into three main parts:

1. Distro Core (Upstream)

Managed via the public Git repository. This is the engine. You should generally not modify files here.

2. Your System (system.nix)

Add system-wide packages, services, and hardware tweaks here. Example: Adding a persistent directory for Docker if using Impermanence:

environment.persistence."/persist" = {
  directories = [ "/var/lib/docker" ];
};

3. Your User Environment (home.nix)

Add user-level packages, aliases, and dotfiles here. Example: Overriding the default terminal:

nomarchy.home.terminal = "kitty";

Applying Changes

After editing your files, apply them instantly. IMPORTANT: Nomarchy requires the --impure flag for evaluation. You MUST use the following aliases rather than standard NixOS commands:

sys-update  # Rebuilds the NixOS system (Runs: sudo nixos-rebuild switch --flake .#default --impure)
env-update  # Reloads your Home Manager environment (Runs: home-manager switch --flake .#default --impure)

🚀 Commands & Keybindings

Keybinding Action
Super + Alt + Space Theme Selector (Walker)
Super + Ctrl + Space Font Selector
Super + Shift + Space Wallpaper Selector
Super + Space App Launcher (Walker)
Super + Return Open Terminal
Super + Q Close Window

Utility Scripts

Nomarchy includes 150+ productivity scripts available in your PATH:

  • nomarchy-sync push <repo>: Backup your setup to Git.
  • nomarchy-theme-bg-next: Cycle to the next wallpaper in the current theme.
  • nomarchy-doctor: (Coming Soon) Diagnose system health and state.

Built with ❤️ using NixOS, Hyprland, Stylix, and the spirit of Omarchy.

Description
NixOS based distribution with Omarchy flavour
Readme 182 MiB
Languages
Shell 65.4%
Nix 25.6%
Smarty 2.4%
CSS 2.3%
Lua 2.1%
Other 2.2%