diff --git a/index.html b/index.html index 1d3f4fefe..3bd40a299 100644 --- a/index.html +++ b/index.html @@ -1,6 +1,6 @@ -Home Manager Manual

Home Manager Manual


Preface
1. Installing Home Manager
1.1. Standalone installation
1.2. NixOS module
1.3. nix-darwin module
2. Using Home Manager
2.1. Configuration Example
2.2. Rollbacks
2.3. Keeping your ~ safe from harm
2.4. Graphical services
2.5. Updating
3. Nix Flakes
3.1. Prerequisties
3.2. Standalone setup
3.3. NixOS module
3.4. nix-darwin module
4. Writing Home Manager Modules
4.1. Option Types
5. Contributing
5.1. Getting started
5.2. Guidelines
5.2.1. Maintain backward compatibility
5.2.2. Keep forward compatibility in mind
5.2.3. Add only valuable options
5.2.4. Add relevant tests
5.2.5. Add relevant documentation
5.2.6. Add yourself as a module maintainer
5.2.7. Format your code
5.2.8. Format your commit messages
5.2.9. Format your news entries
5.2.10. Use conditional modules and news
5.2.11. Mind the license
5.3. Commits
5.4. Code Style
5.5. News
5.6. Tests
6. Frequently Asked Questions (FAQ)
6.1. Why is there a collision error when switching generation?
6.2. Why are the session variables not set?
6.3. How to set up a configuration for multiple users/machines?
6.4. Why do I get an error message about ca.desrt.dconf or dconf.service?
6.5. How do I install packages from Nixpkgs unstable?
6.6. How do I override the package used by a module?
A. Configuration Options
B. NixOS Module Options
C. nix-darwin Module Options
D. Tools
home-manager - — reconfigure a user environment
E. Release Notes
E.1. Release 22.11
E.1.1. Highlights
E.1.2. State Version Changes
E.2. Release 22.05
E.2.1. Highlights
E.2.2. State Version Changes
E.3. Release 21.11
E.3.1. Highlights
E.3.2. State Version Changes
E.4. Release 21.05
E.4.1. Highlights
E.4.2. State Version Changes
E.5. Release 20.09
E.5.1. Highlights
E.5.2. State Version Changes
E.6. Release 20.03
E.6.1. Highlights
E.6.2. State Version Changes
E.7. Release 19.09
E.7.1. Highlights
E.7.2. State Version Changes
E.8. Release 19.03
E.8.1. Highlights
E.8.2. State Version Changes
E.9. Release 18.09

Preface

+Home Manager Manual

Home Manager Manual


Preface
1. Installing Home Manager
1.1. Standalone installation
1.2. NixOS module
1.3. nix-darwin module
2. Using Home Manager
2.1. Configuration Example
2.2. Rollbacks
2.3. Keeping your ~ safe from harm
2.4. Graphical services
2.5. Updating
3. Nix Flakes
3.1. Prerequisties
3.2. Standalone setup
3.3. NixOS module
3.4. nix-darwin module
4. Writing Home Manager Modules
4.1. Option Types
5. Contributing
5.1. Getting started
5.2. Guidelines
5.2.1. Maintain backward compatibility
5.2.2. Keep forward compatibility in mind
5.2.3. Add only valuable options
5.2.4. Add relevant tests
5.2.5. Add relevant documentation
5.2.6. Add yourself as a module maintainer
5.2.7. Format your code
5.2.8. Format your commit messages
5.2.9. Format your news entries
5.2.10. Use conditional modules and news
5.2.11. Mind the license
5.3. Commits
5.4. Code Style
5.5. News
5.6. Tests
6. Frequently Asked Questions (FAQ)
6.1. Why is there a collision error when switching generation?
6.2. Why are the session variables not set?
6.3. How to set up a configuration for multiple users/machines?
6.4. Why do I get an error message about ca.desrt.dconf or dconf.service?
6.5. How do I install packages from Nixpkgs unstable?
6.6. How do I override the package used by a module?
A. Configuration Options
B. NixOS Module Options
C. nix-darwin Module Options
D. Tools
home-manager + — reconfigure a user environment
E. Release Notes
E.1. Release 22.11
E.1.1. Highlights
E.1.2. State Version Changes
E.2. Release 22.05
E.2.1. Highlights
E.2.2. State Version Changes
E.3. Release 21.11
E.3.1. Highlights
E.3.2. State Version Changes
E.4. Release 21.05
E.4.1. Highlights
E.4.2. State Version Changes
E.5. Release 20.09
E.5.1. Highlights
E.5.2. State Version Changes
E.6. Release 20.03
E.6.1. Highlights
E.6.2. State Version Changes
E.7. Release 19.09
E.7.1. Highlights
E.7.2. State Version Changes
E.8. Release 19.03
E.8.1. Highlights
E.8.2. State Version Changes
E.9. Release 18.09

Preface

This manual will eventually describe how to install, use, and extend Home Manager.

@@ -257,33 +257,33 @@ Prepare your Home Manager configuration (home.nix). home.nix will be evaluated when the flake is built, so it must be present before bootstrap of Home Manager from the flake. See Section 2.1, “Configuration Example” for introduction about -writing a Home Manager configuration.

Note

The stateVersion will be specified in the flake instead of in the configuration file.

Remove the line containing home.stateVersion in the example.

3.2. Standalone setup

  1. +writing a Home Manager configuration.

