mirror of
https://github.com/nix-community/home-manager
synced 2024-12-22 17:59:48 +01:00
886675991b
Starting with state version 22.11 we completely reset the PATH variable in the activation script. This is to avoid impurities and unexpected results if the activation script accidentally uses a command found in the user's PATH.
113 lines
3.3 KiB
Text
113 lines
3.3 KiB
Text
[[sec-release-22.11]]
|
|
== Release 22.11
|
|
|
|
This is the current unstable branch and the information in this section is therefore not final.
|
|
|
|
[[sec-release-22.11-highlights]]
|
|
=== Highlights
|
|
|
|
This release has the following notable changes:
|
|
|
|
* The <<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
|
|
+
|
|
[source,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
|
|
+
|
|
[source,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
|
|
+
|
|
[source,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 <<opt-home.username>>,
|
|
<<opt-home.homeDirectory>>, and <<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
|
|
<<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
|
|
<<opt-services.picom.settings>> instead.
|
|
|
|
* The `services.compton` module has been removed. It was deprecated in
|
|
release 20.03. Use `services.picom` instead.
|
|
|
|
[[sec-release-22.11-state-version-changes]]
|
|
=== 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 <<opt-services.mpd.musicDirectory>> option now defaults to the
|
|
value of <<opt-xdg.userDirs.music>> if <<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`.
|