From 81a0e0ab76a9a17cc70bc6f40d6646bc38f701ca Mon Sep 17 00:00:00 2001 From: alexion Date: Sun, 11 Oct 2026 17:30:53 -0400 Subject: [PATCH] docs(nix-style): prefer NixOS package ownership --- src/skills/style/nix/rules/general.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/skills/style/nix/rules/general.md b/src/skills/style/nix/rules/general.md index 3a052b8..85d09f4 100644 --- a/src/skills/style/nix/rules/general.md +++ b/src/skills/style/nix/rules/general.md @@ -36,3 +36,18 @@ Use `lib.getExe' config.programs..package "tool"` when a command must foll Executable helpers use the package output that contains binaries. They also make package ownership explicit. `lib.getExe'` avoids accidentally resolving a package's main executable when code needs a different tool. + +## Prefer NixOS package ownership for commands + +### Rule + +Use `pkgs.` for Home Manager tools when Home Manager uses global NixOS packages. +Use `config.programs..package` when a NixOS module owns the selected package. +Do not read `config.home-manager.users..programs..package` for command paths. +Use that Home Manager package option only when Home Manager intentionally selects a different package. + +### Rationale + +Most Home Manager modules in this repository share the NixOS package set. +Referencing `pkgs.` avoids needless dependency paths through the Home Manager user tree. +Configured NixOS package options preserve the selected package when a module owns the tool.