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.
4.9 KiB
Coming from Omarchy
Nomarchy and Omarchy 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:
- 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. - Your flake — for anything the menu doesn't cover, edit
home.nix/system.nix(a handful ofnomarchy.*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.
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. |
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(ornomarchy-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. 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.packagesin your flake'shome.nix, thennomarchy-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 onPATH, 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
— 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.