Some checks failed
Check / eval (push) Has been cancelled
The machine flake's git-tracked settings file is system state, not "theme" only — rename it to state.json. CLI becomes nomarchy-state-sync with a nomarchy-theme-sync symlink for scripts and muscle memory. Eval (mkFlake, doctor, lifecycle) still accepts theme-state.json; the next write migrates to state.json and removes the legacy file. Documented in MIGRATION.md; drop the CLI alias after release notes.
127 lines
4.9 KiB
Markdown
127 lines
4.9 KiB
Markdown
# Coming from Omarchy
|
||
|
||
Nomarchy and [Omarchy](https://omarchy.org) are cousins: the same
|
||
Hyprland + Waybar desktop feel, the same opinionated "beautiful out of the
|
||
box," one-command theming, and a keyboard-driven menu. If you liked
|
||
Omarchy, you'll be at home here in minutes.
|
||
|
||
The one real difference is the **foundation**:
|
||
|
||
| | Omarchy | Nomarchy |
|
||
|------------|---------|----------|
|
||
| Base | Arch Linux | NixOS |
|
||
| Config | **imperative** dotfiles you edit in `~/.config`, live | **declarative** — built from a flake; changed via the menu or your `home.nix`/`system.nix` |
|
||
| Packages | `pacman` / `yay` / AUR, anytime | `nixpkgs` — added to your flake (no AUR) |
|
||
| Recovery | reinstall / restore dotfiles | **every rebuild is a bootable generation** — roll back from the boot menu |
|
||
|
||
This page maps the day-to-day deltas. Nothing about the *desktop* has to
|
||
be relearned — only *how you change it*.
|
||
|
||
---
|
||
|
||
## The one mental shift: declarative, not dotfiles
|
||
|
||
In Omarchy you open a file under `~/.config`, save it, and the change is
|
||
live. In Nomarchy the whole desktop is **built from your flake**, so you
|
||
change it one of two ways:
|
||
|
||
1. **The menu** (`SUPER+M`) — the everyday path. It writes the change into
|
||
your flake's state and rebuilds for you. You never hand-edit a config
|
||
for theming, night light, wallpaper, keyboard layout, power, etc.
|
||
2. **Your flake** — for anything the menu doesn't cover, edit
|
||
`home.nix` / `system.nix` (a handful of `nomarchy.*` options and plain
|
||
Home-Manager/NixOS), then run a rebuild.
|
||
|
||
The payoff for the extra indirection: **a bad change never bricks you.**
|
||
Every `nomarchy-rebuild` is a new NixOS generation; if one misbehaves,
|
||
reboot and pick the previous entry from the boot menu — your files
|
||
(`/home`) are never touched. See [RECOVERY.md](RECOVERY.md).
|
||
|
||
> Editing `~/.config/hypr/*` by hand won't stick — Home-Manager owns those
|
||
> files and rewrites them on the next rebuild. Change the source (menu or
|
||
> flake) instead.
|
||
|
||
---
|
||
|
||
## Install
|
||
|
||
| | |
|
||
|---|---|
|
||
| **Omarchy** | Run the bootstrap on a fresh Arch install. |
|
||
| **Nomarchy** | Boot the ISO and run **`nomarchy-install`** (single-disk UEFI, optional LUKS, hibernation-ready swap). |
|
||
| **Already on NixOS?** | Convert in place, no reformat — [MIGRATION.md](MIGRATION.md). |
|
||
|
||
---
|
||
|
||
## Keybindings (they'll feel familiar)
|
||
|
||
The full, always-current list is one keypress away: **`SUPER+?`** opens the
|
||
live cheatsheet — you never have to memorize this table.
|
||
|
||
| Key | Action |
|
||
|-----|--------|
|
||
| `SUPER+Return` | Terminal |
|
||
| `SUPER+Space` | App launcher |
|
||
| `SUPER+M` | Main menu (theme, network, audio, power, tools…) |
|
||
| `SUPER+T` | Theme picker |
|
||
| `SUPER+SHIFT+T` | Next wallpaper |
|
||
| `SUPER+E` | File manager (yazi) |
|
||
| `SUPER+X` | Power menu (lock / suspend / hibernate / reboot …) |
|
||
| `SUPER+CTRL+L` | Lock screen |
|
||
| `SUPER+?` | Keybindings cheatsheet |
|
||
| `Print` | Screenshot region → clipboard |
|
||
| `SUPER+CTRL+<key>` | Jump straight to a menu module (clipboard `V`, calc `C`, emoji `E`, capture `S`, …) |
|
||
|
||
---
|
||
|
||
## Theming
|
||
|
||
Both distros reskin everything from one place. In Nomarchy:
|
||
|
||
- **`SUPER+T`** (or `nomarchy-menu theme`) — pick from 24 presets with live
|
||
previews; it rebuilds and applies to Hyprland, Waybar, the terminal,
|
||
btop and GTK/Qt at once.
|
||
- Or from a shell: `nomarchy-state-sync apply <slug>` (e.g. `gruvbox`,
|
||
`rose-pine`, `nord`).
|
||
- Tweak gaps / rounding / fonts / opacity / icon pack without leaving the
|
||
theme system — see [OVERRIDES.md](OVERRIDES.md). One git-tracked JSON
|
||
(`state.json`) is the single source of truth.
|
||
|
||
---
|
||
|
||
## Installing software
|
||
|
||
There is no AUR. Two paths:
|
||
|
||
- **Keep it:** add the package to `home.packages` in your flake's
|
||
`home.nix`, then `nomarchy-home`. It's now declared, reproducible, and
|
||
part of your rollback history. A curated default app set already ships —
|
||
you extend the list.
|
||
- **Just this once:** `nix shell nixpkgs#<pkg>` drops you into a shell with
|
||
it on `PATH`, gone when you exit — the equivalent of a throwaway install.
|
||
|
||
Search with `nsearch <name>` (`nix search nixpkgs`).
|
||
|
||
---
|
||
|
||
## Update & roll back
|
||
|
||
| | Omarchy | Nomarchy |
|
||
|---|---|---|
|
||
| **Update** | update command | `nomarchy-pull` (bump inputs), then `nomarchy-rebuild` (system) + `nomarchy-home` (desktop) |
|
||
| **Roll back** | restore dotfiles | reboot → pick the previous **generation** in the boot menu (or a snapper snapshot) |
|
||
| **Health check** | — | `nomarchy-doctor` (System › Doctor) — read-only pass/fail sheet, each ✖ shows its fix |
|
||
|
||
On a failed rebuild, `nomarchy-rebuild` / `nomarchy-home` print the last
|
||
log lines and point you at `nomarchy-doctor` and [RECOVERY.md](RECOVERY.md)
|
||
— you're never left guessing.
|
||
|
||
---
|
||
|
||
## What's exactly the same
|
||
|
||
Hyprland tiling and feel, Waybar, the rofi-driven menu, the blur/rounding
|
||
aesthetic, keyboard-first everything, and strong opinionated defaults. The
|
||
desktop is the part you already know — this page is only about the NixOS
|
||
plumbing underneath.
|