Core Profile — Shared User Profile Options
Purpose
The core.profile module declares a set of shared user-profile options that act as a single source of truth for values consumed by other modules — desktop environments, shell companions, and display managers — rather than hardcoded literals.
Entry Point
- Main file:
modules/home-manager/core/profile.nix - Supporting file:
modules/home-manager/core/default.nix— imports the module automatically
Architecture / Services / Scope
The module only declares options; it does nothing on its own. Consumers use config.core.profile.* to read the values.
Options
core.profile.avatar.path
| Type | string |
| Default | ${config.home.homeDirectory}/.face |
Path to user avatar image.
core.profile.location.secret
| Type | null or string |
| Default | null |
SOPS secret name used for Noctalia location address.
core.profile.wallpaper.directory
| Type | string |
| Default | ${config.home.homeDirectory}/Pictures/Wallpapers |
Path to wallpaper image directory.
core.profile.avatar.path
Path to the user avatar image. Used by the Noctalia desktop shell (via programs.noctalia.settings.shell.avatar_path) to display the user picture in the bar and session UI.
core.profile.wallpaper.directory
Directory containing wallpaper images.
Consumers:
| Consumer | How it uses the value |
|---|---|
| Noctalia desktop shell | Sets programs.noctalia.settings.wallpaper.directory |
| GNOME azwallpaper extension | Sets org/gnome/shell/extensions/azwallpaper slideshow-directory |
core.profile.location.secret
Name of a SOPS secret whose decrypted value becomes the Noctalia location.address. When unset, the location block is omitted from the Noctalia config entirely. At activation time, the decrypted secret is appended to a base Noctalia config TOML (generated by the module) and written to ~/.config/noctalia/config.toml — the clear-text address never lands in the repo or Nix store.
Secrets
core.profile.location.secret— name of a SOPS secret (not a literal value) whose decrypted content supplies the Noctalia location address at activation time.
Usage Example
{ ... }: {
core.profile = {
avatar.path = "/home/user/.face";
wallpaper.directory = "/home/user/Pictures/Backgrounds";
location.secret = "noctalia-location";
};
}
Operational Notes / Assumptions
- The GNOME azwallpaper extension consumes
core.profile.wallpaper.directoryviadconf-extensions.nix(home/shared/desktop/gnome/).