c6444ecc3c
GitOrigin-RevId: 51e44a13acea71b36245e8bd8c7db53e0a3e61ee
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
|
||
[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" = { };
|
||
```
|