I’ve been reading a lot about NixOS lately and wanted to learn more so I’ve took the plunge and now using it as my daily driver. Hopefully I’ll learn more and get a better understanding of it by actually using it. Not sure if I’ll keep it permanently or go back to Fedora Silverblue, but nothing ventured nothing gained.

NixOS, a Linux distribution based on the purely functional package management system Nix, that is composed using modules and packages defined in the Nixpkgs project.

Installation

Graphical installer was very straight forward, so nothing untoward to mention here.

Configuration

Nix is a tool that takes a unique approach to package management and system configuration. Learn how to make reproducible, declarative and reliable systems.

Configuration is declared in a single file /etc/nixos/configuration.nix I’ve moved mine to my home directory and symlinked it to the default path though, as I wanted to manage my environment with Home Manager.

Package installation

Packages can now be installed by declaring them as follows:

home.packages = with pkgs; [
  firefox
  lazygit
  librewolf
]

and so on.

After making changes to the config run the following in terminal:

nixos-rebuild switch

to rebuild the system configuration and create a new generation.

The newly added packages are now available and ready to use.

Goal

My main goal will be to get the system configured and working to my liking, ultimately to have all development requirements defined per project via nix-shell’s or nix develop if I switch to using flakes.