Our great sponsors
-
nix-dev-home
A `home-manager` template providing useful tools & settings for Nix-based development (macOS & Linux supported)
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
On a related note, if anybody would like to get started with home-manager, we have a flake template for it:
https://github.com/juspay/nix-dev-home
I only got it to the proof of concept stage, but I was hacking on something that would generate docs for everything found on a Nix Flake (including modules): https://github.com/snowfallorg/frost
Here's an example output that I generated for my config repo: https://jakehamilton.github.io/config/
Declarative home environments are pretty great. Being able to reproduce your entire user setup is fantastic when you manage multiple machines or want to make future migrations.
I run NixOS and use Home-Manager as well. This lets me define my entire system in addition to my user home contents declaratively. So with this configuration I can apply NixOS & Home-Manager to get the same results anywhere.
Here is an example of my Home-Manager configuration: https://github.com/jakehamilton/config/blob/a3da20eeab74a50a...
In this example I configure Git. This gets written to my user home's config directory.
Many command line programs keep their configurations somewhere under $HOME. These are often called "dotfiles".
If you ever use more than one machine, likely you'll want the same configuration available on all those machines.. so you'll want some way to copy them to a new machine.
Some dotfile managers are quite simple, like dotbot. https://github.com/anishathalye/dotbot
Home Manager from the Nix community is a bit more sophisticated. It allows for writing configurations in the Nix language, which is nice if you know/like Nix. (Nix is a powerful/expressive package manager. Nix is to apt-get what vim is to notepad).