Strongly second this recommendation. One of the biggest benefits of nix is being able to use the package manager on Linux/MacOS. You can quite literally start out by simply porting whole config files into the nix store. Just copy the file into your nix configs repo and have nix create the symlink.
I personally play around with these via imports. Say I want to start configuring Firefox via home-manager. I could start with configuring Firefox manually, then storing my raw /home/luc/.mozilla/firefox/profiles.ini
in my nix store by the method above via a file called firefox-native.nix
. Then in firefox.nix
I play around with parameters in the nix config. If I hit a wall and don’t have time to figure out the “real” nix configs, I just switch my import over from:
# home.nix
imports = [ ./firefox.nix ]; # the nix way
to:
# home.nix
imports = [ ./firefox-native.nix ]; # fallback - known working native config file
Don’t forget about the Discourse page! I’ve found folks there to be very friendly and helpful.
Other useful tools are: search.nixos.org - for seeing if a package exists. mynixos - for exploring options within a program/service configuration.
Nix store go: 😭