mirror of
https://github.com/nix-community/home-manager
synced 2024-11-23 19:49:45 +01:00
113 lines
3.7 KiB
Markdown
113 lines
3.7 KiB
Markdown
# Release 22.11 {#sec-release-22.11}
|
|
|
|
The 22.11 release branch became the stable branch in November, 2022.
|
|
|
|
## Highlights {#sec-release-22.11-highlights}
|
|
|
|
This release has the following notable changes:
|
|
|
|
- The [home.stateVersion](#opt-home.stateVersion) option no longer has a default
|
|
value. It used to default to "18.09", which was the Home Manager
|
|
version that introduced the option. If your configuration does not
|
|
explicitly set this option then you need to add
|
|
|
|
``` nix
|
|
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
|
|
|
|
``` nix
|
|
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
|
|
|
|
``` nix
|
|
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](#opt-home.username),
|
|
[home.stateVersion](#opt-home.stateVersion) to
|
|
some other file or simply place them in your `home.nix`.
|
|
|
|
- The `services.picom` module has been refactored to use structural
|
|
settings.
|
|
|
|
As a result `services.picom.extraOptions` has been removed in favor
|
|
of [services.picom.settings](#opt-services.picom.settings). Also, `services.picom.blur*`
|
|
were removed since upstream changed the blur settings to be more
|
|
flexible. You can migrate the blur settings to use
|
|
[services.picom.settings](#opt-services.picom.settings) instead.
|
|
|
|
- The `services.compton` module has been removed. It was deprecated in
|
|
release 20.03. Use `services.picom` instead.
|
|
|
|
## State Version Changes {#sec-release-22.11-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.
|
|
|
|
- The [services.mpd.musicDirectory](#opt-services.mpd.musicDirectory) option now defaults to
|
|
the value of [xdg.userDirs.music](#opt-xdg.userDirs.music) if
|
|
[xdg.userDirs.enable](#opt-xdg.userDirs.enable) is enabled. Otherwise it is
|
|
undefined and must be specified in the user configuration.
|
|
|
|
- The activation script now resets `PATH` before running. Before, the
|
|
user's `PATH` environment variable would be used in the script and
|
|
this made it possible for commands in the activation script to run
|
|
arbitrary commands accessible to the user. We now restrict the
|
|
activation script to commands that are explicitly specified.
|
|
|
|
There is no official way to restore the old behavior. We attempt to
|
|
make the activation script as reproducible as possible and honoring
|
|
the user's `PATH` reduces reproducibility.
|
|
|
|
If you need to run a command in an activation script block then
|
|
refer to the command by its absolute command path, such as
|
|
`${pkgs.hello}/bin/hello`.
|