Skip to content

Basics of the Nix Language

The Nix language is essential for declaring configurations to be built by Nix. To fully enjoy the benefits of NixOS and Flakes, it is necessary to grasp the fundamentals of this language.

The Nix language is a straightforward functional language. If you have some programming experience, it should take you less than 2 hours to grasp its basics.

To get started, I recommend reading the following resources for a solid introduction to the Nix language:

  1. Nix Language Basics - nix.dev: This tutorial provides a comprehensive overview of the basics of the Nix language.
  2. Nix - A One Pager: A one page introduction to the Nix language.
    1. You can safely skip the section on callPackage/Overriding/Overlays for now. We will cover it in the next chapter.
  3. Nix Language: The official documentation of the Nix language.
    1. nix.dev & nix-1p are suitable for starter reading only, and neither of them fully introduces the full syntax of Nix. If you encounter a new syntax that you have not come across before, please refer to this official document.

By going through these materials, you will develop a solid foundation in the Nix language, allowing you to effectively utilize NixOS and Flakes.

Released under the MIT License.