Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Packages

The Packages page searches the packages of the nixpkgs your system uses, so what you find is exactly what your system would install. Indexing takes a few seconds the first time.

Searching

Type a name or a word from the description into the search field. Each row shows the package name, its version and description, and tags:

  • installed: your system already has it,
  • added by DrakeFlake: the generated file installs it,
  • will be added / will be removed: a staged change.

The line next to the filters shows the number of matches and of installed packages.

Filters

  • Top-level packages: click to choose a package set instead, such as python313Packages, haskellPackages or vimPlugins. A set is indexed the first time you choose it and kept until your flake changes.
  • Installed only: show only packages your system has.
  • Search by command: find the package that provides a program, for example rg finds ripgrep. Programs are matched by their exact name in bin/.

Search by command

This search uses the nix-index database. If you do not have one (in ~/.cache/nix-index), the page offers to Download it: a prebuilt database from the nix-community/nix-index-database project on GitHub, about 100 MB, updated weekly. The app keeps its copy in ~/.cache/drakeflake/nix-index.

Adding and removing packages

  • To add a package, click Add in its row, or Add to system on its details page. The change is staged; apply it on the Changes page.
  • To remove a package the app added, click Remove (or Remove from system).
  • To take back a staged addition or removal, click Undo.

The app only removes packages it added itself. Packages installed by your own configuration show From your config in the list and Installed by your configuration on the details page; remove those in your own files.

Added packages are written as environment.systemPackages into the generated file (into packages.nix with a split layout).

Packages from a package set are mostly libraries. They usually belong in an environment, for example python3.withPackages, rather than directly in the system packages; the details page reminds you of this.

Package details

Click a package to see its details: description, the program it runs, license, homepage, maintainers, outputs and the file in nixpkgs that defines it. Tags show whether it is unfree or marked broken. Homepage at the top opens the project’s website.

Try it

Try it runs a package without installing it. It is offered for packages that declare a program to run.

The app builds the package from your system’s nixpkgs (progress is in the Console) and starts it when it is ready:

  • an app with a desktop entry opens as a window,
  • command-line tools open in a terminal with the package’s programs available.

Tried packages are kept so they start quickly next time. To free their space, use Cleanup → Remove tried packages.