What Home Manager modules provide
Unlike system modules that require root access, Home Manager modules configure your personal environment. They work on both NixOS and Darwin, giving you consistent dotfiles across all machines.Programs
Configure applications like browsers, editors, and terminals
Environment
Shell configuration, environment variables, and PATH
Themes
Fonts, colors, and visual styling
Profiles
Machine profiles for different use cases
Module categories
programs/
Application configuration and program defaults.defaults.nix - Default programs
defaults.nix - Default programs
Configure which programs to use for common tasks.These defaults are used throughout your configuration to automatically select the right program for each task.
modules/home/programs/defaults.nix
discord.nix - Discord configuration
discord.nix - Discord configuration
Discord client configuration with custom themes and plugins.
pentesting.nix - Security tools
pentesting.nix - Security tools
Security testing and penetration testing tool configurations.
environment/
Shell environment, variables, and PATH configuration.shell.nix - Shell configuration
shell.nix - Shell configuration
Shell-specific settings for bash, zsh, fish, or nushell.Configures:
- Shell aliases
- Shell functions
- Shell-specific options
- Prompt customization
variables.nix - Environment variables
variables.nix - Environment variables
Set environment variables for your session.
path.nix - PATH management
path.nix - PATH management
Add directories to your PATH.
xdg.nix - XDG directories
xdg.nix - XDG directories
Configure XDG Base Directory specification paths.Sets standard locations for:
XDG_CONFIG_HOME- Configuration filesXDG_DATA_HOME- Data filesXDG_CACHE_HOME- Cache filesXDG_STATE_HOME- State files
themes/
Visual theming and styling.fonts.nix - Font configuration
fonts.nix - Font configuration
Configure fonts for your terminal and applications.This configuration:
modules/home/themes/fonts.nix
- Sets the system font to Maple Mono
- Configures font variants (italic, bold, etc.)
- Installs the font package
- Sets default fallbacks (Symbols Nerd Font, Noto Sans)
- Works on both NixOS and Darwin
Color schemes and themes
Color schemes and themes
Visual themes that apply across applications.The themes module integrates with:
- Terminal color schemes
- GTK/Qt themes
- Application-specific themes
- Catppuccin theme variants
Configuration modules
profiles.nix - Machine profiles
profiles.nix - Machine profiles
Define profiles for different machine types.Profiles automatically enable appropriate modules based on machine type.
modules/generic/profiles.nix
home.nix - Home Manager settings
home.nix - Home Manager settings
Core Home Manager configuration.Sets:
- Home directory location
- State version for compatibility
- User information
secrets.nix - User secrets
secrets.nix - User secrets
User-level secrets management with sops-nix.Manage sensitive configuration:
- API keys
- SSH keys
- Application credentials
- Personal tokens
docs.nix - Disable documentation
docs.nix - Disable documentation
Disable Home Manager manual generation to save space.
extras.nix - External modules
extras.nix - External modules
Import external Home Manager modules not part of the core framework.
Usage example
Here’s how you might configure your user environment:home.nix
Integrating with NixOS
Home Manager can be used standalone or integrated with NixOS:Standalone (works on any Linux or macOS)
Integrated with NixOS
configuration.nix
Integrated with nix-darwin
darwin-configuration.nix
Key features
Cross-platform compatibility
Home Manager modules work on:- NixOS Linux
- macOS with nix-darwin
- Any Linux distribution with Nix installed
- WSL (Windows Subsystem for Linux)
Declarative dotfiles
All your dotfiles are declared in Nix. When you switch configurations, dotfiles are automatically updated.Profile system
Profiles let you enable groups of related settings with a single option. Enablegraphical profile to get a complete desktop environment configuration.
Theme integration
The framework provides consistent theming across all applications using the Catppuccin color scheme by default.Package installation
Home Manager provides several ways to install packages:Using garden.packages (recommended)
Using home.packages
Using program modules
Next steps
Generic modules
Shared modules used by both Home Manager and system modules
Base modules
Foundation modules for NixOS and Darwin