A NixOS-fork compatible with
Omarchy and friends

Scroll ↓
The problem

Omarchy can't run on NixOS because NixOS is not FHS compliant. Omnix is.

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.

The Omnix foundation

We're building Omnix with a standard Linux layout.

We're building Omnix, a NixOS base designed to provide the standard Linux paths that scripts and prebuilt apps expect.

That foundation brings familiar paths together with Nix-managed packages, reproducible configuration, and system rollbacks.

Two layouts. One system.

FHS-compliant layout

Standard Linux paths

  • /bin/bash-> runs bash scripts
  • /usr/bin/-> finds tools and interpreters
  • /lib/, /usr/lib/-> finds shared libraries
  • /lib64/-> finds the x86-64 ELF loader

NixOS layout

Packages in /nix/store/

  • <hash>-bash/bin/bash-> shell in its own package
  • <hash>-app/bin/-> programs in their own packages
  • <hash>-library/lib/-> libraries kept separately
  • <hash>-glibc/lib/-> package-managed ELF loader

Omnix = FHS paths + Nix packages

The standard paths resolve to Nix-managed software:

  • /bin/bash-> /nix/store/<hash>-bash/bin/bash
  • /usr/bin/<tool>-> the Nix-managed tool on your PATH
  • /lib/, /usr/lib/-> shared libraries backed by /nix/store
  • /lib64/-> nix-ld's compatibility loader

Packages stay in /nix/store. We're adding the paths scripts and prebuilt binaries expect, while keeping Nix's reproducibility and rollbacks.

Autarchy

Omarchy, ported to Omnix.

We're developing Autarchy, a port of Omarchy to Omnix. We're bringing over Omarchy's own Hyprland configuration, keybindings, themes, and scripts to preserve its desktop experience.

We're keeping the port in sync with upstream: stable pins an Omarchy release, while latest tracks its development branch. Our goal is reproducible upgrades and rollbacks for the desktop and the rest of the system together.

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

Prebuilt when available. Compiled when needed.

The rule is add, never relocate. Omnix never patches or moves a nixpkgs package, so Omnix can use the same prebuilt packages as NixOS from cache.nixos.org. Installs and upgrades download those packages when available and compile when necessary.

The installer ISO lives on GitHub Releases. Omnix uses the NixOS binary cache for available prebuilt packages and builds software when a suitable cached package is unavailable.

Nix.
prebuilt packages, with local builds when needed
nixpkgsnixos-unstable, unmodified
cachecache.nixos.org supplies available prebuilt packages
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

Install Omnix. From the terminal.

Boot the ISO into a console and run sudo omnix-install. The entire install stays in the terminal; your desktop starts after reboot. Nothing touches your disk until you confirm.

Omnix live ISO · tty1console preview

Welcome to the Omnix installer. Run: sudo omnix-install

[nixos@nixos:~]$ ▌

Boot the installer↑ ↓ choose · Enter confirm

Simulated from the boot ISO: terminal menus, individual prompts, then console output. Timing and log lines are illustrative. This preview uses a wired connection, btrfs and LUKS; Wi-Fi setup opens nmtui. Each loop tries the other desktop.