# 👑 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.

---

## 📥 Installation

### 1. Try it in a VM (Recommended)
Verify the experience without touching your hardware:
```bash
./bin/nomarchy-test-installer
```
This builds a full graphical VM of the installer environment. Once inside, click the **Install Nomarchy** icon or run `sudo /etc/install-nomarchy.sh`.

### 2. Build the Installer ISO
To install on physical hardware, generate your own bootable image:
```bash
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:
```bash
sudo /etc/install-nomarchy.sh
```
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.
- **Profiles:** One-click setups for Development, Gaming, and Media Production.

---

## 🛠️ 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:*
```nix
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:*
```nix
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:

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