mirror of
https://github.com/nix-community/home-manager
synced 2024-12-27 12:19:48 +01:00
122 lines
3.6 KiB
Markdown
122 lines
3.6 KiB
Markdown
# Release 20.03 {#sec-release-20.03}
|
|
|
|
The 20.03 release branch became the stable branch in April, 2020.
|
|
|
|
## Highlights {#sec-release-20.03-highlights}
|
|
|
|
This release has the following notable changes:
|
|
|
|
- Assigning a list to the [home.file](#opt-home.file),
|
|
[xdg.dataFile](#opt-xdg.dataFile) options is
|
|
now deprecated and will produce a warning message if used.
|
|
Specifically, if your configuration currently contains something
|
|
like
|
|
|
|
``` nix
|
|
home.file = [
|
|
{
|
|
target = ".config/foo.txt";
|
|
text = "bar";
|
|
}
|
|
]
|
|
```
|
|
|
|
then it should be updated to instead use the equivalent attribute
|
|
set form
|
|
|
|
``` nix
|
|
home.file = {
|
|
".config/foo.txt".text = "bar";
|
|
}
|
|
```
|
|
|
|
Support for the list form will be removed in Home Manager version
|
|
20.09.
|
|
|
|
- The `lib` function attribute given to modules is now enriched with
|
|
an attribute `hm` containing extra library functions specific for
|
|
Home Manager. More specifically, `lib.hm` is now the same as
|
|
`config.lib` and should be the preferred choice since it is more
|
|
robust.
|
|
|
|
Therefore, if your configuration makes use of, for example,
|
|
`config.lib.dag` to create activation script blocks, it is
|
|
recommended to change to `lib.hm.dag`.
|
|
|
|
Note, in the unlikely case that you are
|
|
|
|
- using Home Manager's NixOS or nix-darwin module,
|
|
|
|
- have made your own Home Manager module containing an top-level
|
|
option named `config` or `options`, and
|
|
|
|
- assign to this option in your system configuration inside a
|
|
plain attribute set, i.e., without a function argument,
|
|
|
|
then you must update your configuration to perform the option
|
|
assignment inside a `config` attribute. For example, instead of
|
|
|
|
``` nix
|
|
home-manager.users.jane = { config = "foo"; };
|
|
```
|
|
|
|
use
|
|
|
|
``` nix
|
|
home-manager.users.jane = { config.config = "foo"; };
|
|
```
|
|
|
|
- The `services.compton` module has been deprecated and instead the
|
|
new module `services.picom` should be used. This is because Nixpkgs
|
|
no longer packages compton, and instead packages the (mostly)
|
|
compatible fork called picom.
|
|
|
|
- The list form of the [programs.ssh.matchBlocks](#opt-programs.ssh.matchBlocks) option has
|
|
been deprecated and configurations requiring match blocks in a
|
|
defined order should switch to using DAG entries instead. For
|
|
example, a configuration
|
|
|
|
``` nix
|
|
programs.ssh.matchBlocks = [
|
|
{
|
|
host = "alpha.foo.com";
|
|
user = "jd";
|
|
}
|
|
{
|
|
host = "*.foo.com";
|
|
user = "john.doe";
|
|
}
|
|
];
|
|
```
|
|
|
|
can be expressed along the lines of
|
|
|
|
``` nix
|
|
programs.ssh.matchBlocks = {
|
|
"*.example.com" = {
|
|
user = "john.doe";
|
|
}
|
|
"alpha.example.com" = lib.hm.dag.entryBefore ["*.example.com"] {
|
|
user = "jd";
|
|
}
|
|
};
|
|
```
|
|
|
|
Support for the list form will be removed in Home Manager version
|
|
20.09.
|
|
|
|
## State Version Changes {#sec-release-20.03-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
|
|
\"20.03\" or later.
|
|
|
|
- The [programs.zsh.history.path](#opt-programs.zsh.history.path) option is no longer
|
|
prepended by `$HOME`, which allows specifying absolute paths, for
|
|
example, using the xdg module. Also, the default value is fixed to
|
|
`$HOME/.zsh_history` and `dotDir` path is not prepended to it
|
|
anymore.
|
|
|
|
- The newsboat module will now default in displaying `queries` before
|
|
`urls` in its main window. This makes sense in the case when one has
|
|
a lot of URLs and few queries.
|