This is mainly for integrating NixOS modules with home-manager by setting them conditionally if certain options are enabled. This prevents duplicate configurations which often result in conflicts (like the Firefox module that is both available on NixOS and home-manager). |
||
---|---|---|
.. | ||
home-manager | ||
nixos | ||
README.adoc |
This is where user-specific configurations comes in. Similar to modules, the top-level of this directory contains users for various profiles (e.g., home-manager, NixOS).
As such, files put in here are only a part of the total sum of configuration (whether it is a home-manager configuration or a NixOS system). It shouldn’t fully configure their respective system and should be put as a host configuration otherwise.
Users shouldn’t also have their own set of modules similar to this project’s own modules. They should be imported as a profile or hardcoded in the user config.
Take note of the following structure:
users/
├── home-manager/
│ ├── foo-dogsquared/
│ ├── harepoint/
│ └── polski/
├── nixos/
│ ├── foo-dogsquared/
│ ├── harepoint/
│ └── vmguest/
└── README.adoc
This folder is to be expected to be imported through lib.filesToAttr
from the ../lib/default.nix
.
There are conventions for setting in each user type.
-
For NixOS user configuration, it is expect to only have one user with their respective user-specific configuration. This includes user-specific packages, home-manager-specific configuration [1], and so forth. If you want to set users from the host, see Host-specific configurations for more details.
-
home-manager users are just home-manager configurations (i.e.,
$XDG_CONFIG_HOME/nix/home.nix
). Take note that it is assumed that my own home-manager modules are imported.