Getting started with Nix (and flakes)
by Noon van der SilkIf you want to work with Nix in the modern age, you're going to need to do slightly more then the website suggests; we need to enable a few extra options to get the most convenient experience
So, let's go through it.
1. Download Nix
This is pretty straightforward; just follow the relevant section for your OS from the Nix website: Download Nix.
2. Enable flakes and other features in nix.conf
You can create/edit ~/.config/nix/nix.conf and add the following line:
experimental-features = nix-command flakes recursive-nix ca-derivationsThis enables flakes, the nix command, and a few other features that are handy.
3. Test it
You can check that the nix-command feature is working by trying to run any program on nixpkgs; for example, jq:
nix run nixpkgs#jq -- --helpYou can test that the flakes feature is active by loading a development shell for a simple JavaScript project, from our templates:
nix develop github:InvariantClub/nix-js-simple
> node4. optional — Use direnv
While this is not strictly necessary; it's something I use all the time, and has wildly improved and simplified my Nix life.
direnv is a program that reads .envrc files and follows instructions there-in. You will notice in all our nix templates we provide .envrc with the simple statement:
use flakeThis means that whenever you cd into the directory, the nix develop shell will be loaded automatically. This is extremely convenient!
Steps:
- Install direnv
- Install nix-direnv
5. Start hacking!
You're all set! You've now got a perfect Nix setup for exploring and extending one of our templates!