# Release 21.05 {#sec-release-21.05} The 21.05 release branch became the stable branch in May, 2021. ## Highlights {#sec-release-21.05-highlights} This release has the following notable changes: - The 'opt-programs.broot.verbs\` option is now a list rather than an attribute set. To migrate, move the keys of the attrset into the list items' `invocation` keys. For example, ``` nix programs.broot.verbs = { "p" = { execution = ":parent"; }; }; ``` becomes ``` nix programs.broot.verbs = [ { invocation = "p"; execution = ":parent"; } ]; ``` - The [programs.mpv.package](#opt-programs.mpv.package) option has been changed to allow custom derivations. The following configuration is now possible: ``` nix programs.mpv.package = (pkgs.wrapMpv (pkgs.mpv-unwrapped.override { vapoursynthSupport = true; }) { extraMakeWrapperArgs = [ "--prefix" "LD_LIBRARY_PATH" ":" "${pkgs.vapoursynth-mvtools}/lib/vapoursynth" ]; }); ``` As a result of this change, [programs.mpv.package](#opt-programs.mpv.package) is no longer the resulting derivation. Use the newly introduced `programs.mpv.finalPackage` instead. - The [programs.rofi.extraConfig](#opt-programs.rofi.extraConfig) option is now an attribute set rather than a string. To migrate, move each line into the attribute set, removing the `rofi.` prefix from the keys. For example, ``` nix programs.rofi.extraConfig = '' rofi.show-icons: true rofi.modi: drun,emoji,ssh ''; ``` becomes ``` nix programs.rofi.extraConfig = { show-icons = true; modi = "drun,emoji,ssh"; }; ``` - The [programs.rofi.theme](#opt-programs.rofi.theme) option now supports defining a theme using an attribute set, the following configuration is now possible: ``` nix programs.rofi.theme = let # Necessary to avoid quoting non-string values inherit (config.lib.formats.rasi) mkLiteral; in { "@import" = "~/.config/rofi/theme.rasi"; "*" = { background-color = mkLiteral "#000000"; foreground-color = mkLiteral "rgba ( 250, 251, 252, 100 % )"; border-color = mkLiteral "#FFFFFF"; width = 512; }; "#textbox-prompt-colon" = { expand = false; str = ":"; margin = mkLiteral "0px 0.3em 0em 0em"; text-color = mkLiteral "@foreground-color"; }; }; ``` - The `services.redshift.extraOptions` and `services.gammastep.extraOptions` options were removed in favor of [services.redshift.settings](#opt-services.redshift.settings) and `services.gammastep.settings`, that are now an attribute set rather than a string. They also support new features not available before, for example: ``` nix services.redshift = { dawnTime = "6:00-7:45"; duskTime = "18:35-20:15"; settings = { redshift = { gamma = 0.8; adjustment-method = "randr"; }; randr = { screen = 0; }; }; }; ``` It is recommended to check either [redshift.conf.sample](https://github.com/jonls/redshift/blob/master/redshift.conf.sample) or [gammastep.conf.sample](https://gitlab.com/chinstrap/gammastep/-/blob/master/gammastep.conf.sample) for the available additional options in each program. - Specifying `programs.neomutt.binds.map` or `programs.neomutt.macros.map` as a single string is now deprecated in favor of specfiying it as a list of strings. - The `programs.neovim.configure` is deprecated in favor of other `programs.neovim` options; please use the other options at your disposal: ``` nix configure.packages.*.opt -> programs.neovim.plugins = [ { plugin = ...; optional = true; }] configure.packages.*.start -> programs.neovim.plugins = [ { plugin = ...; }] configure.customRC -> programs.neovim.extraConfig ``` - Home Manager now respects the `NO_COLOR` environment variable as per . - Qt module now supports [qt.style.name](#opt-qt.style.name) to specify a theme name and [qt.style.package](#opt-qt.style.package) to specify a theme package. If you have set [qt.platformTheme](#opt-qt.platformTheme) to `gnome`, a [qt.style.package](#opt-qt.style.package) compatible with both Qt and Gtk is now required to be set. For instance: ``` nix qt = { platformTheme = "gnome"; style = { name = "adwaita-dark"; package = pkgs.adwaita-qt; }; }; ``` - The library type `fontType` now has a `size` attribute in addition to `name`. For example: ``` nix font = { name = "DejaVu Sans"; size = 8; }; ``` - The [programs.htop.settings](#opt-programs.htop.settings) option is introduced to replace individual options in `programs.htop`. To migrate, set the htop options directly in [programs.htop.settings](#opt-programs.htop.settings). For example: ``` nix programs.htop = { enabled = true; settings = { color_scheme = 5; delay = 15; highlight_base_name = 1; highlight_megabytes = 1; highlight_threads = 1; }; }; ``` ## State Version Changes {#sec-release-21.05-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.05\" or later. - The `newsboat` module now stores generated configuration in `$XDG_CONFIG_HOME/newsboat`.