Users are a special case of profiles that define system users and home-manager configurations. For your convenience, home manager is wired in by default so all you have to worry about is declaring your users. For a fully fleshed out example, check out the developers personal branch.
users/myuser/default.nix
:
{ ... }:
{
users.users.myuser = {
isNormalUser = true;
};
home-manager.users.myuser = {
programs.mpv.enable = true;
};
}
You can easily use the defined home-manager configurations outside of NixOS
using the hmActivations
meta-package defined in the flakes legacyPackages
output. The flk helper script makes this even easier.
This is great for keeping your environment consistent across Unix systems, including OSX.
# builds the nixos user defined in the NixOS host
flk home NixOS nixos
# build and activate
flk home NixOS nixos switch
# build
nix build "github:divnix/devos#hmActivationPackages.NixOS.nixos"
# activate
./result/activate && unlink result