com um clique
users
Add and configure new Home-Manager users
Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Menu
Add and configure new Home-Manager users
Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Create and modify NixOS and Home-Manager modules
Hardens systemd services against security issues using sandboxing, capability restriction, and syscall filtering. Use when creating or modifying systemd services, writing NixOS modules with systemd.services, reviewing service security, or whenever a serviceConfig block is involved. Ensures services follow defense-in-depth principles with minimal privilege.
Write Nix code using repo conventions
Write and review Conventional Commits commit messages (v1.0.0) for semantic versioning and changelogs. Use when drafting git commit messages, PR titles, release notes, or enforcing conventional commit format like `type(scope): subject`, `BREAKING CHANGE`, footers, and `revert`.
Manages version control with Jujutsu (jj), including rebasing, conflict resolution, and Git interop. Use when tracking changes, navigating history, squashing/splitting commits, or pushing to Git remotes.
Manage background jobs, capture command output, and handle session multiplexing. Use when running long commands, capturing output from detached processes, or managing concurrent tasks in headless environments.
Baseado na classificação ocupacional SOC
| name | users |
| description | Add and configure new Home-Manager users |
Each user has directory in home/<username>/:
home/<username>/
hm-config.nix # Main Home-Manager entry point
os-config.nix # NixOS config for all hosts (optional)
secrets.yaml # User-specific secrets (optional)
id_ed25519.pub # User SSH public key
<hostname>.nix # Host-specific config (optional, one per host)
features/ # User feature modules (optional)
mkdir -p home/newuser
Create home/newuser/<hostname>.nix for each host user will use:
# home/newuser/nixmi.nix
{ pkgs, lib, ... }:
{
imports = [
# Import shared configurations
../shared/features/cli
../shared/desktop/common
];
programs.git = {
userName = "Your Name";
userEmail = "your.email@domain.com";
};
}
hm-config.nix (shared config)# home/newuser/hm-config.nix
{ ... }:
{
# Config shared across all hosts
programs.bash.enable = true;
home.sessionVariables = {
EDITOR = "vim";
};
}
os-config.nix (optional)For NixOS settings that should apply on all hosts where user exists:
# home/newuser/os-config.nix
{ pkgs, ... }:
{
# This is NixOS config, not Home-Manager
users.users.newuser = {
extraGroups = [ "docker" "libvirtd" ];
};
}
System auto-links users to hosts based on file existence:
home/<username>/<hostname>.nix exists, user is configured on that hostos-config.nix is applied to host NixOS confighomeConfigurations."<user>@<host>"Create home/<username>/secrets.yaml for user-specific secrets:
SSH_PRIVATE_KEY: |
-----BEGIN OPENSSH PRIVATE KEY-----
...
-----END OPENSSH PRIVATE KEY-----
Update .sops.yaml to include user age key for that secrets path.
Common configs live in home/shared/:
| Path | Purpose |
|---|---|
home/shared/global/ | Applied to all users |
home/shared/applications/ | App configs like browsers or editors |
home/shared/desktop/ | Desktop environment configs |
home/shared/features/cli/ | CLI tool configs |
Import these in user configs:
{
imports = [
../shared/features/cli
../shared/applications/browser.nix
];
}
# Build Home-Manager configuration
nix build .#homeConfigurations.newuser.activationPackage
# Or use home-manager directly
home-manager build --flake .#newuser
See also: docs/Creating-Users.md