mirror of
https://github.com/nix-community/home-manager
synced 2024-12-02 07:59:46 +01:00
6fc71dc563
The release notes used to be an appendix in the manual. After converting to markdown that appendix got lost. This commit reintroduces the release notes into the manual.
81 lines
3.2 KiB
Markdown
81 lines
3.2 KiB
Markdown
# Release 21.11 {#sec-release-21.11}
|
||
|
||
The 21.11 release branch became the stable branch in November, 2021.
|
||
|
||
## Highlights {#sec-release-21.11-highlights}
|
||
|
||
This release has the following notable changes:
|
||
|
||
- All Home Manager modules are now loaded on all platforms. With this
|
||
change you will get a more descriptive error message if you attempt
|
||
to enable a module that is incompatible with the host platform.
|
||
|
||
Previously, modules that were platform specific would only be loaded
|
||
on that particular platform. For example, a module defining a
|
||
[systemd](https://systemd.io/) service would only be loaded when the
|
||
host platform was Linux. This reduced evaluation times, simplified
|
||
the generated documentation, and made it impossible to accidentally
|
||
use modules that do not support the host platform.
|
||
|
||
While the above benefits are quite nice, avoiding module loads also
|
||
brings a few problems. For example, the [public
|
||
documentation](https://nix-community.github.io/home-manager/) will
|
||
only show the options available for Linux hosts and the
|
||
documentation cannot make references to options within modules that
|
||
are unavailable on some hosts. Finally, users who wish to use the
|
||
same configuration file for different platforms cannot do so, even
|
||
if the platform incompatible options are unused.
|
||
|
||
Ultimately, the benefits of loading all modules won and the behavior
|
||
has now changed. For associated discussion see
|
||
[issue #1906](https://github.com/nix-community/home-manager/issues/1906).
|
||
|
||
- Rofi version 1.7.0 removed many options that were used by the module
|
||
and replaced them with custom themes, which are more flexible and
|
||
powerful.
|
||
|
||
You can replicate your old configuration by moving those options to
|
||
[opt-programs.rofi.theme](#opt-programs.rofi.theme). Keep in mind that the syntax is
|
||
different so you may need to do some changes.
|
||
|
||
- Taskwarrior version 2.6.0 respects XDG Specification for the config
|
||
file now. Option [opt-programs.taskwarrior.config](#opt-programs.taskwarrior.config) and friends
|
||
now generate the config file at `$XDG_CONFIG_HOME/task/taskrc`
|
||
instead of `~/.taskrc`.
|
||
|
||
## State Version Changes {#sec-release-21.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
|
||
\"21.11\" or later.
|
||
|
||
- The [opt-home.keyboard](#opt-home.keyboard) option now defaults to `null`, meaning
|
||
that Home Manager won't do any keyboard layout management. For
|
||
example, `setxkbmap` won't be run in X sessions.
|
||
|
||
- The [opt-programs.pet.settings](#opt-programs.pet.settings) option no longer place its
|
||
value inside a `General` attribute. For example,
|
||
|
||
``` nix
|
||
programs.pet.settings.editor = "nvim";
|
||
```
|
||
|
||
becomes
|
||
|
||
``` nix
|
||
programs.pet.settings.General.editor = "nvim";
|
||
```
|
||
|
||
- The [opt-programs.waybar.settings](#opt-programs.waybar.settings) option now allows defining
|
||
modules directly under [opt-programs.waybar.settings](#opt-programs.waybar.settings). For
|
||
example,
|
||
|
||
``` nix
|
||
programs.waybar.settings.modules."custom/my-module" = { };
|
||
```
|
||
|
||
becomes
|
||
|
||
``` nix
|
||
programs.waybar.settings."custom/my-module" = { };
|
||
```
|