Skip to content

Minimal Setups

A lightweight NixOS configuration for new machines that need only essential CLI tools and system utilities.

Hjem Profile (hjem/profiles/base.nix or a trimmed import list)

Section titled “Hjem Profile (hjem/profiles/base.nix or a trimmed import list)”

For a truly minimal host, start with base.nix alone or cherry-pick modules. Typical essentials:

Category Packages
Shells bash, fish, nushell
Search ripgrep, fd
Core tools curl, wget, jq, htop, git, tmux, neovim
System utils ncdu, lsof, rsync
Nix dev direnv

Use modules/nixos/common.nix for the standard system baseline (caches, overlays, shells, locale). For a lighter machine, import only essential Hjem modules and skip optional system modules.

In your machine’s configuration.nix:

imports = [
../../modules/nixos/common.nix
./hardware-configuration.nix
inputs.hjem.nixosModules.default
../../modules/shared/hjem.nix
(mkHjemUser {
inherit pkgs;
machine = "<machine>";
keys = envMatrix.<machine>;
extraModules = [
../../hjem/profiles/base.nix
../../hjem/shell/zsh.nix
];
})
];

For common.nix (full NixOS system with caches, overlays, terminfo):

imports = [
../../modules/nixos/common.nix
...
];

For Hjem, add profiles incrementally:

extraModules = [
../../hjem/profiles/base.nix
../../hjem/profiles/development.nix # IDEs, languages, dev tools
];

Desktop sessions (Plasma / kwin-noctalia) are wired via the @luxus/desktop clan service — see services/desktop/default.nix.

  • NixOS installed with flakes enabled
  • Machine registered in flake.nix inventory.machines with appropriate tags
  • hardware-configuration.nix and optional disko.nix for the machine

A lightweight Darwin configuration (used by zoe) for machines needing only essential CLI tools.

Category Packages
Shells bash, fish, nushell
Search ripgrep, fd
Core tools curl, wget, rsync, age, jq, htop, git, neovim, fzf
Nix dev direnv

In the machine config via mkHjemUser:

(mkHjemUser {
inherit pkgs;
machine = "<machine>";
keys = envMatrix.<machine>;
extraModules = [
../../hjem/profiles/minimal-darwin.nix
../../hjem/shell/zsh.nix
];
})

Add profiles incrementally:

extraModules = [
../../hjem/profiles/minimal-darwin.nix
../../hjem/profiles/development.nix
../../hjem/profiles/darwin.nix
];

See modules/clan/hjem-users.nix and hjem/profiles/minimal-darwin.nix for the exact current definition (base + minimal-darwin on zoe).