Repository navigation
feat(system-manager): activate the homes and hjem configurations declared inside a machine - #102
Merged
clhodapp merged 2 commits intoOct 18, 2026
Conversation
clhodapp
force-pushed
the
feat/system-manager-children
branch
from
October 18, 2026 05:39
810a855 to
46fd285
Compare
clhodapp
force-pushed
the
feat/system-manager-children
branch
2 times, most recently
from
October 18, 2026 07:54
88ef9c9 to
01ba68b
Compare
clhodapp
force-pushed
the
feat/system-manager-children
branch
from
October 18, 2026 08:25
01ba68b to
28d8aef
Compare
clhodapp
force-pushed
the
feat/system-manager-children
branch
from
October 18, 2026 08:27
28d8aef to
0963a83
Compare
clhodapp
force-pushed
the
feat/system-manager-children
branch
from
October 18, 2026 17:35
0963a83 to
1825e3c
Compare
…ared inside a machine A system-manager configuration now acts as the parent of the configurations declared inside it, as a NixOS or darwin machine does. Its new registered `default` module imports: - `home-manager-activation` and `hjem-activation`, the NixOS modules registered a second time for the `systemManager` class. They import the core module of the class they are evaluated in, and the hjem module keeps extra dependencies only where the class declares `system.extraDependencies`. - `caisson.forChildren` settings that give homes and hjem configurations the `system-manager-parent` module, the `nixos-parent` module under a second name, which reads the nearest NixOS or system-manager machine. system-manager counts as a machine for naming homes (`user@machine`), for the `osConfig` and `utils` a hjem configuration receives, and for the check that leaves out what an inner machine activates. A pinned-world test declares a home and a hjem configuration inside a system-manager machine and checks the units, the packages and the published home name. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
clhodapp
force-pushed
the
feat/system-manager-children
branch
from
October 18, 2026 18:04
1825e3c to
0522d1c
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A system-manager configuration can now be the parent of the configurations declared inside it, the way a NixOS or darwin machine is.
system-manager switchapplies the homes and hjem configurations declared inside the machine.Stacked on #101.
What changes
modules/systemManager/defaultis the newdefaultsystem-manager module. A system-manager configuration imports it unless it passesmoduleImports. It imports two modules and setscaisson.forChildren:modules/systemManager/home-manager-activationandmodules/systemManager/hjem-activationlink to the NixOS modules of the same names. system-manager declaresusers.usersand the systemd options. It starts the units wanted bymulti-user.targetwithsystem-manager.target, so the NixOS units work unchanged.caisson.forChildrengives each home and each hjem configuration the modulesystem-manager-parent. That module is a link tonixos-parent, and it sets the home directory from the account the machine declares inusers.users.system.extraDependenciesonly where that option exists, and system-manager has no such option.nixos-parentmodules read the nearest NixOS or system-manager configuration above them.boxis published ashomeConfigurations."probe@box";osConfigandutilsa hjem configuration receives;Testing
systemManagerActivatesWhatIsDeclaredInsidedeclares a home and a hjem configuration inside a system-manager machine. It checks the home directories, the unitshome-manager-probeandhjem-activate@, the hjem packages inusers.users.probe.packages, and the published home name.nix flake checkpasses, eval-weight gate included.nix flake check --no-buildpasses in all 17 workspace consumers, with both the flake's caisson input and thetests/dependenciescaisson pin pointed at this branch. ch-system-manager ran ontest/system-manager-configurations(refactor: nixos-minimal as its own integration over the nixos class #15).Docs: nix-caisson/nix-caisson.github.io, branch
docs/system-manager-parent.🤖 Generated with Claude Code