NixOS Module Patterns
Directory structure
- •
modules/home/*.nix- Home-manager modules (user packages, dotfiles) - •
modules/nixos/*.nix- NixOS modules (system services) - •
hosts/*/- Machine-specific configuration - •
home/default.nix- Main home-manager entry point
Adding packages
nix
home.packages = with pkgs; [ package-name ] ++ lib.optionals (stdenv.hostPlatform.system == "x86_64-linux") [ x86-only-package ];
Creating a module
nix
{ pkgs, ... }:
{
home.packages = with pkgs; [ mypackage ];
xdg.configFile."app/config.json".text = builtins.toJSON { setting = "value"; };
}
Import in home/default.nix:
nix
imports = [ ../modules/home/mymodule.nix ];