Declarative user environment management for Nix users, handling packages and dotfiles with configuration-as-code.
Home Manager is a tool for managing user environments using the Nix package manager. It allows you to declaratively configure user-specific packages, applications, and dotfiles through Nix expressions, bringing system-level reproducibility and rollback capabilities to your personal workspace. It solves the problem of inconsistent or manually managed home directories by treating user configuration as code.
Nix and NixOS users who want reproducible, declarative control over their user environment, including developers, system administrators, and power users managing complex dotfile setups across machines.
Developers choose Home Manager because it extends Nix's powerful declarative and reproducible model to user-space configuration, eliminating manual dotfile management and enabling easy rollbacks. Its integration with NixOS and nix-darwin allows unified system and user environment management.
Manage a user environment using Nix [maintainer=@khaneliman, @rycee]
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Automatically generates and manages configuration files like .bashrc and .gitconfig from Nix expressions, ensuring consistency across systems as highlighted in the dotfile management feature.
Leverages Nix's generation system to allow easy switching between environment states, providing safety nets for configuration changes, which is a core value proposition for recovery from broken states.
Can be used standalone, as a NixOS module, or with nix-darwin, offering adaptability for different system management strategies as described in the installation section.
Includes modules for popular applications like Gnome Terminal and shell environments, reducing boilerplate configuration code through the extensible module system.
The README explicitly warns that users must be comfortable with Nix language and tools, as errors can be difficult to understand, making it inaccessible for beginners.
Modules like Gnome Terminal cannot detect if they are overwriting manual configurations, potentially leading to unintended data loss, as admitted in the warning section.
Primarily targets NixOS unstable and version 25.11; support for other Linux distributions or NixOS versions is not guaranteed and may be buggy, limiting broader adoption.