mirror of
https://github.com/nix-community/home-manager
synced 2024-11-30 15:09:46 +01:00
73 lines
2.9 KiB
Text
73 lines
2.9 KiB
Text
[[sec-release-21.11]]
|
||
== Release 21.11
|
||
|
||
The 21.11 release branch became the stable branch in November, 2021.
|
||
|
||
[[sec-release-21.11-highlights]]
|
||
=== 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
|
||
https://systemd.io/[systemd] 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
|
||
https://nix-community.github.io/home-manager/[public documentation]
|
||
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
|
||
https://github.com/nix-community/home-manager/issues/1906[issue #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>>. 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>> and friends now generate the config file at
|
||
`$XDG_CONFIG_HOME/task/taskrc` instead of `~/.taskrc`.
|
||
|
||
[[sec-release-21.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
|
||
"21.11" or later.
|
||
|
||
* The <<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>> option no longer place its value inside a `General` attribute.
|
||
For example,
|
||
+
|
||
[source,nix]
|
||
programs.pet.settings.editor = "nvim";
|
||
+
|
||
becomes
|
||
+
|
||
[source,nix]
|
||
programs.pet.settings.General.editor = "nvim";
|
||
|
||
* The <<opt-programs.waybar.settings>> option now allows defining modules directly under <<opt-programs.waybar.settings>>.
|
||
For example,
|
||
+
|
||
[source,nix]
|
||
programs.waybar.settings.modules."custom/my-module" = { };
|
||
+
|
||
becomes
|
||
+
|
||
[source,nix]
|
||
programs.waybar.settings."custom/my-module" = { };
|
||
|