You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Is your feature request related to a problem? Please describe.
Module-based home manager configurations will have access to an extra extraSpecialArg called osConfig which will alias the hosts' nixosConfiguration/nix-darwin configuration. This option is typically unavailable (set to null) by default in standalone configs however because home manager does not have built-in knowledge of the host system. Since blueprint explicitly maps users to hosts, I see no reason why it couldn't provide this missing functionality to standalone configurations.
It also might cause confusion if a blueprint user creates a new user which depends on osConfig and then later decides to move to standalone home manager. In this case, I think the hm config will not evaluate in standalone due to osConfig being null.
Describe the solution you'd like
Add osConfig to extraSpecialArgs when the hm config is intended to be used in standalone. osConfig should reference the users host config.
Describe alternatives you've considered
You could hard-code each user to depend on flake.outputs.nixosConfigurations.<host>, but that does not seem ideal. No idea if there is a more elegant solution that is already accessible.
Additional context
You might want to consider investigating if there are any other differences in behaviors between module-based and standalone that can be papered over with blueprint
Example config that uses osConfig
{ pkgs, osConfig, ... }:
{
home.packages = [ pkgs.atool pkgs.httpie ];
programs.bash.enable = true;
home.file."test".text = osConfig.system.stateVersion;
# The state version is required and should stay at the version you
# originally installed.
home.stateVersion = "24.11";
}
Module-based build
> nixos-rebuild build --flake .#
building the system configuration...
Standalone build
> home-manager build --flake .
...
… while selecting an attribute
at /nix/store/hash-source/hosts/host/users/user/home-configuration.nix:7:27:
6|
7| home.file."test".text = osConfig.system.stateVersion;
| ^
8|
error: expected a set but found null: null
The text was updated successfully, but these errors were encountered:
Is your feature request related to a problem? Please describe.
Module-based home manager configurations will have access to an extra extraSpecialArg called
osConfig
which will alias the hosts' nixosConfiguration/nix-darwin configuration. This option is typically unavailable (set to null) by default in standalone configs however because home manager does not have built-in knowledge of the host system. Since blueprint explicitly maps users to hosts, I see no reason why it couldn't provide this missing functionality to standalone configurations.It also might cause confusion if a blueprint user creates a new user which depends on osConfig and then later decides to move to standalone home manager. In this case, I think the hm config will not evaluate in standalone due to osConfig being null.
Describe the solution you'd like
Add
osConfig
toextraSpecialArgs
when the hm config is intended to be used in standalone.osConfig
should reference the users host config.Describe alternatives you've considered
You could hard-code each user to depend on
flake.outputs.nixosConfigurations.<host>
, but that does not seem ideal. No idea if there is a more elegant solution that is already accessible.Additional context
You might want to consider investigating if there are any other differences in behaviors between module-based and standalone that can be papered over with blueprint
Example config that uses osConfig
Module-based build
Standalone build
The text was updated successfully, but these errors were encountered: