Declarative Specification of a User Profile with the Nix Package Manager

Nix is a package manager that lets your install software into a separate user profile and a system profile. The system profile is available for users of NixOS, and the installed software is specified in the /etc/nixos/configuration.nix file. For those on distributions other than NixOS, software can only be installed imperatively(via the command line instead of a configuration file) into the user profile. With a small trick, we can specify our user profile declaratively instead of imperatively.