82 lines
3.2 KiB
Markdown
82 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
|
|||
|
[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 [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 [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 [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 [programs.waybar.settings](#opt-programs.waybar.settings) option now allows defining
|
|||
|
modules directly under [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" = { };
|
|||
|
```
|