3.2. Standalone setup

  1. Set up a flake with a flake.nix as follows:

    {
       description = "Home Manager configuration of Jane Doe";
     
       inputs = {
    -    # Specify the source of Home Manager and Nixpkgs
    -    home-manager.url = "github:nix-community/home-manager";
    +    # Specify the source of Home Manager and Nixpkgs.
         nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
    -    home-manager.inputs.nixpkgs.follows = "nixpkgs";
    +    home-manager = {
    +      url = "github:nix-community/home-manager";
    +      inputs.nixpkgs.follows = "nixpkgs";
    +    };
       };
     
    -  outputs = { home-manager, ... }:
    +  outputs = { nixpkgs, home-manager, ... }:
         let
           system = "x86_64-linux";
    -      username = "jdoe";
    +      pkgs = nixpkgs.legacyPackages.${system};
         in {
    -      homeConfigurations.${username} = home-manager.lib.homeManagerConfiguration {
    -        # Specify the path to your home configuration here
    -        configuration = import ./home.nix;
    +      homeConfigurations.jdoe = home-manager.lib.homeManagerConfiguration {
    +        inherit pkgs;
     
    -        inherit system username;
    -        homeDirectory = "/home/${username}";
    -        # Update the state version as needed.
    -        # See the changelog here:
    -        # https://nix-community.github.io/home-manager/release-notes.html#sec-release-21.05
    -        stateVersion = "22.05";
    +        # Specify your home configuration modules here, for example,
    +        # the path to your home.nix.
    +        modules = [
    +          ./home.nix;
    +        ];
     
             # Optionally use extraSpecialArgs
             # to pass through arguments to home.nix
    @@ -295,7 +295,6 @@ and nixos-unstable branch of Nixpkgs.
     If you would like to use the release-22.05 branch,
     change the home-manager input url to github:nix-community/home-manager/release-22.05
     and nixpkgs url to github:NixOS/nixpkgs/nixos-22.05.
    -Make sure to also update to the stateVersion option accordingly.
     
  2. The Home Manager library is exported by the flake under lib.hm. diff --git a/release-notes.html b/release-notes.html index d7d1923a1..b5e9c8f1c 100644 --- a/release-notes.html +++ b/release-notes.html @@ -4,7 +4,47 @@ The home.stateVersion = "18.09";

    to your configuration.

E.1.2. State Version Changes

The state version in this release includes the changes below. +

home.stateVersion = "18.09";

to your configuration.

  • +The Flake function homeManagerConfiguration has been simplified. +Specifically, the arguments +

    • +configuration, +
    • +username, +
    • +homeDirectory, +
    • +stateVersion, +
    • +extraModules, and +
    • +system +

    have been removed. Instead use the new modules argument, which +accepts a list of NixOS modules.

    Further, the pkgs argument is now mandatory and should be set to +nixpkgs.legacyPackages.${system} where nixpkgs is the Nixpkgs +input of your choice.

    For example, if your Flake currently contains

    homeManagerConfiguration {
    +  configuration = import ./home.nix;
    +  system = "x86_64-linux";
    +  username = "jdoe";
    +  homeDirectory = "/home/jdoe";
    +  stateVersion = "22.05";
    +  extraModules = [ ./some-extra-module.nix ];
    +}

    then you can change it to

    homeManagerConfiguration {
    +  pkgs = nixpkgs.legacyPackages.${system};
    +  modules = [
    +    ./home.nix
    +    ./some-extra-module.nix
    +    {
    +      home = {
    +        username = "jdoe";
    +        homeDirectory = "/home/jdoe";
    +        stateVersion = "22.05";
    +      };
    +    }
    +  ];
    +}

    Of course, you can move the assignment of home.username, +home.homeDirectory, and home.stateVersion to some +other file or simply place them in your home.nix.

  • E.1.2. State Version Changes

    The state version in this release includes the changes below. These changes are only active if the home.stateVersion option is set to "22.11" or later.

    • No changes.

    E.2. Release 22.05

    The 22.05 release branch became the stable branch in May, 2022.

    E.2.1. Highlights

    This release has the following notable changes:

    • diff --git a/tools.html b/tools.html index 3ef4f290d..44caa1786 100644 --- a/tools.html +++ b/tools.html @@ -1,6 +1,6 @@ -Appendix D. Tools

      Appendix D. Tools

      home-manager - — reconfigure a user environment

      Name

      home-manager +Appendix D. Tools

      Appendix D. Tools

      home-manager + — reconfigure a user environment

      Name

      home-manager — reconfigure a user environment

      Synopsis

      home-manager { build | @@ -84,7 +84,7 @@ | --verbose } - ]

      Description

      + ]

      Description

      This command updates the user environment so that it corresponds to the configuration specified in ~/.config/nixpkgs/home.nix or ~/.config/nixpkgs/flake.nix.

      @@ -153,7 +153,7 @@ available for immediate garbage collection.

    -

    Options

    +

    Options

    The tool accepts the options

    -A attrPath @@ -265,15 +265,15 @@ --verbose

    Activates verbose output. -

    Files

    +

    Files

    $XDG_DATA_HOME/home-manager/news-read-ids

    Identifiers of news items that have been shown. Can be deleted to reset the read news indicator. -

    Bugs

    +

    Bugs

    Please report any bugs on the project issue tracker. -

    See also

    +

    See also

    home-configuration.nix(5)

    \ No newline at end of file