Home Manager: Difference between revisions
imported>Tv add link to Wrappers vs. Dotfiles |
imported>Vater mNo edit summary |
||
Line 6: | Line 6: | ||
For the latter, add the following to your config | For the latter, add the following to your config | ||
<syntaxhighlight lang="nix> | <syntaxhighlight lang="nix"> | ||
imports = [ | imports = [ | ||
... | ... | ||
Line 17: | Line 17: | ||
Home Manager has options to configure many common tools. As an example, adding the following | Home Manager has options to configure many common tools. As an example, adding the following | ||
<syntaxhighlight lang="nix> | <syntaxhighlight lang="nix"> | ||
programs.git = { | programs.git = { | ||
enable = true; | enable = true; |
Revision as of 06:48, 23 January 2019
Home Manager is a basic system for managing a user environment using the Nix package manager together with the Nix libraries found in Nixpkgs. Before attempting to use Home Manager please read the warning.
Configuration
Home Manager can be configured in ~/.config/nixpkgs/home.nix
or inside configuration.nix.
For the latter, add the following to your config
imports = [
...
"${builtins.fetchTarball https://github.com/rycee/home-manager/archive/master.tar.gz}/nixos"
];
home-manager.users.my_username = { ... }
Managing your dotfiles
Home Manager has options to configure many common tools. As an example, adding the following
programs.git = {
enable = true;
userName = "my_git_username";
userEmail = "my_git_username@gmail.com";
};
will make Home Manager generate a .config/git/config
file for you.
Even for programs for which Home Manager doesn't have configuration options, you can use it to manage your dotfiles, e.g.
home.file.".config/i3blocks/config".source = "${my-dotfile-dir}/i3blocks.conf"
This will create a symlink .config/i3blocks/config
.
Examples
Alternatives
- Wrappers vs. Dotfiles shows how (per-user) wrapper scripts can be used in place of dotfiles in the user's home directory