nixarchy.pkg — the manual

nixarchy.pkg

A menu for the thing NixOS is good at and awkward about: changing what is installed.

On Arch you type pacman -S ripgrep and it is there. On NixOS you edit a file, then rebuild, and then it is there. That second step is the whole point — it is why you can roll the change back, why the machine is reproducible, and why nothing drifts. It is also why “install ripgrep” stopped being one action and became two.

This plugin is the first of those two, on screen. It searches nixpkgs, turns curated apps and services on and off, sets NixOS options with a form built from each option’s declared type, and shows you what is waiting. Then you press a and the second step happens.

It writes nothing you cannot read. Every change is one marked line in a file you own, and every write goes through a script nixarchy already ships.

Start here

Getting started — which of the two installs you have, and one package installed by the end of it.

Then the surface you are looking at:

   
The menu Tabs, the list, the message line, the queue
The bar widget The number in your bar, and why it exists
Apps and services The curated catalogue, and SPACE
Packages Searching nixpkgs, and what “Selection” means
NixOS options 25,000 options, and why some get a comment instead of a widget
Drafts Software nixpkgs does not carry
Flakes Software that is not in nixpkgs and ships its own flake
Applying changes a, SHIFT+A, and the build log
From a terminal The same commands, without the panel
How it works Selection files, markers, and what is not managed
Troubleshooting It said no. Nothing happened. It is still installed.

What it is not

A package manager. It is a front end to nixarchy’s own writers — nixarchy-app-enable, nixarchy-pkg-add, nixarchy-opt-remove, nixarchy-apply — which already handle marker placement, catalogue drift, unfree policy, the stable/unstable channel escape, backups and the parse check. This is the part you look at.

It also manages a selection, not your machine. If you already had a NixOS configuration before you met nixarchy, the packages you declare there are not listed here and are not touched here. That boundary is deliberate and it is what makes nixarchy removable. How it works explains it properly, because it is the single thing people misread.