omnix

NixOS reproducibility, with an ordinary /usr/bin.

Scroll ↓
The problem

Omarchy can't run on NixOS.

Omarchy is DHH's opinionated Hyprland desktop, and it's built for Arch. It installs with a script, its 444 commands are bash scripts that start with #!/bin/bash, 36 of them call pacman or yay, and the apps it ships are prebuilt binaries that expect their libraries in /usr/lib.

NixOS has none of that. It keeps every package in its own hash-named directory in /nix/store, so /bin/bash and /usr/lib don't exist, and there's no pacman. Omarchy stops at its first command. Until now you had to choose between Omarchy's desktop and NixOS's reproducible, rollback-safe system.

What we're doing

We're porting Omarchy to NixOS, from its own source.

First we built Omnix, a NixOS base that adds the standard Linux layout: /bin/bash, /usr/lib, and a loader for prebuilt binaries. Then we built Autarchy, a flavor that installs Omarchy itself on top, pinned to an Omarchy release.

Hyprland runs Omarchy's own config unmodified. Omarchy's keybindings, themes, and scripts work as written, and the whole desktop rolls back with the rest of the system.

sourceOmarchy's own repo, pinned: stable is v4.0.4, latest tracks its development branch
scriptsOmarchy's commands, themes, and defaults installed read-only at $OMARCHY_PATH, where its config looks for them
configEach user's ~/.config seeded once from Omarchy's templates, the way its installer does it
packages131 of Omarchy's 147 base packages mapped to nixpkgs, all downloaded prebuilt
desktopHyprland running Omarchy's Lua config unmodified, tested in a VM on every change
updatespacman replaced by nix flake update and a rebuild, with rollback
1 of 4 Why Omnix

Prebuilt software just runs.

Omnix adds the standard Linux layout on top of NixOS: a loader at /lib64, a declared set of common libraries in /usr/lib, a fresh ld.so.cache, and a /bin that resolves #!/bin/bash. Manylinux wheels, rustup, vendor SDKs, Electron apps, and Playwright browsers start without patching or wrappers.

2 of 4 Why Omnix

Nothing compiles. Everything downloads.

The rule is add, never relocate. Omnix never patches or moves a nixpkgs package, so every store path still matches the official binary cache at cache.nixos.org. Installs and upgrades are downloads, not builds.

It needs no infrastructure of its own either: the installer ISO lives on GitHub Releases, and everything else comes straight from the NixOS cache.

0.
packages built on your machine
nixpkgsnixos-unstable, unmodified
cachecache.nixos.org serves every store path
omnixsymlinks, text files and a library cache on top
3 of 4 Why Omnix

Pick your desktop at install time.

The base stays small. Everything opinionated lives in a flavor, a complete system in its own repository. Autarchy ports Omarchy's keyboard-driven Hyprland desktop. Atrium is a polished, mouse-first KDE Plasma desktop with independent virtual desktops on every monitor.

The installer reads the flavor list live, so new styles show up without a new ISO.

4 of 4 Why Omnix

Every change rolls back.

Your system is a flake that you own in /etc/nixos, and your flavor is one input in it. Switch from Atrium to Autarchy by changing that input and rebuilding.

The FHS layer is generated from your configuration and versioned with it, so rolling back a generation rolls back the library layout too. The previous system is always one entry away in the boot menu.

Install

Five choices and one download.

The installer is a text menu. Nothing touches your disk until you confirm.

  1. Step 1

    Boot the ISO

    Write it to a USB stick and run sudo omnix-install. Wired networks connect on their own; Wi-Fi opens nmtui.

  2. Step 2

    Pick a filesystem

    Choose the disk, then a filesystem.

    ext4btrfsxfs
  3. Step 3

    Encrypt?

    Turn on LUKS full-disk encryption. Recommended for laptops.

    yesno
  4. Step 4

    Choose a flavor

    Then set your user, password, hostname, and timezone.

    AutarchyAtriumMinimal
  5. Step 5

    Sync from the cache

    Everything downloads prebuilt from cache.nixos.org. NVIDIA GPUs get their driver. Reboot.